目录
1、创建Django项目(专业版自动选择 虚拟环境 和 创建新应用)
一、Django简单的登录注册(带验证码)
1、创建Django项目(专业版自动选择 虚拟环境 和 创建新应用)
或者使用命令创建:
django-admin startproject 项目名
python manage.py startapp app名
2、配置项目urls路径
3、 添加模板
首页模板
登录模板
注册模板
4、views视图处理代码
from django.shortcuts import render,HttpResponse
import random,string
from app01.models import User
#主页处理
def index(request):
return render(request,'index.html',locals()) #通向主页
#获取验证码
def getYZM(request):
code = random.choices(string.ascii_lowercase + string.digits,k=4) #生成随机验证码数组
code = ''.join(code) #生成随机验证码字符串
request.session['code'] = code #将每次生成的验证码保存到当前用户的session会话中
return code #返回验证码字符串
#登录处理
def login(request):
if request.method == 'GET': #处理登录get请求
code = getYZM(request) #获取验证码
return render(request,'login.html',locals()) #进入登录界面,传入参数code
else:
post = request.POST #获取post请求数据字典
code = post.get('code') #获取前台发来的验证码
print(code) #测试
if code == request.session.get('code',''): #验证验证码
uname = post.get('uname').strip() #获取前台传来的用户名
if len(uname): #处理用户名不为空
upwd = post.get('upwd').strip() #获取前台传来的密码
if User.objects.filter(uname=uname,upwd=upwd): #判断数据库是否存在该用户
return HttpResponse('登录成功')
else: #处理数据库没有该用户的处理
msg = '用户名或者密码错误'
return render(request,'login.html',locals())
else: #处理用户名为空
msg = '用户名不能为空'
return render(request, 'login.html', locals())
else: #验证码输入错误处理
msg = '验证码输入错误'
code = getYZM(request) #刷新验证码
return render(request,'login.html',locals())
#注册处理
def register(request):
if request.method == 'GET': #处理注册get请求
return render(request,'register.html',locals())
else: #处理注册post请求
post = request.POST #获取注册请求的数据字典
uname = post.get('uname').strip() #获取注册账号
upwd = post.get('upwd').strip() #获取注册密码
if len(uname): #处理账号不为空
if User.objects.filter(uname=uname): #判断数据库是否已经存在
msg = '用户名已经被注册'
return render(request,'register.html',locals())
else: #数据库不存在,注册用户
User.objects.create(uname=uname,upwd=upwd)
return HttpResponse('注册成功')
else: #处理账号为空
msg = '用户名不能为空'
return render(request, 'register.html', locals())
5、迁移数据库
6、测试成功
二、selenium爬虫
1、导包:pip install selenium
2、代码:
from selenium import webdriver
from time import sleep
#设置google驱动路径
driver = webdriver.Chrome(executable_path='E:\瞎玩\骚操作\爬取模拟登陆豆瓣网\chromedriver.exe')
url = 'http://www.baidu.com'
driver.get(url) #打开网址
driver.maximize_window() #最大化窗口
driver.minimize_window() #最小化窗口
driver.set_window_size(100,100) #设置窗口大小
sleep(2) #保存截图前,需要等网页加载完
driver.save_screenshot('gaofei.jpg') #保存网页截图
#通过xpath获取百度输入框和确认按钮
kw = driver.find_element_by_xpath('//*[@id="kw"]')
su = driver.find_element_by_xpath('//*[@id="su"]')
kw.send_keys('gaofei') #输入框输入 文字
su.click() #点击确认按钮
#关闭网页
driver.quit()
三、Django 加减乘除
1、创建django项目,不再多说,第一个项目有
2、模板网页代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>加减乘除</title>
</head>
<body>
<form action="/index/" method="post">
{% csrf_token %}
第一个数:<input type="text" name="one" value="{{ one }}"><br>
第二个数:<input type="text" name="two" value="{{ two }}"><br>
计算结果:<input type="text" name="result" value="{{ result }}"><br>
<input type="submit" name='operate' value="相加">
<input type="submit" name='operate' value="相减">
<input type="submit" name='operate' value="相乘">
<input type="submit" name='operate' value="相除">
<p style="color:red;">{{ msg }}</p>
</form>
</body>
</html>
3、路由代码
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
def index(request):
if request.method == 'GET':
return render(request,'index.html',locals())
else:
post = request.POST
try:
one = float(post.get('one').strip())
two = float(post.get('two').strip())
operate = post.get('operate').strip()
except Exception:
msg = '请输入正确的数字格式'
return render(request,'index.html',locals())
else:
if operate == '相加':
result = one + two
elif operate == '相减':
result = one - two
elif operate == '相乘':
result = one * two
elif operate == '相除':
if two == 0:
msg = '除数不能为0'
return render(request,'index.html',locals())
else:
result = one / two
return render(request,'index.html',locals())
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', index),
]
4、启动项目测试吧