欲练此功必先自宫
||
||
||
||
||
带验证码的登录注册+注销
开始写django项目
在项目的文件夹目录 打开cmd
输入 django-admin startproject 项目名
添加环境 添加jdango包 添加sqlclient包
创建APP: python manage.py startapp App名字
在settings/INSTALLED_APPS 下添加APP的名字
setting/DATABASES 下修改
‘ENGINE’:‘django.db.backends.mysql’,
‘NAME’:‘数据库名称’,(打开cmd打开mysql客户端创建新的数据库:create database 数据库名)
‘HOST’:‘127.0.0.1’,
‘PORT’:‘3306’,
‘USER’:‘root’,
‘PASSWORD’:‘12345’,
在APP下新建文件夹templates
写login.html
{{ msg }}
{% csrt_token %}账号 | |
密码 | |
验证码 | {{ yzm }}看不清换一张 |
quit()
写成功的页面chenggong.html 带注销
注销
欢迎{{ user.username }}登录
在views.py中写函数
import random
import string
from aini.models import UserInfo
from django.shortcuts import render,HttpResponse,redirect
def get_yzm():
yzm = ‘’
aStr = string.ascii_letters+string.digits
for i in range(4):
yzm += random.choice(aStr)
return yzm
def login(request):
if request.method == ‘GET’:
yzm = get_yzm()
data = {
‘yzm’:yzm
}
request.session[‘yzm’] = yzm
return render(request,‘login.html’)
else:
username = request.POST.get(‘username’,’’).strip()
pwd = request.POST.get(‘pwd’,’’).strip()
yzm = request.POST.get(‘yzm’,’’).strip()
data = {}
if yzm.lower() != request.session.get(‘yzm’).lower():
data[‘msg’] = ‘验证码输入有误’
elif not UserInfo.objects.filter(username=username,pwd=pwd):
data[‘msg’] = ‘账号密码有误’
else:
user = UserInfo.objects.get(username=username,pwd=pwd)
data = {
‘username’ : user.username
}
id = user.pk
request.session[‘id’] = id
return redirect(’/datail/’)
yzm = get_yzm()
data[‘yzm’] = yzm
request.session[‘yzm’] = yzm
return render(request, ‘login.html’)
def datail(request):
id = request.session.get(‘id’,’’)
if id:
user = UserInfo.objects.get(pk=id)
data = {‘user’:user}
return render(request,‘chenggong.html’,data)
else:
return redirect(’/login/’)
#注销
def logout(request):
request.session.flush()
return redirect(’/login/’)
配置URL
from App名字.views import *
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘login/’,login),
path(‘detil/’,detil),
path(‘logout/’,logout),
]
运行项目:python manage.py runserver
不宫也行