草庐IT

Python Flask Blueprint 蓝图

AskaJohnny 2023-04-17 原文

Python Flask Blueprint 蓝图

本篇来了解一下 Flask 中 Blueprint 蓝图,什么蓝图 。。就是一个分模块的扩展而已,用来让不同的 业务模块api 分到不同的python文件中 而已,和 Spring mvc 的 class 级别 的@RequestMapping("/") 差不多。。

前因:

为什么要引入 Blueprint 蓝图呢? 因为如果默认把API接口都写到 一个py 文件里面 那么这个文件会越来越复杂,会越来越臃肿 导致 无法维护 ,所以按照正常的开发逻辑 也需要进行模块的划分 ,那么就需要引入 Blueprint

1.安装 Blueprint

需要先在环境中 使用 pip 安装一下 Blueprint 扩展

pip install Blueprint

2.编写Flask 入口 py文件

from flask import Flask


app = Flask(__name__)

@app.route('/')
def helloworld():
    return 'Hello world python flask'
  
# 新版本应该是 不支持这样启动了
# if __name__ == '__main__':
#     app.run()

3.编写User模块 user.py文件

根据业务 可以创建新的模块 然后通过Blueprint 去注册路由

from flask import Blueprint

user = Blueprint('user',__name__)

@user.route('/user/username')
def username():
    return 'get username : johnny'

    

4.Blueprint注册到 Flask app上

在入口文件中 把刚刚创建的 Blueprint 注册上去

from flask import Flask

#引入 刚刚创建的 blueprint
from user import user

app = Flask(__name__)
#注册到 flask app上
app.register_blueprint(user)

@app.route('/')
def helloworld():
    return 'Hello world python flask'

# if __name__ == '__main__':
#     app.run()

5.验证

访问:/user/username 得到如下:

访问: / 得到如下:

总结:

使用 Blueprint很简单 按照下面的流程

  1. pip install Blueprint

  2. 创建 新模块文件,在其中创建Blueprint对象 如:

    # Blueprint两个参数('蓝图名字',蓝图所在位置')
    user = Blueprint('user',__name__) 
    
  3. Blueprint注册到 Flask app上

    #引入 刚刚创建的 blueprint
    from user import user
    app = Flask(__name__)
    
    app.register_blueprint(user)
    

可以把Blueprint 理解为 Spring mvc 的 Class 级别 的@RequestMapping("/user") 差不多。。

欢迎大家访问 个人博客 Johnny小屋
欢迎关注个人公众号

有关Python Flask Blueprint 蓝图的更多相关文章

  1. javascript - 如何获取 sailsjs 中的路线列表,包括蓝图和自定义路线 - 2

    我是新手sailsjs。我想知道如何以JSON的形式列出所有路线,包括蓝图和自定义路线。 最佳答案 sails.config.routes将为您提供定义的路线。目前有一个github问题来收集其余的https://github.com/balderdashy/sails/pull/2659#issuecomment-77417170 关于javascript-如何获取sailsjs中的路线列表,包括蓝图和自定义路线,我们在StackOverflow上找到一个类似的问题:

  2. javascript - SailsJS V1 - 蓝图查询无法正常工作 - 2

    我正在尝试为sailsjsv1模型创建蓝图查询。该模型是一个BlogPost,它有2个“选项”。一个是目标,另一个是状态。如果目标是Site并且状态是Published,查询应该返回,否则不返回。我正在使用Sails(蓝图)提供的默认REST路由,如果我尝试找到所有路由,一切正常。但是,如果我试图通过ID找到一个……我什至无法取回状态为“未发布”的那些。这是我在blueprint.jsparseBlueprintOptions->中的代码parseBlueprintOptions:function(req){varqueryOptions=req._sails.hooks.bluepr

  3. UE5学习笔记(十一)——蓝图基础之键盘和鼠标操作移动 - 2

    目录键盘控制移动的2种办法方法1:通过输入修改值控制移动。【知识点1】添加键盘个事件方法2:用控制器判定按键按下情况控制移动【知识点2】IsInputKeyDown和GetPlayerController的使用鼠标控制移动2种办法第一步:关闭鼠标输入方法1:鼠标点击时发生转动方法2:鼠标移动时发生移动(鼠标事件)方法3:鼠标移动时发生移动(鼠标值)【知识点3】鼠标值和鼠标事件的区别【知识点4】用DeltaSeconds统一所有设备的帧率差别键盘控制移动的2种办法【目标】通过键盘WSAD控制物体移动方法1:通过输入修改值控制移动。分为两块流程链。思路:使用键盘个事件触发移动值的变化,通过tick

  4. 【UE4】TimeLine(蓝图) - 2

    文章目录TimeLine概念编辑界面上方功能栏附带小知识**设置相对范围3D(SetRelativeScale3D**)设置游戏世界时间膨胀TimeLine概念虚幻中的数据时间轴计数器,作用是将时间和数据进行组合,使得数据随着时间的改变发生变化。可以将TimeLine理解为一个直角坐标系,横轴为时间,纵轴为数据。输入针脚:Play:启动此时间轴PlayfromStart:从开始的时候启动此时间轴Stop:结束Reverse:反方向走时间轴ReversefromEnd:每个时间轴都有一个起始点和终点,反方向流动SetNewTime:从给定的时间进行流动输出针脚:Updata:单帧执行Finish

  5. UE5学习笔记(二)——3D材质蓝图的常用节点介绍 - 2

    什么是材质:材质是模型表面涂抹的油漆,多层油漆形成了物理基础渲染(PBRPhysicallyBasedRendering),它可以模拟自然界的任何材料的视觉效果。双击一个材质,可以打开材质蓝图(MaterialGraph)基础的四个属性为:在使用材质蓝图时,以下几个快捷操作可以方便你使用:按住右键移动整个蓝图滚轮可以放大缩小蓝图视图拖动左键框选可以选中多个节点右键空白后,输入关键词,快速加入节点法线纹理可以直接拖入蓝图中,生成节点按住alt点击已连接的接口,可以断开接口以下几个快捷键可以快速插入常用节点:按住数字1,2,3左键点击空白区域,可以快速插入常数值、二位数值、三维数值空白处按住U点击

  6. Java 创建浮雕(红/蓝图像) - 2

    我正在编写一个Java游戏引擎(http://victoryengine.org),并且我一直在尝试生成具有深度的“3d”图像,您可以通过那些红色/蓝色眼镜看到这些图像。我将Java2D用于图形。我创建了一些有用的东西,但速度很慢(通过手动复制像素值和类似的东西)。我需要做的是获取两个BufferedImages(一个用于左眼,一个用于右眼)并将它们合并为一个(另一个缓冲区或直接到屏幕)。对于一个,我只想要红色channel,对于另一个,我只想要绿色和蓝色channel。最快的方法是什么? 最佳答案 查看JAIBandMerge操作

  7. html - 蓝图 CSS 框架中的 SEO - 2

    我正在为网站创建一个新布局,我更愿意使用基于网格的CSS框架,例如Blueprint(这是我唯一使用过的框架)。但是有谁知道我可以将我的主要内容放在html中的导航和侧边栏上方以改进SEO的方法吗?谢谢! 最佳答案 我认为使用网格框架是不可能的,因为其中大部分依赖于各个源的相对位置来实现网格。 关于html-蓝图CSS框架中的SEO,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

  8. Android Studio (3.1.4) 设计+蓝图的渲染问题 - 2

    这是一个默认的起始项目。尚未编写新代码。图片说明了一切:AndroidSDK管理器:build.gradle(模块:app)applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-extensions'android{compileSdkVersion28defaultConfig{applicationId"chatchattan.nooguiquirks.com.chatchattan"minSdkVersion15targetSdkVersion28v

  9. 【虚幻引擎】UE4/UE5 动画蓝图,混合空间,目标偏移,动画蒙太奇之间的联系 - 2

    一、UE动画介绍    虚幻引擎在为角色设置移动行走时,为了更好的调节和控制人物的相关动画,设置了一系列的跟人物相关的动画,其中包括一维混合空间,二维混合空间,动画蒙太奇,目标偏移等,动画蓝图的出现是为了能够更好的将这些动组合起来,形成一个流畅的动画机制。二、什么是动画蓝图?    我们导入的动画导入到UE4之后,会出现三部分,第一个是骨架网格体,第二是骨架物理资源,第三个是骨骼,这三个是动画的基础,有了这三个在UE中才能够进行动画的导入,骨架的选择,有了这三个说明我们导入的动画是正确的。注意:如果出现无法导入到UE中,请查看3Dmax或者Maya骨骼的绑定,是否正确或者在导出的时候参数勾选是

  10. android - 是否可以在蓝图模式下使用 ConstraintLayout 滚动 ScrollView? - 2

    因此,我一直在使用ScrollView内的ConstraintLayout开发此布局。它工作正常,但现在我遇到了问题。我必须在屏幕外展开布局。我可以在设计模式下滚动,但如果不卡在顶部我就无法添加任何内容。约束适用于较早的对象,而不是我正在添加的当前对象。我可以在蓝图模式下添加约束,但看起来我无法在蓝图模式下滚动ScrollView。这可能吗?使用AndroidStudio2.2(发布版)和constraint-layout:1.0.0-alpha8我试过像在设计模式下那样做,但它不滚动。有什么想法吗?使用ConstraintLayout正常滚动会导致约束保留在同一位置。编辑:更新到al

随机推荐