【Flask】使用Blueprint来做多模块分离


时隔一年多,又要使用flask了.基本上已经是记不清了.趁着周末,先摸索下,记录下重新摸索的过程.
只能说,之前学过一次,用过一次,虽然时间已经过去很久,有些东西还是存在着印象.

目录结构

项目目录,目录名是 api
app是启动文件

├── app.py
├── baidu_py3
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   └── views.cpython-35.pyc
│   └── views.py
├── sina_py3
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   └── views.cpython-35.pyc
│   └── views.py
├── static
└── templates

代码

只是测试下多模块的使用,所以代码就是很简单的返回一个hello,world

baidu_py3

__init__.py
# -*- coding:utf-8 -*-

from flask import Blueprint

# 创建 puke 接口的蓝图
baidu_api = Blueprint("baidu", __name__)

from baidu_py3 import views

views.py

from baidu_py3 import baidu_api


@baidu_api.route("/hello_world")
def get_hello_world():
    return 'Hello World!'

sina_py3的代码

__init__.py

代码

from flask import Blueprint

# 创建 sina 接口的蓝图
sina_api = Blueprint("sina", __name__)

from sina_py3 import views

views.py代码

from sina_py3 import sina_api


@sina_api.route("/hello_world")
def get_hello_world():
    return 'Hello World Sina!'


@sina_api.route('/hello')
def hello_world():
    return 'Hello World 1 !'

app.py代码(启动文件)

from baidu_py3 import baidu_api
from sina_py3 import sina_api

# coding:utf-8
from manage import api

api.register_blueprint(baidu_api, url_prefix='/baidu')
api.register_blueprint(sina_api, url_prefix='/sina')


if __name__ == '__main__':
    api.run(host='0.0.0.0',port=8080,debug=True)

设置debug=True,是为了方便Ctrl+S保存的时候,自动重新启动服务

运行结果:

按着http://127.0.0.1:8080/sina/hello_world访问,结果为

Hello World Sina!

按着

http://127.0.0.1:8080/sina/hello

访问,结果为:

Hello World1!

另一个结果也符合预期

中途遇到一个问题,访问没有数据.
因为__init__.py少了一行

from sina_py3 import views

这个加上就好了.

register_blueprint 注册蓝图是必有的步骤
url_prefix 可以认为url的前缀吧…个人理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值