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学习笔记整理3之输入输出、python eval函数
Dec 14 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
python程序封装为win32服务的方法
Mar 07 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
python函数修饰符@的使用方法解析
Sep 02 Python
python config文件的读写操作示例
Sep 27 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
python实现监听键盘
Apr 26 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 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代码DOS造成用光网络带宽
2011/03/01 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python分析学校四六级过关情况
2017/11/22 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
Python编程argparse入门浅析
2018/02/07 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
如何提高python 中for循环的效率
2020/04/15 Python
python中uuid模块实例浅析
2020/12/29 Python
在校生自我鉴定
2014/01/23 职场文书
经销商年会策划方案
2014/05/29 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
2015年电教工作总结
2015/05/26 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
Python中的程序流程控制语句
2022/02/24 Python