当前位置: 首页 > news >正文

贵阳网站建设钟鼎网络大连网站维护

贵阳网站建设钟鼎网络,大连网站维护,你是怎么理解的,网页制作与网站制作1、创建数据库的管理员表 在models.py 中定义admin表#xff0c;为了简单#xff0c;表里只有用户名和密码还有默认加的id 三个字段 from django.db import models# Create your models here.class Admin(models.Model):username models.CharField(verbose_name用户…1、创建数据库的管理员表 在models.py 中定义admin表为了简单表里只有用户名和密码还有默认加的id 三个字段 from django.db import models# Create your models here.class Admin(models.Model):username models.CharField(verbose_name用户名,max_length16)passwd models.CharField(verbose_name密码,max_length64) 执行创建表的语句 py -3 manage.py makemigrations py -3 manage.py migrate然后自己手动插入一些用户 2、登录界面和登录视图 在urls.py中加入路径 from django.urls import path from app01.views import user,depart,pretty,admin,accounturlpatterns [#path(admin/, admin.site.urls),path(depart/list/, depart.depart_list),path(depart/add/, depart.depart_add),path(depart/delete/, depart.depart_delete),#http://127.0.0.1:8000/depart/2/edit/path(depart/int:nid/edit/, depart.depart_edit),path(user/list/, user.user_list),path(user/add/, user.user_add),path(user/int:nid/edit/, user.user_edit),path(user/int:nid/delete/, user.user_delete),path(pretty/list/, pretty.pretty_list),path(pretty/add/, pretty.pretty_add),path(pretty/int:nid/edit/, pretty.pretty_edit),path(pretty/int:nid/delete/, pretty.pretty_delete),path(admin/add/, admin.admin_add),path(admin/list/, admin.admin_list),path(admin/int:nid/edit/,admin.admin_edit),path(login/account/,account.login), #这个是登录的 ]在写登录的视图函数account.py 我把不同模块的视图函数拆分了不同功能模块的一个py文件在app01目录下创建目录views, 在views目录下分类写视图函数主要要把原始的views.py文件删除 登录使用的Form组件 获取到用户输入的数据后要对数据进行校验根数据库里面的值 再有如果验证通过要request.session 通过这个生成session, django会自动处理生成一个session保存到数据库并把这个session返回给浏览器。 from django.shortcuts import render,redirect from django import forms from app01.utils.encrypt import md5 from app01 import modelsclass LoginForm(forms.Form):username forms.CharField(label用户名,widgetforms.TextInput,requiredTrue,)passwd forms.CharField(label密码,widgetforms.PasswordInput(render_valueTrue),requiredTrue)# 这个init方式是给自己加样式的def __init__(self, *args,**kwargs):super().__init__(*args,**kwargs)for name ,field in self.fields.items():#字段中有属性保留原来的属性没有属性才增加if field.widget.attrs:field.widget.attrs[class] form-controlfield.widget.attrs[placeholder] field.labelelse:field.widget.attrs {class:form-control}def login(request):用户登录if request.method GET:form LoginForm()return render(request,login.html,{form:form})form LoginForm(datarequest.POST)if form.is_valid():#print(form.cleaned_data) #获取到的值是一个字典{username: root, passwd: 1234}#校验数据库的用户名和密码admin_object models.Admin.objects.filter(**form.cleaned_data).first()if not admin_object:form.add_error(passwd,用户名或密码错误)return render(request,login.html,{form:form})#用户名和密码正确#网站生成随机字符串 写到用户浏览器的cookie中再写入到session中request.session[info] {id:admin_object.id,name:admin_object.username}return redirect(/admin/list/)return render(request,login.html,{form:form})login.html 的内容 {% load static %} !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlelink relstylesheet href{% static plugins/bootstrap-3.4.1/css/bootstrap.min.css %}style.account {width: 400px;border-radius: 5px;border: 1px solid #dddddd;box-shadow: 5px 5px 20px #aaa;margin-left: auto;margin-right: auto;margin-top: 100px;padding: 20px 40px;}.account h2 {margin-top: 10px;text-align: center;}/style /head body div classaccounth2用户登录/h2form methodpost novalidate{% csrf_token %}{% for field in form %}div classform-grouplabel {{ field.label }}/label{{ field }}span stylecolor:red{{ field.errors.0 }}/span/div{% endfor %}button typesubmit classbtn btn-primary提交/button/form/divscript src{% static js/jquery-3.7.0.min.js %}/script script src{% static plugins/bootstrap-3.4.1/js/bootstrap.min.js %}/script /body /html3、中间件实现登录鉴权 在开始我们写了一个功能后把django项目运行起来直接方法url就能访问到了正常来说是只有登录后的用户才能访问到django中给我们提供了中间件可以通过中间件来实现鉴权 在django 中可以定义多个中间件中间件就是一个类类里面定义有两个函数一个是process_request进入的穿过所有的中间件到达视图函数视图函数返回结果通过process_response函数返回给浏览器 定义中间件 from django.utils.deprecation import MiddlewareMixin from django.shortcuts import redirectclass AuthMiddleWare(MiddlewareMixin):中间件判断是否登录def process_request(self,request):# 1、排除那些不需要登录就能访问的页面# request.path_info 获取当前用户请求的URL ru /login/account/if request.path_info /login/account/:return# 2、读取当前访问的用户的session信息如果能读到说明以登录过就可以继续向后走info_dict request.session.get(info)if info_dict:return# 3、没有登录过重新回到登录页面return redirect(/login/account/) 使用中间件在settings.py中注册中间件 会按这个顺序执行中间件定义好后会自动调佣 MIDDLEWARE [django.middleware.security.SecurityMiddleware,django.contrib.sessions.middleware.SessionMiddleware,django.middleware.common.CommonMiddleware,django.middleware.csrf.CsrfViewMiddleware,django.contrib.auth.middleware.AuthenticationMiddleware,django.contrib.messages.middleware.MessageMiddleware,django.middleware.clickjacking.XFrameOptionsMiddleware,app01.middleware.auth.AuthMiddleWare, ]中间件添加好后你再没有登录的情况下去访问http://127.0.0.1:8000/user/list/ 这些页面会自动跳转到登录界面。
http://www.huolong8.cn/news/164611/

相关文章:

  • 网页设计共享网站上海企业网站建设服务
  • 亚洲做爰直播网站vip影视建设网站官网
  • 网站从新建设影响收录么营销网站建设一薇
  • 河北电子商务网站建设央企网站群建设
  • 长春企业自助建站哈尔滨网站建设价格低
  • 购物形式网站制作软件技术跟网站开发有关系吗
  • 企业网站建立的流程ios软件下载网站
  • 长尾关键词挖掘工具爱网站株洲百度推广地址
  • 免费企业建网站1688一件代发跨境电商
  • wordpress多站点管理建站平台哪个比较权威
  • 重庆网站建设选夹夹虫深圳专业专业网站设计
  • 什么东西可以做网站个人备案的网站竞价排名做不了
  • 影视公司网站建设wordpress导购淘宝客主题
  • 网站开发作业wordpress安装博客方法
  • 关于网站建设的调查报告二手交易网站开发系统
  • 宁波做网站的大公司排名京津冀协同发展的基础
  • 济南智能网站建设电话可以做问卷的网站
  • 文章类网站源码岳阳seo招聘
  • 有哪些可以做包装袋的网站山西建设厅官方网站
  • 网站开发 问题 关键技术网站上的弹框如何做网页
  • 贵州省贵州省建设厅网站城乡与住房建设部网站
  • 朝阳住房和城乡建设厅网站企业网站多大空间够用
  • 洛阳做网站优化请简要描述如何进行网站设计规划
  • 建设网站对公司起什么作用是什么免费网站备案
  • 升阳广州做网站公司广州17做网站
  • 手机移动网站模板wordpress 地址栏
  • 网站建设制作设计手机管理网站模板
  • 新余专业的企业网站建设公司如何分析竞争对手网站
  • 网站开发是做什么58同城关键词怎么优化
  • 成都品牌网站建设如何查询网站点击量