flask框架是一个简单的web框架,很容易上手,他是怎么处理get与post请求的呢?
1、创建deom
创建一个demo,使用pycharm专业版本直接创建一个flask的project,工具会自动生成一个hello_world的demo,直接运行,从浏览器127.0.0.1:5000访问,向世界问好,
2、新建登录模板
右击templates,选择HTML文件创建,名称为login.html,
里面会一段HTML,大家应该都懂HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
在body里面添加一个form表单,他的methon类型为post。
表单里面添加登录需要的账号输入框、密码输入框、登录按钮三个元素,添加完成后,HTML如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
<table>
<tbody>
<tr>
<td>用户名称:</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td><input type="submit" value="登录"></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
保存成功,然后我们使用pycharm的HTML工具打开看一看,效果如下便可,如果没达到效果,请检查login里的HTML
3、实现get与post响应
重点:@app.route里面的methons 列表给[‘GET’,’POST’]
在写代码前我们要导入两个库
render_template:加载模板
request:请求参数集合
代码:
实现的login方法即要能get到login.html页面,也要能post的用户与密码
所以装饰器@app.route里的methoms参数不能默认,需要将列表[‘GET’,’POST’]传入,因为他的默认参数是[‘GET’],无法处理post请求,不传‘POST’做post请求时后台会报错。
login方法里,使用request.method == ‘GET’ 来判断是接收了GET请求还是POST请求,针对不同的请求,给浏览器不同的回应。
具体代码请看下面:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
else:
username = request.form.get('user')
pwd = request.form.get('pwd')
if username == 'hunwei' and pwd == '888888':
return '登录成功,用户名: [%s]' % username
else:
return '登录失败,用户名或密码错误'
if __name__ == '__main__':
app.run()
启动服务,结果如下,服务启动成功
在浏览器里输入:127.0.0.1:5000/login/
测试:
用户名称输入:hunwei
密码输入:888888
点击登录,响应如下
用户名称输入:adb
密码输入:123123
点击登录,响应如下
flask处理get与post是不是很容易,快用起来吧
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5480.html