时隔一年多,又要使用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
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的前缀吧…个人理解