app.route和app.add_url_rule和蓝图
app.route方式:
源码如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
@app.route("/my")
def my():
return "my page"
if __name__ == "__main__":
app.run(host = "0.0.0.0", debug=True)
运行截图如下:
在路由中添加参数
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
@app.route("/my/<user_name>")
def my(user_name):
return "my page %s" % (user_name)
if __name__ == "__main__":
app.run(host= "0.0.0.0", debug = True)
运行截图如下:
通过app.add_url_rule方式
主要是绑定视图函数和视图类
如下代码
from flask import Flask
app = Flask(__name__)
def hello():
return "Hello World"
def my(user_name):
return "my page %s" % (user_name)
app.add_url_rule(rule = "/", view_func = hello)
app.add_url_rule(rule = "/my/<user_name>", view_func = my)
if __name__ == "__main__":
app.run(host = "0.0.0.0", debug=True)
运行截图如下:
大型项目中都使用 蓝图 方式
如下代码:
from flask import Flask, Blueprint
app = Flask(__name__)
index_page = Blueprint("index_page", __name__)
@index_page.route("/")
def index_page_index():
return "index page"
app.register_blueprint(index_page, url_prefix = "/it1995")
@app.route("/")
def hello():
return "Hello World"
if __name__ == "__main__":
app.run(host = "0.0.0.0", debug=True)
运行截图如下:
下面是分层的思想:
程序结构如下:
程序运行截图如下:
源码如下:
index_controller_1.py
from flask import Flask, Blueprint
index_1 = Blueprint("index_1", __name__)
@index_1.route("/")
def index_1_index():
return "index page one"
@index_1.route("/my")
def index_1_my():
return "index page one my"
index_controller_2.py
from flask import Flask, Blueprint
index_2 = Blueprint("index_2", __name__)
@index_2.route("/")
def index_2_index():
return "index page two"
index_controller_3.py
from flask import Flask, Blueprint
index_3 = Blueprint("index_3", __name__)
@index_3.route("/")
def index_3_index():
return "index page three"
index5.py
from flask import Flask
from tie.index_controller_1 import index_1
from tie.index_controller_2 import index_2
from tie.index_controller_3 import index_3
app = Flask(__name__)
app.register_blueprint(index_1, url_prefix ="/it1995")
app.register_blueprint(index_2, url_prefix ="/it1996")
app.register_blueprint(index_3, url_prefix ="/it1997")
if __name__ == "__main__":
app.run(host = "0.0.0.0", debug=True)