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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python实现字典依据value排序
Feb 24 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python抓取网页内容并进行语音播报的方法
Dec 24 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
Python 求数组局部最大值的实例
Nov 26 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
详细介绍python类及类的用法
May 31 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
基于jQuery的弹出框插件
2012/03/18 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python网络编程学习笔记(一)
2014/06/09 Python
Python判断Abundant Number的方法
2015/06/15 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
Linux的文件类型
2012/03/07 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
服务理念标语
2014/06/18 职场文书
2014年医务科工作总结
2014/12/18 职场文书
总经理检讨书范文
2015/02/16 职场文书
晚会开幕词范文
2016/03/04 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
MySQL分区以及建索引的方法总结
2022/04/13 MySQL