国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django小白教程之Django用戶注冊與登錄

2020-01-04 17:31:19
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Django小白教程之Django用戶注冊與登錄的相關資料,需要的朋友可以參考下
 

 Django 是由 Python 開發的一個免費的開源網站框架,可以用于快速搭建高性能,優雅的網站!

學習django學得超級吃力,最近弄個最簡單的用戶登錄與注冊界面都是那么難,目前算是基本實現了,雖然功能特別特別簡單但是做一個記錄,以后學習深入了再來補充: 

首先創建項目,到項目所在目錄:django-admin startproject demo0414_userauth 

進入項目:cd demo0414_userauth 

創建相應的app:django-admin startapp account

整個項目的結構圖如圖所示 

├── account 
│ ├── admin.py 
│ ├── admin.pyc 
│ ├── apps.py 
│ ├── init.py 
│ ├── init.pyc 
│ ├── migrations 
│ │ ├── 0001_initial.py 
│ │ ├── 0001_initial.pyc 
│ │ ├── init.py 
│ │ └── init.pyc 
│ ├── models.py 
│ ├── models.pyc 
│ ├── tests.py 
│ ├── urls.py 
│ ├── urls.pyc 
│ ├── views.py 
│ └── views.pyc 
├── demo0414_userauth 
│ ├── init.py 
│ ├── init.pyc 
│ ├── settings.py 
│ ├── settings.pyc 
│ ├── urls.py 
│ ├── urls.pyc 
│ ├── wsgi.py 
│ └── wsgi.pyc 
├── manage.py 
└── templates 
├── register.html 
├── success.html 
└── userlogin.html

4 directories, 29 files

然后在setting文件的installed_app中添加app account;

Django,用戶注冊

創建一個templates文件夾,可以放在項目的根目錄下也可以放在app的目錄下。一般情況下提倡放在app的目錄下。如果放下項目的根目錄下需要在setting文件中TEMPLATES中設置'DIRS': [os.path.join(BASE_DIR,'templates')],否則不能使用模板。

Django,用戶注冊

另外因為這個項目存在頁面跳轉的問題,為了安全防止csrf攻擊,一把模板中都有了相關的設置。目前我還不會用這個東西,據說在form表單中添加標簽{% csrf_token %}就可以實現了,但是我沒有成功。所以先不考慮這個問題,把seeting中的這個中間件'django.middleware.csrf.CsrfViewMiddleware',注釋掉

Django,用戶注冊

然后在model中創建相應的數據庫:

class User(models.Model): username = models.CharField(max_length=50) password = models.CharField(max_length=50) email = models.EmailField()

view中添加相應的程序。Pdb當時用于斷點調試,我很喜歡,超級喜歡。如果你不敢興趣,直接注釋即可。

#coding=utf-8from django.shortcuts import render,render_to_responsefrom django import formsfrom django.http import HttpResponse,HttpResponseRedirectfrom django.template import RequestContextfrom django.contrib import authfrom models import Userimport pdbdef login(request):  if request.method == "POST":  uf = UserFormLogin(request.POST)  if uf.is_valid():   #獲取表單信息   username = uf.cleaned_data['username']   password = uf.cleaned_data['password']      userResult = User.objects.filter(username=username,password=password)   #pdb.set_trace()   if (len(userResult)>0):    return render_to_response('success.html',{'operation':"登錄"})   else:    return HttpResponse("該用戶不存在") else:  uf = UserFormLogin()return render_to_response("userlogin.html",{'uf':uf})def register(request): curtime=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()); if request.method == "POST":  uf = UserForm(request.POST)  if uf.is_valid():   #獲取表單信息   username = uf.cleaned_data['username']   #pdb.set_trace()   #try:   filterResult = User.objects.filter(username = username)   if len(filterResult)>0:    return render_to_response('register.html',{"errors":"用戶名已存在"})   else:    password1 = uf.cleaned_data['password1']    password2 = uf.cleaned_data['password2']    errors = []    if (password2 != password1):     errors.append("兩次輸入的密碼不一致!")     return render_to_response('register.html',{'errors':errors})     #return HttpResponse('兩次輸入的密碼不一致!,請重新輸入密碼')    password = password2    email = uf.cleaned_data['email']   #將表單寫入數據庫    user = User.objects.create(username=username,password=password1)    #user = User(username=username,password=password,email=email)    user.save()    pdb.set_trace()   #返回注冊成功頁面    return render_to_response('success.html',{'username':username,'operation':"注冊"}) else:  uf = UserForm()return render_to_response('register.html',{'uf':uf})class UserForm(forms.Form): username = forms.CharField(label='用戶名',max_length=100) password1 = forms.CharField(label='密碼',widget=forms.PasswordInput()) password2 = forms.CharField(label='確認密碼',widget=forms.PasswordInput()) email = forms.EmailField(label='電子郵件')class UserFormLogin(forms.Form): username = forms.CharField(label='用戶名',max_length=100) password = forms.CharField(label='密碼',widget=forms.PasswordInput())

Tempaltes文件夾下總共有3個頁面:

Register.html

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>用戶注冊</title></head> <style type="text/css"> body{color:#efd;background:#453;padding:0 5em;margin:0} h1{padding:2em 1em;background:#675} h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em} p{margin:1em 0} </style><body><h1>注冊頁面:</h1><form method = 'post' enctype="multipart/form-data">{{uf.as_p}}{{errors}}</br><input type="submit" value = "ok" /></form></body></html>

Userlogin.html

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>用戶注冊</title></head> <style type="text/css"> body{color:#efd;background:#453;padding:0 5em;margin:0} h1{padding:2em 1em;background:#675} h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em} p{margin:1em 0} </style><body><h1>登錄頁面:</h1><form method = 'post' enctype="multipart/form-data">{{uf.as_p}}<input type="submit" value = "ok" /></form></body></html>

Success.html

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title></head><body><form method = 'post'> <h1>恭喜,{{operation}}成功!</h1></form></body></html>

更新數據庫:

Django,用戶注冊

運行服務器:

Django,用戶注冊

注冊頁面:

Django,用戶注冊

如果注冊的用戶沒有注冊過,則能注冊成功點擊OK進入success界面 

登錄頁面:

Django,用戶注冊

點擊OK就能進入到success頁面

關于Django用戶注冊與登錄教程就給大家介紹完了,希望對大家有所幫助!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐至县| 二连浩特市| 同仁县| 萨迦县| 赣州市| 凤冈县| 和田市| 乐昌市| 师宗县| 阜南县| 沈丘县| 五家渠市| 仁布县| 绍兴市| 大厂| 颍上县| 永寿县| 金堂县| 南郑县| 西藏| 建湖县| 晋城| 凤阳县| 广东省| 佛山市| 南陵县| 西宁市| 龙井市| 沾化县| 灵山县| 余庆县| 辛集市| 齐齐哈尔市| 辽阳县| 白山市| 福清市| 比如县| 福建省| 馆陶县| 辉南县| 襄垣县|