flask基础
文章目录
简单使用
日常Hello World
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello World"
if __name__=="__main__":
app.run()
from flask import Flask, request, render_template, redirect
app = Flask(__name__)
@app.route("/")
def index():
# print(request.path)
# return render_template("./index.html")
return redirect("http://www.baidu.com")
if __name__=="__main__":
app.run()
POST/GET及Session
from flask import Flask, request, render_template, redirect, session, url_for
app = Flask(__name__)
app.debug = True
app.secret_key = "djhwkjdhakjhdwkj"
USERS = {
1: {"name": "张三", "age": 18, "gender": "男", "text": "道路千万条"},
2: {"name": "李四", "age": 28, "gender": "男", "text": "安全第一条"},
3: {"name": "王五", "age": 18, "gender": "女", "text": "行车不规范"}
}
# endpoint用于反向解析 默认为函数名字
@app.route("/login", methods=["GET", "POST"], endpoint="log")
def login():
if request.method == "GET":
return render_template("login.html")
else:
# post提交过来的数据放到form中
# get提交过来的数据query_string中
user = request.form.get("user")
pwd = request.form.get("pwd")
if user == "sweet" and pwd == "123":
# 往session中放入key和value
session["user_info"] = user
return redirect("/index")
else:
return render_template("login.html", error="用户名或密码错误")
@app.route("/index", methods=["GET"])
def index():
user = session.get("user_info")
if not user:
url = url_for("log")
return redirect(url)
return render_template("index.html", user_dict=USERS)
@app.route("/detail/<int:id>", methods=["GET"])
def detail(id):
user = session.get("user_info")
if not user:
return redirect("/login")
return render_template("detail.html", info=USERS.get(id))
if __name__=="__main__":
app.run()
config配置
from flask import Flask
app = Flask(__name__)
class Config(object):
DEBUG = False
# 指定配置文件类
app.config.from_object(Config)
# app.config.from_object("settings.Config")
# app.config.from_pyfile("settings.py") # 指定配置文件
@app.route("/")
def index():
return "Hello World"
if __name__ == "__main__":
app.run()
jsonify
from flask import Flask,render_template,session,make_response,jsonify
app = Flask(__name__)
@app.route("/")
def index():
re = make_response(jsonify({"123":22}))
re.set_cookie("aa", "bb")
return re
if __name__=="__main__":
app.run()
操作session
from flask import Flask, session
app = Flask(__name__)
app.secret_key = "kjadkjwkld"
app.config["SESSION_COOKIE_NAME"] = "xxx"
@app.route("/")
def index():
session["xx"] = "123"
return "index"
@app.route("/get_session")
def get():
return session["xx"]
@app.route("/del_session")
def delete_session():
session.pop("xx")
return "删除成功"
if __name__=="__main__":
app.run()
请求扩展
from flask import Flask, request, session, redirect
app = Flask(__name__)
app.secret_key = "uiahwduihawui"
# 请求前
@app.before_request
def process_request(*args, **kwargs):
print("before执行")
if request.path == "/login":
return None
user = session.get("user_info")
if user:
return None
return redirect("/login")
@app.after_request
def process_response(response):
print("最后")
return response
@app.route("/", methods=["GET", "POST"])
def index():
print("index")
a = 1 / 0 # 引发异常
return "index"
@app.route("/login")
def login():
session["user_info"] = "123"
return "OK"
# 出错后
@app.errorhandler(404)
def err_404(arg):
print(arg)
return "404错误"
@app.errorhandler(500)
def err_500(arg):
print(arg)
return "test.html"
if __name__=="__main__":
app.run()
用redis缓存session
from flask import Flask, make_response, session
from flask_session import RedisSessionInterface
import redis
app = Flask(__name__)
conn = redis.Redis(host="127.0.0.1", port=6379)
app.session_interface = RedisSessionInterface(conn, "whb")
@app.route("/", methods=["POST", "GET"])
def index():
re = make_response("index")
return re
if __name__=="__main__":
app.run()
原文地址:https://blog.csdn.net/qq_46456049/article/details/112689933
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。