Python Web框架Django學習(三)
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學習(三)