Flask_Web开发入门(请求、会话及重定向)

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">

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/80939661