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 time模块用法实例详解
Sep 11 Python
Python根据区号生成手机号码的方法
Jul 08 Python
Python找出最小的K个数实例代码
Jan 04 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
Python之Class&amp;Object用法详解
Dec 25 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
python中xlutils库用法浅析
Dec 29 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
鼠标事件延时切换插件
2011/03/12 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
Python中的is和id用法分析
2015/01/26 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python实现图片彩色转化为素描
2019/01/15 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
目标责任书格式
2014/07/28 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
最感人的道歉情书
2015/05/12 职场文书
讲座新闻稿
2015/07/18 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android