vlambda博客
学习文章列表

使用flask传递http请求

在计算机应用中,HTTP协议是互联网中数据通信的基础,在现实应用中,常用的两种传递HTTP请求的方法是GET和POST。在Flask框架中,默认使用GET方法。通过使用URL装饰器的参数“方法类型”,可以让同一个URL的两种请求方法都映射在同一个函数上。接下来我们上两个实例:

一、使用GET请求获取URL参数。

import flask# 变量html_txt初始化,作为GET请求的页面html_txt ="""<!DOCTYPE html><html> <body> <h2>当收到GET请求时</h2>  <!设置请求方法为POST>  <form method='post'> <input type='submit' value='点击发送POST请求'/> </form> </body></html>"""app = flask.Flask(__name__)#URL映射,将GET方法和POST方法都映射到qingqiu函数@app.route('/abc',methods=['GET','POST'])def qingqiu(): # 如果收到的请求是GET if flask.request.method == 'GET': # 返回html_txt的页面内容 return html_txt # 否则返回:post请求已收到! else: return'POST请求已收到!'if __name__=='__main__': app.run(debug=True)

使用flask传递http请求

点击按钮发送POST请求,得到响应如下图:

使用flask传递http请求

二、使用重定向的方法处理URL请求。

from flask import Flask, redirect, url_forapp = Flask(__name__)@app.route('/yuangong')def hello_yuangong(): return'你好,工作人员!'@app.route('/guest/<guest>')def hello_guest(guest): return'欢迎游客:%s!'%guest@app.route('/user/<name>')def hello_user(name): if name == 'yuangong': return redirect(url_for('hello_yuangong')) else: return redirect(url_for('hello_guest',guest=name))if __name__ == '__main__': app.run(debug=True)

浏览器中输入http://127.0.0.1:5000/user/yuangong,重定向后显示如下图:

浏览器中输入http://127.0.0.1:5000/user/除yuangong以外的任意名,重定向后显示如下图:

注释过的代码以后都不会再有注释,如有疑问的亲,可翻看之前的实例。