Django使用者登入與註冊——小白教程
學習django學得超級吃力,最近弄個最簡單的使用者登入與註冊介面都是那麼難,目前算是基本實現了,雖然功能特別特別簡單但是做一個記錄,以後學習深入了再來補充:
首先建立專案,到專案所在目錄:django-admin startproject demo0414_userauth
進入專案:cd demo0414_userauth
建立相應的app:django-admin startapp account
整個專案的結構圖如圖所示
.
├── account
│ ├── admin.py
│ ├── admin.pyc
│ ├── apps.py
│ ├── init
│ ├── 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
│ ├── 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;
建立一個templates資料夾,可以放在專案的根目錄下也可以放在app的目錄下。一般情況下提倡放在app的目錄下。如果放下專案的根目錄下需要在setting檔案中TEMPLATES中設定’DIRS’: [os.path.join(BASE_DIR,’templates’)],否則不能使用模板。
另外因為這個專案存在頁面跳轉的問題,為了安全防止csrf攻擊,一把模板中都有了相關的設定。目前我還不會用這個東西,據說在form表單中新增標籤{% csrf_token %}就可以實現了,但是我沒有成功。所以先不考慮這個問題,把seeting中的這個中介軟體’django.middleware.csrf.CsrfViewMiddleware’,註釋掉
然後在model中建立相應的資料庫:
class User(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
email = models.EmailField()
view中新增相應的程式。Pdb當時用於斷點除錯,我很喜歡,超級喜歡。如果你不敢興趣,直接註釋即可。
#coding=utf-8
from django.shortcuts import render,render_to_response
from django import forms
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django.contrib import auth
from models import User
import pdb
def 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>
更新資料庫:
執行伺服器:
註冊頁面:
如果註冊的使用者沒有註冊過,則能註冊成功點選OK進入success介面
登入頁面:
點選OK就能進入到success頁面
相關推薦
Django使用者登入與註冊——小白教程
學習django學得超級吃力,最近弄個最簡單的使用者登入與註冊介面都是那麼難,目前算是基本實現了,雖然功能特別特別簡單但是做一個記錄,以後學習深入了再來補充: 首先建立專案,到專案所在目錄:django-admin startproject demo0414_
Django使用者登入與註冊系統
一、建立專案 1.1.建立專案和app django-admin startproject mysite_login python manage.py startapp login 1.2.設定時區和語言 Django預設使用美國時間和英語,在專案的settings檔案中,如下所示:
【Kibana6.3.0】Kibana6入門小白教程之下載安裝與資料準備
1. Kibana簡介及下載安裝 Kibana是專門用來為ElasticSearch設計開發的,可以提供資料查詢,資料視覺化等功能。 下載地址為:https://www.elastic.co/downloads/kibana#ga-release,請選擇適合當前es版本的K
Ubuntu14下搭建apache+django的小白教程
一、 環境說明:ubuntu:14.04apache:2.4 python:3.4 Django:2.0.3二、 apache 預備知識tips:瞭解本塊知識有助於在你配置失敗的時候知道dubug的方向(大佬可直接跳過)1. 可執行程式所在目錄 /usr/s
cocos遊戲開發小白教程網站
s2d tar lists blank org 3.3 ria get sts 《Quick-Cocos2d-x v3.3小白書系列教程》 《Quick-Cocos2d-x初學者遊戲教程》cocos遊戲開發小白教程網站
3dsmax2014的下載、安裝與註冊激活教程詳解
com cor 殺毒 系統 3dmax http 後退 tar 輸入 3dsmax2014的下載、安裝與註冊激活教程,雖然網上類似的教程文章不勝枚舉,但大多比較粗枝大葉,沒有詳細的步驟,尤其對於電腦小白來說,更是不易參考,今天我就教大家如何註冊破解3dsmax2014吧!
制作Windows10政府版的小白教程
操作 鏡像 配置 mage 保存 per 當前 文件的 upload 制作Windows10政府版的小白教程 https://03k.org/make10entg.html 首先,宿主系統要比操作的系統新,因為低版本dism操作不了: 當然也可以單獨下載ADK,提取最新版
DHCP服務器搭建 企業實用 小白教程
sta dhcp服務器 int server fault p地址 配置 廣播地址 efault DHCP 服務器搭建 安裝dhcp Yum -y install dhcp編輯配置文件 vim /
Linux下安裝SVN服務端小白教程
空格 password eat section logs ini sta http .cn 轉載:https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html 安裝 使用yum安裝非常簡單: yum in
Solr叢集搭建詳細教程(一) Linux伺服器上安裝JDK小白教程
注:歡迎大家轉載,非商業用途請在醒目位置註明本文連結和作者名dijia478,商業用途請聯絡本人[email protected]。 一、Solr叢集的系統架構 SolrCloud(solr 雲)是Solr提供的分散式搜尋方案,當你需要大規模,容錯,分散式索引和檢索能力時使用 SolrCloud
IDEA如何建立JavaWeb專案(小白教程)
建立專案 第一步: finish之後,專案結構如下圖所示 第二步:在WEB-INF下新建classes和lib2個資料夾(Directory) 配置專案 第三步:配置java class位元組碼編譯路徑,點選 第
訊號與系統小白的整理(慢慢整理)
課外的看了不少,課內沒怎麼聽這門課(對不起,一點也沒聽過),整理一下知識點吧 主要是給自己看的,就只弄自己迷糊的部分 截圖來自於杭州電子科技大學的課件 第一章 共軛偶訊號、共軛奇訊號:覆信號的偶訊號和奇訊號 任何訊號能分解成一個奇訊號和一個偶訊號,任何一個覆信號都可以分成一個共軛
python,關於使用者登入與註冊問題
tag=Truecount=1while tag: name = input('請輸入使用者名稱>>:').strip() password = input('請輸入密碼>>:').strip() if count==3: print('輸入次數過多')
github 小白教程
工作整天在忙,也沒好好有整塊的時間去學學東西,記錄一下github的學習過程,以便日後好回顧,我一直堅信只有被大家分享的知識,才是好知識。 github是什麼?一定有人會有這樣的疑問。那麼如果說到github,必須要說到git是一款開源的、分散式版本控制系統,也就是Github上用來管理的專
【U3D入門小白教程——代碼篇】之三:常見腳本函數
force avi log tar 啟動 for gravity vector 教程 個人學習第三章節:常見腳本 1.Awake( )與Start() Awake( )在遊戲創建時調用,用於設置遊戲初始化的參數 Start( )在腳本被調用,執行在所有Update( )之
Debian 系統安裝,小白教程
大家好,我是橘子。目前大四,是個小白白。剛開始實習。在實習過程中呢遇到了很多問題,踩了很多坑。網上很多都有教程但總是缺胳膊少腿,說了大概但坑似乎依舊存在。從今天開始,我會將自己碰到的一些坑和如何解決的分享給大家。如果你是個大佬,那我的內容對你來說
JVM調優方案與思路?(小白篇)
堆設定 -Xmx3550m:設定JVM最大堆記憶體為3550M。 -Xms3550m:設定JVM初始堆記憶體為3550M。此值可以設定與-Xmx相同,以避免每次垃圾回收完成後JVM重新分配記憶體。 -Xss128k:設定每個執行緒的棧大小。JDK5.0以後每個執行緒棧大小為
如何在微信公眾號裡預約駕校教練練車_小白教程
基於微信公眾號的駕校約車系統_預約管理軟體外包 使用會議室可以進行提前預約,參加培訓課程可以進行提前預約,場館參觀可以進行提前預約……“預約”正在越來越多的出現在我們的生活中。預約系統實現了商家和顧客的時間、資源精準匹配,為我們
略陽縣不動產登記微信預約之小白教程
為了更好、更精準、更方便的為企業和群眾辦理不動產登記,略陽縣不動產登記交易服務中心特此推出微信預約功能。這樣,您不管在哪,只要拿出手機,關注我們的微信公眾號“略陽不動產登記”,根據您的時間提前預約相應的登記業務,再按預約時間到略陽不動產登記大廳,就可以直接辦理啦
win7平臺cygwin安裝和Clion中配置cygwin編譯器小白教程
文章目錄 系統平臺 安裝cygwin 在Clion中使用cygwin編譯器 系統平臺 本教程系統平臺為win7 64位旗艦版。 安裝cygwin 從官網:https://cygwin.com/install.html 上下載