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爬虫基本知识
Mar 05 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
python搜索包的路径的实现方法
Jul 19 Python
python Django里CSRF 对应策略详解
Aug 05 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
PyTorch实现AlexNet示例
Jan 14 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
python导入库的具体方法
Jun 18 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 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
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python基于select实现的socket服务器
2016/04/13 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
python发送邮件实例分享
2017/07/28 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
公司离职证明范本
2014/01/13 职场文书
运动会跳远广播稿
2014/02/04 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
志愿者事迹材料
2014/12/26 职场文书
表扬信范文
2015/05/04 职场文书
部门主管竞聘书
2015/09/15 职场文书
物业管理交接协议书
2016/03/24 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电