Flask web开发处理POST请求实现(登录案例)


Posted in Python onJuly 26, 2018

本文我们以一个登录例子来说明Flask对 post请求的处理机制。

1、创建应用目录,如

mkdir example
cd example

2、在应用目录下创建  run.py文件,内容如下

from flask import Flask
from flask import render_template, redirect,url_for
from flask import request

app = Flask(__name__)

@app.route('/login', methods=['POST','GET'])
def login():
  error = None
  if request.method == 'POST':
    if request.form['username']=='admin':
      return redirect(url_for('home',username=request.form['username']))
    else:
      error = 'Invalid username/password'
  return render_template('login.html', error=error)

@app.route('/home')
def home():
  return render_template('home.html', username=request.args.get('username'))

if __name__ == '__main__':
  app.debug = True
  app.run('0.0.0.0',80)

上面的代码解释如下:

1)上面的代码用到了几个flask的方法

render_template : 将请求定位到模板文件上,处理模板文件后,将结果作为请求的响应返回

redirect:将请求的响应重定向到新的url上。上面的例子是,当登录成功后,重定向到 home页面。

url_for:根据参数生成url

2)request对象的使用

request对象包含了所有的请求信息,通过它可获取所需要的请求信息。

3)app.route增加了methods参数,指明该url支持的http请求方式,默认是get方式。上面例子 /login即作为get,也作为post的请求目标。

3、在应用目录下创建 templates目录,在templates目录下创建 login.html 和 home.html,内容分别如下:

1)login.html文件

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
  <meta charset="utf-8">
  <title>login</title>
 </head>
 <body>
  <form style="margin:20px;border:1px solid red" method="post" action="/login">
    <span>username:</span><input type="text" name="username" id="username"><br/>
    <span>password:</span><input type="password" name="password" id="password"><br/>
    <button type="submit" id="loginBtn">login</button>
  </form>
  {% if error %}
    <h1 style="color:red">{{ error }}!</h1>
  {% endif %}
 </body>
</html>

2)home.html

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
  <meta charset="utf-8">
  <title>home</title>
 </head>
 <body>
  <h1>wlcome {{username}} , this is home</h1>
 </body>
</html>

4、启动服务

在应用目录下运行  python  run.py

5、测试访问

http://192.168.142.138/login

注意:登录成功后,会进入 http://192.168.142.138/home?username=admin 页面

这个url显示不好。可以通过session的方式来不需要将username传入,而是在home.html中通过session获取。

这个在后面的文章中介绍。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
Django 用户认证组件使用详解
Jul 23 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
python批量处理txt文件的实例代码
Jan 13 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 Python
python爬虫破解字体加密案例详解
Mar 02 Python
python执行js代码的方法
May 13 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
基于tensorflow加载部分层的方法
Jul 26 #Python
利用python画出折线图
Jul 26 #Python
浅谈flask源码之请求过程
Jul 26 #Python
python画折线图的程序
Jul 26 #Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 #Python
78行Python代码实现现微信撤回消息功能
Jul 26 #Python
python opencv实现图片旋转矩形分割
Jul 26 #Python
You might like
php计算数组不为空元素个数的方法
2014/01/27 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
javascript 精粹笔记
2010/05/09 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python使用selenium实现批量文件下载
2019/03/11 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
护理学中专毕业生求职信
2013/11/11 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
保险公司演讲稿
2014/09/02 职场文书
单位证明范文
2015/06/18 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
一文搞懂Python Sklearn库使用
2021/08/23 Python
Python中的嵌套循环详情
2022/03/23 Python