Python django框架开发发布会签到系统(web开发)


Posted in Python onFebruary 12, 2020

 引言

最近学习了虫师的发布会签到系统demo,结合自己所学django知识,对demo重新塑造了一下。也是为了练练手,巩固知识。现在就分享一下成果~

Django工作流

学习django web开发,先来简单了解一下django的工作机制,请看下图:

Python django框架开发发布会签到系统(web开发)

简单说明:

用户通过浏览器访问:http://127.0.0.1:8000/index,首先运行的是urlpatterns程序,通过url路由找到对应的视图函数views.py,视图函数处理所有逻辑和数据,并且将用户要的数据经过函数处理后通过index.html返回给浏览器前的用户看。

详情流程

从用户通过浏览器访问→函数处理→数据展示,整个形成一个闭关。

Python django框架开发发布会签到系统(web开发)

MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中:

M——管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。
 
C——接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。
 
V——负责把数据格式化后呈现给用户。

Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理(C交给用户),所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
V 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。

登录

后端代码:

 

#登录逻辑处理函数
def login_action(request):
 if request.method == "POST":
  username = request.POST.get('username','')
  password = request.POST.get('password','')
  remember = request.POST.get('remember','')
  print(remember,111)
  #if username == 'admin' and password == '123456':
  #django认证登录
  user = auth.authenticate(username=username,password=password)
  # print("user:%s"%user)
  if user is not None:
   auth.login(request,user) #登陆
   #response.set_cookie('user',username,3600) #添加浏览器cookie
   request.session['user'] = username #写入session 写入浏览器,存入服务器。
   response = HttpResponseRedirect('/home/')
   """
   重定向,先post→get通过路由urls,找到event_manager函数,跳转到找到event_manager.html页面。
   """
   # 判断是否记住用户名
   if remember == "on":
    # 设置cookie username *过期时间为1周,按秒计算
    response.set_cookie('username', username, max_age=7 * 24 * 3600)
   return response
  else:
   # return render(request,'index.html',{'error':'username or password error!'})
   return redirect('/login/')
#登录显示页面
def login(request):
 '''显示登陆页面'''
 # 获取cookie username
 if 'username' in request.COOKIES:
  username = request.COOKIES['username']
 else:
  username = ''
 return render(request,'index.html',{'username': username})

前端代码

#首页
<html>
<head>
 {% load bootstrap3 %}
 {% bootstrap_css %}
 <link rel="stylesheet" href="/static/css/style.css">
</head>
<body style="margin: 5%;">
<div class="container">
 <div class="form row">
  <div class="form-horizontal col-md-offset-3" id="login_form">
   <h3 class="form-title" style="padding-left: 20%"><font color="#fffaf0">欢迎登录</font></h3>
   <div class="col-md-9">
    <form action="/login_action/" method="post">
     <div class="form-group">
      <i class="fa fa-user fa-lg"></i>
      <input class="form-control required" type="text" value="{{ username }}" placeholder="Username"
        id="username" name="username" autofocus="autofocus" maxlength="20"/>
     </div>
     <div class="form-group">
      <i class="fa fa-lock fa-lg"></i>
      <input class="form-control required" type="password" placeholder="Password" id="password"
        name="password" maxlength="8"/>
     </div>
     <div class="form-group">
      <label class="checkbox">
       {#       <input type="checkbox" name="remember" value="1"/>记住我#}
       <input type="checkbox" name="remember"/>记住我
      </label>
      <p>{{ back_dict }}</p>
     </div>
     <div class="form-group col-md-offset-9">
      <button type="submit" class="btn btn-success pull-right" name="submit">登录</button>
     </div>
    </form>
   </div>
  </div>
 </div>
</div>
</body>
</html>

效果如下

Python django框架开发发布会签到系统(web开发)

首页

后端代码

#主页
def home(request):
 return render(request,'home.html')

效果如下

Python django框架开发发布会签到系统(web开发)

发布会页面

Python django框架开发发布会签到系统(web开发)

嘉宾页面

Python django框架开发发布会签到系统(web开发)

总结

以上所述是小编给大家介绍的Python django框架开发发布会签到系统(web开发),希望迪大家有所帮助!

Python 相关文章推荐
python 实现归并排序算法
Jun 05 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
Python实现大文件排序的方法
Jul 10 Python
利用Python如何生成随机密码
Apr 20 Python
python数据结构之链表详解
Sep 12 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
python 搜索大文件的实例代码
Jul 08 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
对象析构函数__del__在Python中何时使用
Mar 22 Python
Python计算公交发车时间的完整代码
Feb 12 #Python
详解Django3中直接添加Websockets方式
Feb 12 #Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 #Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 #Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 #Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 #Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
Feb 11 #Python
You might like
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
Python字典操作简明总结
2015/04/13 Python
python的变量与赋值详细分析
2017/11/08 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
Python实现分段线性插值
2018/12/17 Python
基于python实现KNN分类算法
2020/04/23 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
小学二年级评语
2014/04/21 职场文书
安全生产标语
2014/06/06 职场文书
学校联谊协议书
2014/09/16 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP