溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

發(fā)布時間:2021-08-03 11:13:52 來源:億速云 閱讀:170 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

  Django工作流

  學(xué)習(xí)django web開發(fā),先來簡單了解一下django的工作機(jī)制,請看下圖:

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

簡單說明:

用戶通過瀏覽器訪問:http://127.0.0.1:8000/index,首先運(yùn)行的是urlpatterns程序,通過url路由找到對應(yīng)的視圖函數(shù)views.py,視圖函數(shù)處理所有邏輯和數(shù)據(jù),并且將用戶要的數(shù)據(jù)經(jīng)過函數(shù)處理后通過index.html返回給瀏覽器前的用戶看。

  詳情流程

  從用戶通過瀏覽器訪問→函數(shù)處理→數(shù)據(jù)展示,整個形成一個閉關(guān)。

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

  MVC是眾所周知的模式,即:將應(yīng)用程序分解成三個組成部分:model(模型),view(視圖),和 controller(控制 器)。其中:

M——管理應(yīng)用程序的狀態(tài)(通常存儲到數(shù)據(jù)庫中),并約束改變狀態(tài)的行為(或者叫做“業(yè)務(wù)規(guī)則”)。
 
C——接受外部用戶的操作,根據(jù)操作訪問模型獲取數(shù)據(jù),并調(diào)用“視圖”顯示這些數(shù)據(jù)??刂破魇菍ⅰ澳P汀焙汀耙晥D”隔離,并成為二者之間的聯(lián)系紐帶。
 
V——負(fù)責(zé)把數(shù)據(jù)格式化后呈現(xiàn)給用戶。

  Django也是一個MVC框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理(C交給用戶),所以 Django 里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式:

M 代表模型(Model),即數(shù)據(jù)存取層。 該層處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取、如何驗(yàn)證有效性、包含哪些行為以及數(shù)據(jù)之間的關(guān)系等。
T 代表模板(Template),即表現(xiàn)層。 該層處理與表現(xiàn)相關(guān)的決定: 如何在頁面或其他類型文檔中進(jìn)行顯示。
V 代表視圖(View),即業(yè)務(wù)邏輯層。 該層包含存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。 你可以把它看作模型與模板之間的橋梁。

  登錄  

后端代碼:

#登錄邏輯處理函數(shù)
def login_action(request):
 if request.method == "POST":
  username = request.POST.get('username','')
  password = request.POST.get('password','')
  remember = request.POST.get('remember','')
  print(remember,111)
  #if username == 'admin' and password == '123456':
  #django認(rèn)證登錄
  user = auth.authenticate(username=username,password=password)
  # print("user:%s"%user)
  if user is not None:
   auth.login(request,user) #登陸
   #response.set_cookie('user',username,3600) #添加瀏覽器cookie
   request.session['user'] = username #寫入session 寫入瀏覽器,存入服務(wù)器。
   response = HttpResponseRedirect('/home/')
   """
   重定向,先post→get通過路由urls,找到event_manager函數(shù),跳轉(zhuǎn)到找到event_manager.html頁面。
   """
   # 判斷是否記住用戶名
   if remember == "on":
    # 設(shè)置cookie username *過期時間為1周,按秒計算
    response.set_cookie('username', username, max_age=7 * 24 * 3600)
   return response
  else:
   # return render(request,'index.html',{'error':'username or password error!'})
   return redirect('/login/')
#登錄顯示頁面
def login(request):
 '''顯示登陸頁面'''
 # 獲取cookie username
 if 'username' in request.COOKIES:
  username = request.COOKIES['username']
 else:
  username = ''
 return render(request,'index.html',{'username': username})

  前端代碼

#首頁
<html>
<head>
 {% load bootstrap3 %}
 {% bootstrap_css %}
 <link rel="stylesheet" href="/static/css/style.css">
</head>
<body >
<div class="container">
 <div class="form row">
  <div class="form-horizontal col-md-offset-3" id="login_form">
   <h4 class="form-title" ><font color="#fffaf0">歡迎登錄</font></h4>
   <div class="col-md-9">
    <form action="/login_action/" method="post">
     <div class="form-group">
      <i class="fa fa-user fa-lg"></i>
      <input class="form-control required" type="text" value="{{ username }}" placeholder="Username"
        id="username" name="username" autofocus="autofocus" maxlength="20"/>
     </div>
     <div class="form-group">
      <i class="fa fa-lock fa-lg"></i>
      <input class="form-control required" type="password" placeholder="Password" id="password"
        name="password" maxlength="8"/>
     </div>
     <div class="form-group">
      <label class="checkbox">
       {#       <input type="checkbox" name="remember" value="1"/>記住我#}
       <input type="checkbox" name="remember"/>記住我
      </label>
      <p>{{ back_dict }}</p>
     </div>
     <div class="form-group col-md-offset-9">
      <button type="submit" class="btn btn-success pull-right" name="submit">登錄</button>
     </div>
    </form>
   </div>
  </div>
 </div>
</div>
</body>
</html>

  效果如下

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

  首頁  

后端代碼

#主頁
def home(request):
 return render(request,'home.html')

  效果如下

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

  發(fā)布會頁面

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

  嘉賓頁面

Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)

感謝各位的閱讀!關(guān)于“Python中django框架如何實(shí)現(xiàn)發(fā)布會簽到系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI