栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【无标题】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

第四单元 1.动态路由

类试图

from django.views import View
class Index(View):
    def get(self,request,page):
        return HttpResponse(f"当前第{page}也")

子路由

  from django.urls import re_path , path
from myapp import views
urlpatterns=[path('index//',views.Index.as_view()),
    # re_path(r'^index/(?Pd+)/$',views.Index.as_view())
    ]
    
2.路由分发(创建子路由)

需要现在主路由中进行路由分发

from django.contrib import admin
# 导入include方法
from django.urls import path, include
from myapp import urls

urlpatterns = [
    #主路由
    path('admin/', admin.site.urls),
    path('',include(urls))   # 路由分发
]

在子组件中创建子路由

from django.urls import re_path , path
from myapp import views
urlpatterns = [
    re_path(r"^[a-zA-Z]{3}/$",views.Review.as_view()),
    path('index/',views.Index.as_view()),
]
3案例:登录注册 知识点:类视图CBV 重定向

编写两个模型类,用来生成表

from django.db import models

# Create your models here.
# 编写模型类

class BOOK(models.Model):
    user = models.CharField(max_length=12,verbose_name='账号')
    pwd = models.CharField(max_length=12,verbose_name='密码')
#     元类:
    class Meta:
        verbose_name = '用户表'
        verbose_name_plural = verbose_name
        db_table = 'yong'
    def __str__(self):
        return self.user
        
class SHU(models.Model):
    name = models.CharField(max_length=10,verbose_name='书名')
    num = models.IntegerField(verbose_name="数量")
    price = models.IntegerField(verbose_name="价格")
    class Meta:
        verbose_name = '书单'
        verbose_name_plural = verbose_name  
        db_table = 'shu1'
    def __str__(self):
        return self.name

# 生成迁移文件
# python manage.py makemigrations
# 创建迁移文件
# python manage.py migrate
# 创建超级用户
# python manage.py createsuperuser
# 注册表

在注册两个模型类

from django.contrib import admin
from book.models import BOOK
from book.models import SHU
# Register your models here.
# 注册表
admin.site.register(BOOK)
admin.site.register(SHU)
# 以管理员身份打开就可以添加数据了
4.注册,保存账号密码到数据库

注册视图:get 获取表单页面 post提交账号密码,重定向到登录页面
定义注册的类试图

from django.shortcuts import render,redirect
from django.http import HttpResponse
from book.models import BOOK
from django.views import View

class register(View):
    def get(self,request):
        # 返回一个注册页面
        return render(request,'register.html')
    def post(self,request):
        # 提取账号密码
        user = request.POST.get('user')
        pwd = request.POST.get("pwd")
        # 判断是否存在
        try:
            # BOOK是模型类  get查询models里的user是否与输入的相同
            BOOK.objects.get(user=user)
            return  HttpResponse("用户存在")
        except Exception as e:
            # 打印失败的原因
            print(e)
            # 保存账号密码  creata 创建数据,在数据库中新增(字段名=输入的变量)
            BOOK.objects.create(user=user,pwd=pwd)
            # 登录页面的路由login  /从跟地址开始
            return redirect('/login/')   #重定向

配置路由

from django.urls import path
from book import views
urlpatterns =[
    path('register/', views.register.as_view()),
]

注册页面




    
    Title


        注册页面
{# action :提交地址:跳转哪个视图的路由  methods:提交方式  数据提交到register这个视图进行处理 #}
        
# /是从根目录开始 账号: 密码:
5.登录,判断账号密码是否正确

登录视图:get 获取表单页面 post提交账号密码,重定向到主页面
定义登陆的类视图

from django.shortcuts import render,redirect
from django.http import HttpResponse
from book.models import BOOK
from django.views import View

class login(View):
    def get(self,request):  # 返回一个登录页面
        return render(request,'login.html')
    def post(self,request):
        user  = request.POST.get('user')
        pwd = request.POST.get('pwd')
        try:
            # 先获取用户
            book_data = BOOK.objects.get(user=user)
        except Exception as e:
            print(e)
            # 返回一个响应
            return HttpResponse("用户不存在")
        # 判断密码是否正确
        if book_data.pwd == pwd:
            return redirect('/zhu/')
        else:
            return HttpResponse("密码错误")

配置路由

from django.urls import path
from book import views
urlpatterns =[
    path('login/', views.login.as_view()),
]

登录页面




    
    Title


        登录页面
        
{# #提交给login视图进行处理 post请求#} 账号: 密码:
6.主页面

主页面的类视图

from django.shortcuts import render
from django.http import HttpResponse
from django.views import View

class zhu(View):
    def get(self,request):
        data = SHU.objects.all()
        return render(request,'zhu.html',{'shu':data})

配置路由

from django.urls import path
from book import views
urlpatterns =[
    path('zhu/',views.zhu.as_view())
]

主页面




    
    Title


        主页面
        
            {% for fo in shu %}
                
            {% endfor %}
        
编号 名字 数量 价格
{{ fo.id }} {{ fo.name }} {{ fo.num }} {{ fo.price }}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号