Web开发中经常需要处理一些HTTP请求、重定向和会话等诸事物,相应地,Flask也内建了一些常见的对象如:request,session,redirect等对他们进行处理。
请求对象request
HTTP请求方法有GET,POST,PUT等,request对象也相应地提供了支持。拿用户注册举个例子:如果请求方法是POST,则注册该用户,如果是GET就显示注册字样
重定向对象redirect
当用户访问某些网页时,如果他还没登录,我们往往会把网页重定向到登录页面,Flask提供了redirect对象对其进行处理。
会话对象session
程序可以把数据存储在用户会话中,用户会话是一种私有存储,默认情况下它会保存在客户端cookie中。Flask提供了session对象来操作用户会话。操作session就像操作python中的字典一样,可以使用session[‘user’]来获取值,也可以使用session.get[‘user’]获取值。
用户会话:是指在网站使用的统计数字表中,使用某个特定的IP地址最近访问这个站点的用户的表现。
一个简单的实现(用户操作)
untitled.py
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
users={
'root':"redhat",
'westos':"123"
}
#首页,路由http://ip:port
@app.route('/')
def headpage():
return render_template('headpage.html')
#用户登录
#通过route装饰器传递methods方法,改变http的方法
@app.route('/login',methods=['POST','GET'])
def login():
#判断请求方法是否为post
if request.method=='POST':
#获取前端用户表单提交的数据
username=request.form['name']
passwd=request.form['passwd']
#判断用户名和密码是否正确
if username in users:
#如果匹配成功就跳转到另一个页面
if passwd==users[username]:
return redirect("https://www.baidu.com/")
else:
return "用户密码不正确"
else:
return '用户不存在'
#如果不是post方法,没有提交数据就调转到登录页面
else:
return render_template('login.html')
#用户注册
@app.route('/add',methods=['POST',"GET"])
def add():
if request.method=="POST":
addname=request.form['name']
addpasswd=request.form['passwd']
if addname in users:
return "用户已经存在"
else:
users[addname]=addpasswd
return "注册成功"
else:
return render_template('add.html')
#用户删除
@app.route('/delete',methods=['POST','GET'])
def delete():
if request.method=='POST':
delname=request.form['name']
if delname in users:
del users[delname]
return "删除成功"
else:
return "用户不存在"
else:
return render_template('delete.html')
if __name__ == '__main__':
app.run(host='0.0.0.0',port=9000)
将这些html文件都放在templates目录下
主页html代码
headpage.html
<div style="text-align: center;font-size: larger">
<h1 align="center">首页</h1>
<br>
<a href="/login">用户登录</a>
<a href="/add">用户注册</a>
<a href="/delete">用户删除</a>
登录页面
login.html
<form action="/login" method="POST" style="font-size: 30px;text-align: center">
<h1>用户登录</h1>
用户名<input type="text" name="name"><br>
用户密码<input type="text" name="passwd"><br>
<input type="submit" value="登录">
</form>
注册页面
add.html
<form action="/add" method="POST" style="font-size: 30px;text-align: center">
<h1>用户注册</h1>
用户名<input type="text" name="name" required="required"><br>
用户密码<input type="text" name="passwd" required="required"><br>
<input type="submit" value="注册">
</form>
删除用户页面
delete.html
<form action="/delete" method="POST" style="font-size: 30px;text-align: center">
<h1>用户删除</h1>
用户名<input type="text" name="name" required="required"><br>
<input type="submit" value="删除" required="required">