django實例流程
阿新 • • 發佈:2019-01-31
environ 小白 bject date code -a tro 過去 closed ",則對應的會去執行views下邊的cur_time函數。
學習筆記(django簡單流程):
urls.py的代碼:
用戶輸入url然後給url.py去處理,我的url.py是這樣:
from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘cur_time/‘,views.cur_time), path(‘userInfo‘,views.userInfo) ]View Code
那麽django內部會利用循環遍歷去找用戶所輸入的路徑,假設用戶輸入的是"127.0.0.1:端口號/cur_time
views.py的函數:
from django.shortcuts import render,HttpResponse import datetime from blog import models def cur_time(request): times = datetime.datetime.now() # return HttpResponse(‘<h1>ok</h1>‘) return render(request,‘cur_time.html‘,{‘abc‘:times})#View Coderender是渲染的意思 # user_list = [] def userInfo(req): #要判斷req是post還是get # req.POST :{‘username‘:xxx, ‘sex‘:xxx} if req.method==‘POST‘: u = req.POST.get(‘username‘,None) #有就取username的值 無就取None s = req.POST.get(‘sex‘, None) e = req.POST.get(‘email‘, None) # user = {‘username‘:username,‘sex‘:sex,‘email‘:email}# user_list.append(user) models.UserInfo.objects.create( username=u, sex=s, email=e, #往數據庫裏面插入信息 ) user_list = models.UserInfo.objects.all() return render(req,‘index.html‘,{‘user_list‘:user_list})
小白需要註意的點:
return render(request,‘cur_time.html‘,{‘abc‘:times})
render的request攜帶著很多信息,類似之前學的wsgi的environ參數,第二個參數是html文件參數,用來對頁面進行渲染給用戶看,而第三個參數是個字典形式,
{‘abc‘:times}是指將html文件裏的{{abc}}換成後端給他傳過去的times,這樣就簡單實現了前後端交互動作。
views.py裏面還可以對數據庫進行操作,這裏示例:當用戶在瀏覽器輸入相關信息時將這些信息給存到數據庫裏面,那麽就要在models.py做相關操作:
from django.db import models class UserInfo(models.Model): username = models.CharField(max_length=64) sex = models.CharField(max_length=64) email = models.CharField(max_length=64)View Code
然後再在views.py引入model的這個UserInfo類對這個類進行信息插入。
對上面views.py的相關代碼進行截取如下:
models.UserInfo.objects.create( username=u, sex=s, email=e, #往數據庫裏面插入信息 ) user_list = models.UserInfo.objects.all() return render(req,‘index.html‘,{‘user_list‘:user_list})View Code
下面附cur_time.html和index.html文件代碼:
cur_time.html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/userInfo" method="post"> <p>姓名<input type="text" name="username"></p> <p>性別<input type="text" name="sex"></p> <p>郵箱<input type="text" name="email"></p> <p><input type="submit" name="submit"></p> </form> <hr> <h1>數據顯示</h1> <table border="1px"> <tr> <td>姓名</td> <td>性別</td> <td>郵箱</td> </tr> {# user_list=[{‘username‘:username,‘sex‘:sex,‘email‘:email},{},{}]#} {% for i in user_list %} <tr> <td>{{ i.username }}</td> <td>{{ i.sex }}</td> <td>{{ i.email }}</td> </tr> {% endfor %} </table> </body> </html>index.html
還有一個需要註意的點,就是這裏涉及到一個模板操作(如何在html文件進行for循環操作):
用{%%}來包含for循環 用{%endfor%}結束for循環
示例代碼如下:
{% for i in user_list %} <tr> <td>{{ i.username }}</td> <td>{{ i.sex }}</td> <td>{{ i.email }}</td> </tr> {% endfor %}
django實例流程