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 相关文章推荐
python3写爬取B站视频弹幕功能
Dec 22 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
python中property属性的介绍及其应用详解
Aug 29 Python
pandas 缺失值与空值处理的实现方法
Oct 12 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
Python input函数使用实例解析
Nov 22 Python
python绘制规则网络图形实例
Dec 09 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
解决 jupyter notebook 回车换两行问题
Apr 15 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
Python调用jar包方法实现过程解析
Aug 11 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php mail to 配置详解
2014/01/16 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
js实现图片轮播效果
2015/12/19 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
Django和Flask框架优缺点对比
2019/10/24 Python
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
领导检查欢迎词
2014/01/14 职场文书
工程部岗位职责范本
2015/04/11 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
深入解析MySQL索引数据结构
2021/10/16 MySQL
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python