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中的输入和输出功能进行读取和写入的教程
Apr 14 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Python shutil模块用法实例分析
Oct 02 Python
pandas实现将日期转换成timestamp
Dec 07 Python
pymysql模块的操作实例
Dec 17 Python
如何在sublime编辑器中安装python
May 20 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
Vue shopCart 组件开发详解
2018/01/26 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python中datetime常用时间处理方法
2015/06/15 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
python实现感知器算法详解
2017/12/19 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
Python中的pack和unpack的使用
2018/03/12 Python
python线程池threadpool实现篇
2018/04/27 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
pymysql的简单封装代码实例
2020/01/08 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
早读迟到检讨书
2014/01/24 职场文书
文员岗位职责范本
2014/03/08 职场文书
学生鉴定评语大全
2014/05/05 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
前台接待员岗位职责
2015/04/15 职场文书
抢劫罪辩护词
2015/05/21 职场文书
爱国主题班会教案
2015/08/14 职场文书