Python Flask Web开发:博客网站开发 (2) 路由,蓝本和模板

Python Flask Web开发:博客网站开发 (2) 路由,蓝本和模板,第1张

Python Flask Web开发:博客网站开发 (2) 路由蓝本和模板

hello,大家好,我是wangzirui32,今天我们来对Myblog网站继续进行开发,开始学习吧!

1. 路由定义函数

之前,我们在Flask程序中使用路由,是用app.route装饰器来注册路由,比如下面的例子:

@app.route("/")
def index():
	return "首页"

而在这里,却截然不同。我们使用app.add_url_rule来定义一个路由,例子如下:

def index():
    return "首页"
app.add_url_rule("/", "index", index)

index()是路由的处理函数,"index"是路由的名称,"/"是路由的地址。两段代码实现的效果是一样的。

2. 蓝本

何为蓝本?**蓝本(blueprint)**是Flask内置的一个类,它将视图方法模块化,因为将如果大量的视图函数放在一个文件中,很明显是不合适,最好的方案是根据功能将路由合理的划分到不同的文件中,而它就是为了解决这个问题而出现的。
打开Myblog/apps/main/__init__.py,输入以下代码创建一个蓝本:

from flask import Blueprint

main = Blueprint("main", __name__)

这里的"main"是蓝本的名称。
然后,在应用工厂(Myblog/apps/app.py)中添加注册蓝图的代码:

from flask import Flask
from apps.main import main # 导入main蓝本

def create_app():
    app = Flask(__name__)
    # 注册蓝本
    app.register_blueprint(main)
    
    return app

这样,蓝本就集成到应用里了!

3. 为蓝本注册路由

蓝本对象实际和原来的app对象没有什么区别,也可以使用route装饰器,如:

@main.route("/")
def index():
    return "首页"

但我们如果每个路由都这样做显得过于复杂,让我们打开Myblog/apps/main/views.py,键入路由函数的代码:

def index():
    return "Myblog 首页"

再打开Myblog/apps/main/__init__.py,添加代码:

from flask import Blueprint
from .views import *

main = Blueprint("main", __name__)

main.add_url_rule("/", "index", index)

如果代码没有问题,那么运行Myblog/runserver.py,在首页应该能看到:

4. 路由函数返回HTML模板

刚才,我们使用return返回一个字符串作为首页的响应,如果是更大,更复杂的网页的话,那么代码的工作量会增加,且也不好为网页添加新内容。所以,我们应该使用模板作为响应,首先,在Myblog/apps/templates创建一个main文件夹,在main文件夹下创建index.html,写入HTML代码:




    
    
    
    Myblog 首页


    Myblog 首页
    

这是Myblog 首页。

然后打开Myblog/apps/main/views.py,修改代码:

from flask import render_template

def index():
    return render_template("main/index.html")

重新运行Myblog/runserver.py,访问首页:

关于模板的渲染机制,以后有时间会慢慢讲。
如果你已经学习到了这儿,恭喜你,你已经掌握了在大型应用中使用模板和蓝图的本领!


好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5658171.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存