要寫這個,前提還是需要知道三個知識:
一個是urls.py,它是寫我們的路由關系的,之前我寫了通過wsgiref寫一個簡單的服務端,也用到了路由,就是
請求過來的url和視圖函數的對應關系。
二是就是幾個類,render,HttpResponse,redirect,我就說說功能
render:將模板(也就是html文件)渲染,再發送到前端頁面---大概就是這樣的功能,用詞不太准確
HttpResponse:將字符串返回到前端頁面
redirect:重定向的功能
三就是數據庫相關的,orm吧
1、注冊登陸兩個功能,想都不要在項目templates文件夾中寫兩個html頁面,一個是登陸,一個是注冊。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>register</title>
</head>
<body>
<h1>注冊界面</h1>
<form action="" method="post"> 用戶名:<input type="text" name="name"><br> 密碼:<input type="password" name="pwd"><br> 確認密碼:<input type="password" name="re_pwd"><br>
<input type="submit" value="注冊">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h1>登陸界面</h1> {#最簡單的html代碼,哈哈#} {#這里要提醒下,提交到后台的get,post方式都可以,但是作為賬戶數據的話,用post#} <form action="/login/" method="post"> 用戶名:<input type="text" name="name"><br> 密碼:<input type="password" name="pwd"><br>
<input type="submit" value="登陸">
</form>
</body>
</html>
2、寫好了我們首先去urls.py文件中寫好路由,把視圖函數映射關系寫好
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login', views.login), url(r'^register', views.register), ]
3、寫好了就去app01中view文件中寫相應的函數了,先寫個空函數占位吧
4、需要數據庫,先去app01中models.py寫一個類(也就是創建表),屬性寫好了,就執行兩句命令
python3 manage.py makemigrations
python3 manage.py migrate
這樣我們的表就創建好了,那么就應該去視圖函數寫相關邏輯
from django.db import models # Create your models here. class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
##創建好了,就在cmd中執行上面兩條命令就好
5、在視圖函數中寫邏輯代碼
from django.shortcuts import render,HttpResponse,redirect from app01 import models # Create your views here. def login(request): # request這是前端請求發來的請求,攜帶的所有數據,django給我們做了一些列的處理,封裝成一個對象傳過來 # 其實挺簡單,學會用它給你的一些方法就好了,其實你自己也想到它是怎樣處理的。 if request.method == 'GET': return render(request,'login.html') if request.method == 'POST': name = request.POST.get('name') pwd = request.POST.get('pwd') user_obj = models.User.objects.filter(name=name,pwd=pwd).first() if user_obj: return HttpResponse('登陸成功') else: return HttpResponse('用戶名或密碼錯誤') def register(request): if request.method == 'GET': return render(request,'register.html') if request.method == 'POST': name = request.POST.get('name') pwd = request.POST.get('pwd') re_pwd = request.POST.get('re_pwd') if name and pwd and re_pwd: if pwd == re_pwd: user_obj = models.User.objects.filter(name=name).first() if user_obj: return HttpResponse('用戶已存在') else: models.User.objects.create(name=name,pwd=pwd).save() return redirect('/login/') else: return HttpResponse('兩次密碼不一致') else: return HttpResponse('不能有空!')
6、啟動django項目就行了,然后在瀏覽器輸入對應的url,就行操作。