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聚类算法之DBSACN实例分析
Nov 20 Python
详解python开发环境搭建
Dec 16 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
python模块之paramiko实例代码
Jan 31 Python
浅谈django的render函数的参数问题
Oct 16 Python
django中media媒体路径设置的步骤
Nov 15 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
python实点云分割k-means(sklearn)详解
May 28 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
python 爬取小说并下载的示例
Dec 07 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
无限级别菜单的实现
2006/10/09 PHP
15种PHP Encoder的比较
2007/04/17 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
详解Python3 pickle模块用法
2019/09/16 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
高三家长寄语
2014/04/03 职场文书
团队激励口号
2014/06/06 职场文书
企业文化宣传标语
2014/06/09 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
台风停课通知
2015/04/24 职场文书
高一地理教学工作总结
2015/08/12 职场文书
python 实现的截屏工具
2021/05/08 Python
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
python 远程执行命令的详细代码
2022/02/15 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python