2021-04-01 Flask搭建web网站

Flask搭建web网站

1. 基础知识

服务端(python处理程序)               客户端(浏览器、手写python_requst请求app)

2. 最简易web框架(账号密码登录界面)

from dataclasses import dataclass
from flask import Flask
from flask import request, render_template, redirect, url_for, session, g

app = Flask(__name__, static_url_path="/")

#app.config['DEBUG'] = True
app.config['SECRET_KEY'] = "sdfklas0lk42j"

@dataclass
class User:
    id: int
    username: str
    password: str

users = [
	User(1, "Admin", "123456"),
	User(2, "Eason", "888888"),
	User(3, "Tommy", "666666"),
]

@app.before_request
def before_request():
    g.user = None
    if 'user_id' in session:
        user = [u for u in users if u.id == session['user_id']][0]
        g.user = user

@app.route("/login", methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 登录操作
        session.pop('user_id', None)
        username = request.form.get("username", None)
        password = request.form.get("password", None)
        user = [u for u in users if u.username==username]
        if len(user) > 0:
            user = user[0]
        if user and user.password == password:
            session['user_id'] = user.id
            return redirect(url_for('profile'))
        
    return render_template("login.html")

@app.route("/shipin")
def profile():
    if not g.user:
        return redirect(url_for('login'))
    
    return render_template("shipin.html")

@app.route("/logout")
def logout():
    session.pop("user_id", None)
    return redirect(url_for('login'))

print('----------路由和视图函数的对应关系----------')
print(app.url_map) #打印路由和视图函数的对应关系
app.run(host='0.0.0.0',port=7000,threaded=True)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值