1. 程式人生 > >Python Web框架Django學習(三)

Python Web框架Django學習(三)

python

Python Web框架Django學習(三)

目錄:

五、Django生命周期

六、Django的CBV與FBV

七、字典、基於正則的URL

八、ORM


=================================================================================================

五、Django生命周期

=================================================================================================




=================================================================================================

六、Django的CBV與FBV

=================================================================================================








=================================================================================================

七、字典、基於正則的URL

=================================================================================================

1、前期準備

1) 創建一個項目test02

D:\python2.7.13\exercise> django-admin startproject test02

2)創建一個APP名為app01

D:\python2.7.13\exercise> cd test02

D:\python2.7.13\exercise> python manage.py startapp app01

3) 使用pycha打開test02項目

4)在test02目錄下面創建目錄static和templates

5)配置

配置項目文件test02的setting.py文件(修改三個地方)

》》》將‘django.middleware.csrf.CsrfViewMiddleware‘,這一行註釋

# ‘django.middleware.csrf.CsrfViewMiddleware‘,

》》》在‘DIRS‘: [],加上templates文件的位置

‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],

》》》在文件的末尾加上靜態文件夾static的位置

STATICFILES_DIRS = (
os.path.join(BASE_DIR,‘static‘),
)

2、在app文件app01中的views.py文件中創建函數

》》》創建index函數

def index(request):
return HttpResponse(‘INDEX‘)

》》》創建login函數

def login(request):
if request.method == ‘GET‘:
return render(request,‘login.html‘)
elif request.method == ‘POST‘:
user = request.POST.get(‘user‘)
pwd = request.POST.get(‘pwd‘)
if user == ‘qiuuuu‘ and pwd == ‘123‘:
return redirect(‘http://doublelinux.blog.51cto.com‘)
else:
return render(request,‘login.html‘)
else:
return redirect(‘/index/‘)
return render(request,‘login.html‘)

3、在項目文件test01中的templates目錄下創建html文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login/" method="POST">
<p>
<input type="text" name="user" placeholder="用戶名"
</p>
<p>
<input type="password" name="pwd" placeholder="密碼"
</p>
<p>
<input type="submit" value="提交"
</p>
</form>
</body>
</html>

4、在項目test01下的urls.py中加入對應關系

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
url(r‘^admin/‘, admin.site.urls),
url(r‘^index‘,views.index),
url(r‘^login‘,views.login),
]

到此,只要輸入用戶名為qiuuuu,密碼為123就能順利跳轉到doublelinux.blog.51cto.com。沒有涉及到數據庫儲存用戶的信息。


5、在app01的文件views.py中創建一個字典,並且實現在index.html頁面讀取字典中的數據----以此引出URL。

1) app01中的views.py文件修改為:

from django.shortcuts import render,HttpResponse
from django.shortcuts import HttpResponse
from django.shortcuts import redirect

USER_DICT = {
‘1‘:{‘name‘: ‘root1‘, ‘email‘: ‘[email protected]‘},
‘2‘:{‘name‘: ‘root2‘, ‘email‘: ‘[email protected]‘},
‘3‘:{‘name‘: ‘root3‘, ‘email‘: ‘[email protected]‘},
‘4‘:{‘name‘: ‘root4‘, ‘email‘: ‘[email protected]‘},
‘5‘:{‘name‘: ‘root5‘, ‘email‘: ‘[email protected]‘},
}



def index(request):
return render(request,‘index.html‘,{‘user_dict‘:USER_DICT})


def login(request):
if request.method == ‘GET‘:
return render(request,‘login.html‘)
elif request.method == ‘POST‘:
user = request.POST.get(‘user‘)
pwd = request.POST.get(‘pwd‘)
if user == ‘qiuuuu‘ and pwd == ‘123‘:
return redirect(‘http://doublelinux.blog.51cto.com‘)
else:
return render(request,‘login.html‘)
else:
return redirect(‘/index/‘)
return render(request,‘login.html‘)


2) 在目錄templates中創建一個HTML文件index.html,內容為:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>這是我的一哥django程序</h1>
<ul>
{% for k,row in user_dict.items %}
<li>{{ k}}----{{ row }}</li>
{% endfor %}
</ul>
</body>
</html>

3) 修改項目文件test02中的urls.py,修改後為:

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
url(r‘^admin/‘, admin.site.urls),
url(r‘^index‘,views.index),
url(r‘^login‘,views.login),
]

4) 瀏覽器訪問效果為:

技術分享

這裏實現了早後臺創建一個字段,並且在html中通過循環實現前端讀取字典中的內容。

下面將實現通過點擊用戶,查看用戶的詳細信息。


6、修改html文件,修改為:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>這是我的一個Django程序</h1>
<ul>
{% for row in user_dict.values %}
<li>
<a href="http://www.baidu.com">{{ row }}</a>
</li>
{% endfor %}
</ul>
<ul>
{% for k in user_dict %}
<li>
<a href="http://www.baidu.com">{{ k }}</a>
</li>
{% endfor %}
</ul>
<ul>
{% for row in user_dict.items %}
<li>
<a href="http://www.baidu.com">{{ row }}</a>
</li>
{% endfor %}
</ul>

</body>
</html>

7、修改app01的views.py文件,修改為:


8、









=================================================================================================

八、創建登錄頁面,實現用戶交互,後臺管理用戶(數據庫方式)

=================================================================================================


















本文出自 “doublelinux” 博客,謝絕轉載!

Python Web框架Django學習(三)