不能被run的flask实例;至关于django中的app01 应用html
蓝图做用:功能隔离 路由隔离python
Blueprint就是 一个不能run的flaskdjango
蓝图的名称app01user 必须保证在app中是惟一flask
url_prefix 是url前缀;用于隔离相同urlsession
# blueprint.py from flask import Flask app = Flask(__name__) app.debug = True # 创建蓝图注册 必定要注册 from app01.views import user as app01_user from app02.views import user as app02_user app.register_blueprint(app01_user) app.register_blueprint(app02_user) if __name__ == '__main__': app.run()
app01app
from flask import Blueprint, render_template # Blueprint就是 一个不能run的flask # 蓝图的名称app01user 必须保证在app中是惟一 user = Blueprint("app01user", __name__, template_folder="app01/templates/", url_prefix="/admin") # url_prefix是url前缀;用于隔离相同url @user.route('/login') def login(): # return "i am app01 blueprint" return render_template("login.html")
app02函数
from flask import Blueprint, render_template # Blueprint就是 一个不能run的flask user = Blueprint("app02user", __name__, url_prefix="/shopping") # url_prefix @user.route('/login') def login(): return "i am app02 blueprint" # return render_template('login.html')
# __init__,py from flask import Flask from app01.views.blueptrint import user #导入蓝图 def create_app(): app = Flaks(__name__) app.congig['DEBUG'] = True # 注册蓝图 app.register_blueprint(user) # 将app返回 return app
# manage.py # 导入app 实例 from app01 import create_app app = create_app() # 运行 if __name__ = '__main__' app.run()
# views 下 建立蓝图 blueprint from flask import Blueprint # 蓝图实例 user为蓝图名称 user = Blueprint("user" , __name__) @user.route("/login") def login(): return "ok 200"
此时就能够运行manage.py文件了;或者Terminal下执行命令 python manage.py运行。url
@app.before_request 请求进入视图函数以前debug
@app.after_request 请求结束,返回影响客户端以前code
正常 be1 - be2 - be3 - vf - af3 - af2 - af1
异常 be1 - be2 - af3 - af2 - af1
@app.errorhandler(4xx or 5xx) 重定义错误信息
from flask import Flask, request, session, redirect, render_template from functools import wraps app = Flask(__name__) app.secret_key = "!@#$%^&*()" USER = {"username": "anwen"} # def wrapper(func): # @wraps(func) # def inner(*args, **kwargs): # if session.get("user"): # ret = func(*args, **kwargs) # return ret # else: # return redirect("/login") # # return inner @app.before_request def be1(): print("be1") @app.before_request def be2(): print("be2") if request.path == "/login": return None if session.get("user"): return None else: return redirect("/login") @app.before_request def be3(): print("be3") @app.after_request def af1(res): print("af1") return res @app.after_request def af2(res): print("af2") return res @app.after_request def af3(res): print("af3") return res @app.route('/login', methods=["GET", "POST"]) # @wrapper def login(): if request.method == 'GET': return render_template("login.html") else: if request.form.get("username") == USER["username"]: session['user'] = request.form.get("username") return redirect('/index') @app.route("/index") # @wrapper def index(): print("我是视图函数index") return render_template("index.html") @app.route("/index1") # @wrapper def index1(): return render_template("index.html") @app.route("/index2") # @wrapper def index2(): return render_template("index.html") @app.errorhandler(404) def error404(ErrorMessage): print(ErrorMessage) return redirect("https://www.autohome.com.cn/beijing/asdfe32r24rff23r23r") # return send_file("image/1.jpg") if __name__ == '__main__': app.run()