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的Django框架中设置日期和字段可选的方法
Jul 17 Python
详解Python多线程
Nov 14 Python
python实现音乐下载器
Apr 15 Python
对python3标准库httpclient的使用详解
Dec 18 Python
python导入模块交叉引用的方法
Jan 19 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python 中的@运算符使用
May 26 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
source.php查看源文件
2006/12/09 PHP
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
php错误级别的设置方法
2013/06/17 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
介绍Ibatis的核心类
2013/11/18 面试题
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
课外小组活动总结
2014/08/27 职场文书
团员自我评价范文
2015/03/10 职场文书
六一活动主持词
2015/06/30 职场文书
工作简报范文
2015/07/21 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android