最近在学Flask,特有的@X.route 很适合RESTfuld API,

一般小型应用,在一个py文件中就可以完成,但是维护起来比较麻烦. 想体验Django那样的MVT模式, 看到 Flask提供了Buleprint 蓝图这个功能,感觉在版本控制 和 项目构建上有很大用处 .因此写个学习总结,

第一种,  直接将 各个模块拆分出来,  构建独立的蓝图, 清晰项目目录

优点 独立创建项目文件夹,静态文件,模版都独立 通过创建蓝图对象中

user = Blueprint('user',__name__, url_prefix='/users',template_folder=None , static_folder=None)
template_folder=None , static_folder=None 这两个参数进行文件指引.

# users.py

```

#  我们分别在 模块文件中 创建蓝图  users  = Blueprint('users', __name__)

#然后

# coding=utf-8
from flask import Blueprint
user = Blueprint('user',__name__, url_prefix='/users')
@user.route('/user_info')
def user_info():
return u'用户中心'

```

# run.py

# 这个文件我们需要导入 蓝图 并注册 即可使用.

from flask import Flask

app = Flask(__name__)

from users import user # 具体需要根据实际目录

app.register_blueprint(users, url_prefix('/api/v1000/users')

```

最终访问 用户中心url 是: www.sss.cn/api/v1000/users/user_info

第二种 作为版本控制:

新建__init__.py

在视图中view.py导入初始化文件中的api

在 启动文件run.py中注册api

这个是我的理解.欢迎大神指导.

参考:http://www.cnblogs.com/yueerwanwan0204/p/5522749.html

flask开发restful api系列(7)-蓝图与项目结构

Flask 中蓝图的两种表现形式的更多相关文章

  1. easyui里弹窗的两种表现形式

    easyui里弹窗的两种表现形式 博客分类: jQueryEasyUi   1.主JSP页面中描绘弹窗   <div id="centerDiv" data-options= ...

  2. java中线程分两种,守护线程和用户线程。

    java中线程分为两种类型:用户线程和守护线程. 通过Thread.setDaemon(false)设置为用户线程: 通过Thread.setDaemon(true)设置为守护线程. 如果不设置次属性 ...

  3. AspNetWebApi管线中如果定义两种类型的消息处理程序(全局/路由)

    AspNetWebApi管线中如果定义两种类型的消息处理程序(全局/路由) 在AspNetWebApi管线中存在两种类型的消息处理程序(Message Handler) 1.全局消息处理程序,所有的请 ...

  4. flask 操作mysql的两种方式-sqlalchemy操作

    flask 操作mysql的两种方式-sqlalchemy操作 二.ORM sqlalchemy操作 #coding=utf-8 # model.py from app import db class ...

  5. flask 操作mysql的两种方式-sql操作

    flask 操作mysql的两种方式-sql操作 一.用常规的sql语句操作 # coding=utf-8 # model.py import MySQLdb def get_conn(): conn ...

  6. 【Spark篇】--Spark中Standalone的两种提交模式

    一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体         1.Standalon ...

  7. 协议中UART的两种模式 【转】

    转自:http://wjf88223.blog.163.com/blog/static/3516800120104179327286/ ^^…… 协议栈中UART有两种模式:1.中断2.DMA 对于这 ...

  8. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类

    转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...

  9. ThinkPHP中Widget的两种写法及调用

    Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用 写法一: ArticlWidget.class.php文件: clas ...

随机推荐

  1. zblog删除网站后台顶部菜单中的“官方网站”链接

    文件\zb_system\function\c_system_admin.php 注释或删除代码 $topmenus[] = MakeTopMenu("misc", $zbp-&g ...

  2. addin修改启动路径

  3. linux 后渗透测试

    学习参考: http://weibo.com/1869235073/B9Seswf9R?type=comment http://weibo.com/p/1001603723521007220513 h ...

  4. 基于mllib的协同过滤实战(电影推荐)

    //加载需要的包 import org.apache.spark.rdd._ import org.apache.spark.mllib.recommendation.{ALS, Rating, Ma ...

  5. 访问mongo数据库报错

    It looks like you are trying to access MongoDB over HTTP on the native driver port. 出错原因: 1.没有安装mong ...

  6. PHP:php遍历数组each()方法总结

    each()的作用是将数组当前元素的键值对拆成一个新数组,并把下一个元素作为当前元素.比如Array(...,'Robert'=>'Bob',...)中的'Robert'=>'Bob'键值 ...

  7. hbase查询基于标准sql规范中间件Phoenix

    Phoenix是个很好的hbase 查询工具,在hbase中安装也很简单,可以按照 http://www.cnblogs.com/laov/p/4137136.html 这个连接中进行配置客户端和服务 ...

  8. 扫描局域网ip的shell

    # vim /mysh/ipscan.sh #!/bin/bash # scan the local alive ipaddress # -- if [ -f $filename ];then ech ...

  9. 2018.7.1 css项目之模仿满屋花首页css+idv布局实现

    可以分开写 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...

  10. Activiti学习记录(三)

    1.流程变量 1.1 流程图 流程变量在整个工作流中扮演很重要的作用.例如:请假流程中有请假天数.请假原因等一些参数都为流程变量的范围.流程变量的作用域范围是只对应一个流程实例.也就是说各个流程实例的 ...