flask蓝图的简单使用
1.flask的简单使用 from flask import Flask
# from flask import make_response
app = Flask(__name__)
app.config.from_object('config')
print(app.config['DEBUG']) # 路由注册方法1
@app.route('/hello/')
def hello():
# 基于类的视图(即插视图)
return "Hello, jack" # Response对象
@app.route('/hello2/')
def hello2():
# 返回status code 200,404,301
# 返回content-type http headers
# 返回Response对象
headers = {
'content-type': 'text/plain',
'location': 'http://www.bing.com'
} # response = make_response('<html></html>', 301)
# response.headers = headers
# return "<html></html>"
# return response
return '<html></html>', 301, headers # 路由注册方法2
# app.add_url_rule('/hello/', view_func=hello)
# config是dict子类 # 当是入口文件启动的时候才允许app.run
# 原因2:当作为生产环境的时候这个app.run是不会运行的,由uwsgi作为服务器启动,如果没有if判断就会冲突
if __name__ == '__main__':
# 生产环境 nginx + uwsgi
app.run(host='0.0.0.0', debug=app.config['DEBUG'], port=81) 2.蓝图的使用 └── fisher
├── app
│ ├── __init__.py
│ ├── __pycache__
│ └── web
│ ├── book.py
│ ├── __init__.py
│ ├── __pycache__
│ └── user.py
├── config.py
├── fisher.py
├── helper.py
├── httper.py
├── Pipfile
├── Pipfile.lock
├── __pycache__
└── yushu_book.p # 程序入口文件 fisher.py from flask import Flask
from app import create_app app = create_app() if __name__ == '__main__':
# 生产环境 nginx + uwsgi
app.run(host='0.0.0.0', debug=app.config['DEBUG'], port=81) # 初始化蓝图 app/__init__.py from flask import Flask def create_app():
app = Flask(__name__)
app.config.from_object('config')
register_blueprint(app)
return app def register_blueprint(app):
from app.web.book import web
app.register_blueprint(web) # config.py DEBUG = False # 初始化蓝图文件 app/web/__init__.py from flask import Blueprint web = Blueprint("web", __name__) from app.web import book
from app.web import user # 具体的视图文件 app/web/book.py from flask import jsonify
from helper import is_key_or_isdn
from yushu_book import YuShuBook
from . import web # 10.11.0.148:81/book/search/9787501524044/1
@web.route('/book/search/<q>/<page>')
def search(q, page):
# 判断搜索关键字是key还是isdn编码
isbn_or_key = is_key_or_isdn(q)
if isbn_or_key == 'isbn':
result = YuShuBook.search_by_isbn(q)
else:
result = YuShuBook.search_by_keyword(q)
# return json.dump(result), 200, {'content-type': 'application/json'}
return jsonify(result) # 具体的视图文件 app/web/user.py from flask import Blueprint
from . import web @web.route("/user/create")
def create_user():
print("create user")
return "create user" # 工具类文件 app/helper.py def is_key_or_isdn(word):
isbn_or_key = "key"
# isdn 13 13位数字
# isdn 10 包括1-10位数字,并且带有一些 - 中划线
short_word = word.replace("-", "")
if len(word) == 13 and word.isdigit():
isbn_or_key = "isbn"
if "-" in word and len(short_word) == 10 and short_word.isdigit():
isbn_or_key = "isbn" return isbn_or_key # 处理book搜索的文件 app/yushu_book.py from httper import HTTP class YuShuBook(object):
isbn_url = 'http://t.yushu.im/v2/book/isbn/{}'
keyword_url = 'http://t.yushu.im/v2/book/search?q={}&count={}&start={}' @classmethod
def search_by_isbn(cls, isbn):
url = cls.isbn_url.format(isbn)
result = HTTP.get(url)
return result @classmethod
def search_by_keyword(cls, keyword, count=15, start=0):
url = cls.keyword_url.format(keyword, count, start)
result = HTTP.get(url)
return result # 处理http请求工具类文件 app/httper.py import requests class HTTP(object):
@staticmethod
def get(url, return_json=True):
r = requests.get(url)
# if r.status_code == 200:
# if return_json:
# return r.json()
# else:
# return r.text
# else:
# if return_json:
# return {}
# else:
# return ""
if r.status_code != 200:
return {} if return_json else ''
return r.json() if return_json else r.text
flask蓝图的简单使用的更多相关文章
- flask 蓝图
转自:http://spacewander.github.io/explore-flask-zh/7-blueprints.html 蓝图 什么是蓝图? 一个蓝图定义了可用于单个应用的视图,模板,静态 ...
- Flask蓝图遇到的问题
欢迎加入python学习交流群 667279387 最近在使用flask开发一个业余学习项目,由于之前都是"小打小闹",整个程序都是放在一个文件夹里面的,也没有注意这个问题.这次项 ...
- flask蓝图blueprint是什么
蓝图 blueprint 简单的说,就是帮助我们对flask程序进行目录结构的划分:django项目创建时,是自动生成项目目录,而在flask这里,需要我们自己来规划,这就需要blueprint来将整 ...
- Flask 蓝图(Blueprint)使用方式解析
Flask蓝图提供了模块化管理程序路由的功能,使程序结构清晰.简单易懂.下面分析蓝图的使用方法 假如说我们要为某所学校的每个人建立一份档案,一个很自然的优化方式就是这些档案如果能分类管理,就是说假如分 ...
- 测试平台系列(4) 使用Flask蓝图(blueprint)
使用Flask蓝图(blueprint) 回顾 先来看一下上一篇的作业吧,使用「logbook」的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标准时 ...
- Flask 蓝图(Blueprint)
蓝图使用起来就像应用当中的子应用一样,可以有自己的模板,静态目录,有自己的视图函数和URL规则,蓝图之间互相不影响.但是它们又属于应用中,可以共享应用的配置.对于大型应用来说,我们可以通过添加蓝图来扩 ...
- Flask蓝图目录、Flask-SQLAlchemy、Flask-Script、Flask-Migrate
一.Flask蓝图目录 我们之前写的Flask项目都是自己组织的目录结构,其实Flask官方有其推荐的目录结构,以下就是一个符合官方推荐的Flask小型应用的项目结构目录示例,如下: 如图,这就是我们 ...
- Flask蓝图的增删改查
怎样用flask蓝图来实现增删改查呢?请看下面的内容 这是我们的目录结构 从图中可以看出每一个功能都有一个各自的文件夹 首先我们要自己先来创建一个数据,在Flask_data.py中写入如下内容: S ...
- Flask蓝图基本使用
Flask蓝图基本使用 Flask通过使用蓝图将视图函数模块化,使应用显得更加规整 比如我们的应用的视图函数包括用户相关和文章相关,那么我们可以通过建立两个py文件分别存储两类视图函数 user.py ...
随机推荐
- VisualStudio 快捷键
ctrl + o : 打开当前文件所在文件目录 ctrl + 鼠标左键 : 转到方法或者字段定义
- flutter 自定义主题切换
1. 定义local_srorage.dart文件 使用Flutter第三方插件shared_preferences实现存储键值对信息 相关shared_preferences插件可参考: flutt ...
- vue-cli3相关
此时做的一个vue-cli3项目build后,app.js达到了10M,主要为elementui.quill等组件: 最开始使用“compression-webpack-plugin”插件根据网上的说 ...
- Bitmap的使用习惯——及时释放Bitmap占用的内存
当Bitmap不再需要使用时,我们应该回收它占用的内存,如果我们直接把指向bitmap的引用置null的话,这样bitmap还是会存在内存中,直到GC机制起作用时,才可能会把这个bitmap回收.这样 ...
- Oracle左连接、右连接、全外连接、(+)号作用
在Oracle中,对于外连接, 也可以使用"(+) "来表示. 关于使用(+)的一些注意事项: 1.(+)操作符只能出现在where子句中,并且不能与outer join语法同时使 ...
- win10双系统安装卸载ubuntu
安装 1. 官网下载需要安装的Ubuntu版本 2. 格式化U盘,用UltraISO软件将Ubuntu写入U盘 3. 设置电脑U盘启动,重启电脑安装,注意安装时关闭在线下载,否则会安装很久 4. 安装 ...
- Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)B. Personalized Cup
题意:把一长串字符串 排成矩形形式 使得行最小 同时每行不能相差大于等于两个字符 每行也不能大于20个字符 思路: 因为使得行最小 直接行从小到大枚举即可 每行不能相差大于等于两个字符相当于 ...
- luogu4166 最大土地面积 (旋转卡壳)
首先这样的点一定在凸包上 然后旋转卡壳就可以 具体来说,枚举对角线的一个端点,另一个端点在凸包上转,剩下两个点就是一个叉积最大一个最小,而这两个点也是跟着转的 所以是$O(N^2)$ #include ...
- GWAS后续分析:LocusZoom图的绘制
LocusZoom图几乎是GWAS文章的必备图形之一,其主要作用是可以快速可视化GWAS找出来的信号在基因组的具体信息:比如周围有没有高度连锁的位点,高度连锁的位点是否也显著. 下面是locuszoo ...
- 三、Dockerfile的说明和编写
一.docker hub的使用和说明: 我们要去找镜像,一般都会 https://hub.docker.com 的网站中去找,目前linux的容器,我们目前首选是alpine,因为容器非常小,可以满 ...