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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
使用Python下载Bing图片(代码)
Nov 07 Python
python益智游戏计算汉诺塔问题示例
Mar 05 Python
Python学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
Python解决八皇后问题示例
Apr 22 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
python解决字符串倒序输出的问题
Jun 25 Python
使用Python的turtle模块画国旗
Sep 24 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
Python Django项目和应用的创建详解
Nov 27 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
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
JS控制表格隔行变色
2006/06/26 Javascript
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
关于js datetime的那点事
2011/11/15 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
自荐信要包含哪些内容
2013/11/06 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
初二政治教学反思
2014/01/12 职场文书
计算机专业求职信
2014/06/02 职场文书
公证委托书格式
2014/09/13 职场文书
先进个人推荐材料
2014/12/29 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
医学生自荐信范文
2015/03/05 职场文书
年会主持人开场白台词
2015/05/29 职场文书
时尚女魔头观后感
2015/06/04 职场文书
60句有关成长的名言
2019/09/04 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
排查Tomcat进程假死的问题
2022/05/06 Servers