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中的__init__()方法
May 02 Python
Python记录详细调用堆栈日志的方法
May 05 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
基于Django用户认证系统详解
Feb 21 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
python基于openpyxl生成excel文件
Dec 23 Python
python爬虫破解字体加密案例详解
Mar 02 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 新手入门教程
2009/08/03 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
tab栏切换原理
2017/03/22 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python爬虫常用的模块分析
2014/08/29 Python
详解Python中的文本处理
2015/04/11 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python内置加密模块用法解析
2019/11/25 Python
python实现连连看游戏
2020/02/14 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
同事打架检讨书
2014/02/04 职场文书
食品安全工作实施方案
2014/03/26 职场文书
给校长的建议书200字
2014/05/16 职场文书
授权委托书样本
2014/09/25 职场文书
保安2014年终工作总结
2014/12/06 职场文书
荆州古城导游词
2015/02/06 职场文书
财务工作失误检讨书
2015/02/19 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python