1. 程式人生 > >django實例流程

django實例流程

environ 小白 bject date code -a tro 過去 closed

學習筆記(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下邊的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})#
render是渲染的意思 # 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})
View Code

小白需要註意的點:

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實例流程