Django练习

目录

 

一、Django简单的登录注册(带验证码)

1、创建Django项目(专业版自动选择  虚拟环境  和  创建新应用)

2、配置项目urls路径

3、 添加模板

首页模板

登录模板

 注册模板

 4、views视图处理代码

5、迁移数据库

6、测试成功 

二、selenium爬虫

1、导包:pip install selenium

2、代码:

三、Django 加减乘除

1、创建django项目,不再多说,第一个项目有

2、模板网页代码:

3、路由代码 


一、Django简单的登录注册(带验证码)

1、创建Django项目(专业版自动选择  虚拟环境  和  创建新应用)

创建Django项目和应用

或者使用命令创建:

django-admin startproject 项目名
python manage.py startapp app名

2、配置项目urls路径

配置项目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、启动项目测试吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值