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

制作一个静态网站源码/做推广公司

制作一个静态网站源码,做推广公司,广西桂平建设局网站,河南哪里网站建设公司python学习第7天---django框架---视图补充目录文章目录1、书籍管理添加登录模块1.1、 新建登录应用-login1.2、 应用注册1.3、 路由配置1.4、 用户模型类1.5、数据迁移1.6、视图1.7、模板1.8、效果展示2、ajax3、登录案例ajax改进3.1、应用login下urls.py添加路由3.2、 应用log…

python学习第7天---django框架---视图补充


目录

文章目录

    • 1、书籍管理添加登录模块
      • 1.1、 新建登录应用-login
      • 1.2、 应用注册
      • 1.3、 路由配置
      • 1.4、 用户模型类
      • 1.5、数据迁移
      • 1.6、视图
      • 1.7、模板
      • 1.8、效果展示
    • 2、ajax
    • 3、登录案例ajax改进
      • 3.1、应用login下urls.py添加路由
      • 3.2、 应用login下views.py添加视图函数
      • 3.3、 项目/templates/login/login-ajax.html
      • 3.4、 效果图示
    • ***后记*** :


内容

1、书籍管理添加登录模块

  在之前视图讲解项目-书籍管理系统中,进一步添加登录应用。

1.1、 新建登录应用-login

  • 命令:在命令行切换到项目book_manage_system目录下

      	python manage.py startapp login
    

1.2、 应用注册

  • 项目下settings.py:

      INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','book',  # book应用'login',  # 登录应用]
    

1.3、 路由配置

  • 项目下urls.py:

      urlpatterns = [url(r'^admin/', admin.site.urls),url(r'^book/', include('book.urls')),url(r'^login/', include('login.urls')),url(r'^', include('login.urls')),]
    
  • login应用下的urls.py:

      from django.conf.urls import urlfrom login import viewsurlpatterns = [# 通过url函数设置url路要配置项url(r'^index$', views.index),url(r'^login$', views.login),url(r'^register$', views.register),url(r'^', views.index),  # 默认]
    

1.4、 用户模型类

  • login应用下models.py:

      from django.db import models# Create your models here.class User(models.Model):"""用户模型类"""username = models.CharField(max_length=20)password = models.CharField(max_length=32)class Meta:db_table = 'login_user'
    

1.5、数据迁移

  • 命令

      python manage.py makemigrationspython manage.py migrate
    

1.6、视图

  • login应用下的views.py:

      from django.shortcuts import renderfrom django.http import HttpResponsefrom login.models import User# Create your views here.def index(request):"""书籍管理登录首页"""return render(request, 'public/index.html')def login(request):"""用户登录"""# 1、判断请求方法if request.method == "GET":return render(request, 'login/login.html')# 2、获取表单数据username = request.POST.get('username')password = request.POST.get('password')# 3、用户名和密码校验try:user = User.objects.get(username=username)except Exception:# 3.1、用户名不匹配return render(request, 'login/login.html')else:if user.password != password:# 3.2、密码不匹配return render(request, 'login/login.html')# 4、验证通过,进入书籍管理首页return render(request, 'book/index.html')def register(request):"""用户注册"""# 1、判断请求方法if request.method == 'GET':# 1.1、如果是GET方法返回注册页面return render(request, 'login/register.html')# 1.2、如果是POST方法,获取表单数据username = request.POST.get('username')password = request.POST.get('password')# 3、用户名校验try:user = User.objects.get(username=username)except Exception:# 3.2、校验通过# 3.2.1、用户表添加新用户new_user = User()new_user.username = usernamenew_user.password = passwordnew_user.save()# 3.2.2、跳转登录页面return render(request, 'login/login.html')else:if user:# 3.1、校验不通过,返回注册页面return render(request, 'login/register.html')
    

1.7、模板

  • 项目/templates/public

    • 公用首页:index.html

        <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>.book {width: 200px;height: 100px;margin: 0 auto;}li {color: green;}</style></head><body><div class="book"><h3 style="color: orange">书籍管理用户登录</h3><hr><a href="http://127.0.0.1:8000/login/login">登录</a><a href="http://127.0.0.1:8000/login/register">注册</a></div></body></html>
      
  • 项目/templates/login:

    • login.html

        <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>.login {width: 300px;height: 200px;border: 1px solid black;margin: 100px auto;text-align: center;}</style></head><body><div class="login"><h3>书籍管理用户登录</h3><hr><form action="/login/login" method="post">用户名:<input type="text" name="username" placeholder="请输入用户名"><br>密&emsp;码:<input type="password" name="password" placeholder="请输入密码"><br><input type="submit" value="登录"></form></div></body></html>
      
  • register.html:

      <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>.login {width: 300px;height: 200px;border: 1px solid black;margin: 100px auto;text-align: center;}</style></head><body><div class="login"><h3>书籍管理用户注册</h3><hr><form action="/login/register" method="post">用户名:<input type="text" name="username" placeholder="请输入用户名"><br>密&emsp;码:<input type="password" name="password" placeholder="请输入密码"><br><input type="submit" value="注册"><br></form></div></body></html>
    

1.8、效果展示

  • 项目结构:在这里插入图片描述

  • 首页:在这里插入图片描述

  • 注册:在这里插入图片描述

  • 登录:在这里插入图片描述

  • 数据表:在这里插入图片描述

2、ajax

  ajax知识,这里不再详述,给出参考地址:

  • w3cschool:https://www.w3school.com.cn/ajax/index.asp
  • csdn博客:https://blog.csdn.net/Ha_Girl/article/details/90710491
  • cnblogs:https://www.cnblogs.com/zhangruisoldier/p/8006099.html

3、登录案例ajax改进

  后端页面跳转的话,前端页面会整个页面刷新,造成资源浪费,用户体验差。AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

3.1、应用login下urls.py添加路由

	    url(r'^login_ajax$', views.login_ajax),

3.2、 应用login下views.py添加视图函数

	def login_ajax(request):"""用户登录"""# print(request)# 1、判断请求方法if request.method == "GET":return render(request, 'login/login-ajax.html')# 2、获取表单数据username = request.POST.get('username')password = request.POST.get('password')# 3、用户名和密码校验try:user = User.objects.get(username=username)except Exception:# 3.1、用户名不匹配return JsonResponse({'res': 0})else:if user.password != password:# 3.2、密码不匹配return JsonResponse({'res': 0})# 4、验证通过,进入书籍管理首页return JsonResponse({'res': 1})

3.3、 项目/templates/login/login-ajax.html

	<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><script src="/static/public/js/jquery.min.js"></script><style>.login {width: 300px;height: 200px;border: 1px solid black;margin: 100px auto;text-align: center;}#errorMsg {display: none;color: red;}</style><script>$(function () {$('#btnLogin').click(function () {// 1、获取用户名和密码let username = $('#username').val();let password = $('#password').val();// 2、发起ajax请求$.ajax({'url': '/login_ajax','type': 'POST','data': {'username': username, 'password': password},'dataType': 'json',success: function (data) {// console.log(data)if (data.res === 0) {$('#errorMsg').show().html('用户名或者密码错误');} else {location.href = '/book/index';}},error: function (data) {console.log(data)}});});});</script></head><body><div class="login"><h3>书籍管理用户登录</h3><hr>用户名:<input type="text" id="username" name="username" placeholder="请输入用户名"><br>密&emsp;码:<input type="password" id="password" name="password" placeholder="请输入密码"><br><input type="button" id="btnLogin" value="登录"><br><div id="errorMsg"></div></div></body></html>

3.4、 效果图示

  • 失败:
    在这里插入图片描述

  • 成功:在这里插入图片描述

后记

  本项目为参考某音python系列视频。上面为自己参考写的学习笔记,持续更新。欢迎交流,本人QQ:806797785

  1. 原视频地址:https://space.bilibili.com/277754748?spm_id_from=333.788.b_765f7570696e666f.1
  2. 笔记项目源代码地址:https://gitee.com/gaogzhen/python
http://www.lbrq.cn/news/1616113.html

相关文章:

  • 海南综合网站两学一做电视夜校/厦门seo培训
  • 中企动力是骗子公司吗/优化师培训机构
  • wordpress 第三方应用/上海seo博客
  • wordpress站内查找/能翻到国外的浏览器
  • 最新裁员公司名单/aso优化怎么做
  • 一个微信可以做两个网站支付/国外十大免费服务器和域名
  • 网站建设方案应该怎么做/如何做电商
  • 网站优化的推广/网站换友链平台
  • 计算机专业网站建设实训日志/篮网目前排名
  • cloudflare做侵权网站/怎么样在百度上推广自己的产品
  • 网站设计心得/榆林seo
  • 建设企业网站的价格/网站维护费用一般多少钱
  • 网站前后端的关系/网络营销推广策划的步骤
  • 企业网站制作 南京/seo代理计费系统
  • 国外买域名的网站/如何做网站营销推广
  • wordpress搭建微信小程序/郑州seo外包公司哪家好
  • 租网站空间/今天头条新闻100条
  • 任丘哪里做网站/爱站工具包的模块
  • 青县做网站价格/淄博新闻头条最新消息
  • 用hexo做网站/百度代理公司
  • 网站内容分享/页面优化算法
  • 网站注销申请/网络运营推广
  • wordpress 旅行/手机优化软件排名
  • 北京专业网站建设/sem是什么缩写
  • 建个商城网站多少钱/seo外包公司兴田德润官方地址
  • 服装搭配网站建设策划书/网络营销的四个策略
  • 国内网站建设代理/信息流推广
  • 青岛建设网站/方象科技的企业愿景
  • 杭州自适应网站建设/长春seo优化
  • 网上注册公司流程工商/seo推广排名平台有哪些
  • 关于Web前端安全防御CSRF攻防的几点考虑
  • C#常见的转义字符
  • Go语言常用的设计模式
  • 大疆无人机开发:MQTT 赋能机场系统集成的Java实战之旅
  • 《Java 程序设计》第 14 章 - JavaFX 基础
  • Android调用python库和方法的实现