草庐IT

Flask-Blueprint

卑微小钟 2023-07-10 原文

Flask-Blueprint

一、简介

概念: Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求 。

好处: 其本质上来说就是让程序更加松耦合,更加灵活,增加复用性,提高查错效率,降低出错概率。
在具体项目开发过程中,不同蓝本分别对应不同的功能模块 。

Bluetooth的属性:

  • 一个应用可以具有多个Blueprint
  • 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/”,“/test”或者子域名
  • 在一个应用中,一个模块可以注册多次
  • Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
  • 在一个应用初始化时,就应该要注册需要使用的Blueprint
  • 但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中

二、使用

**使用蓝图可以分为三个步骤 **

1.创建一个蓝图对象

admin=Blueprint('admin',__name__) 

**2.对蓝图对象进行操作,比如: 注册路由 **

@admin.route('/')
def admin_home():
    return 'admin_home'

3.在应用对象进行注册

app.register_blueprint(admin,url_prefix='admin')

三、注意

蓝图的url前缀

  • 当我们在应用对象上注册一个蓝图时,可以指定一个url_prefix关键字参数(这个参数默认是/)
  • 在应用最终的路由表 url_map中,在蓝图上注册的路由URL自动被加上了这个前缀,这个可以保证在多个蓝图中使用相同的URL规则而不会最终引起冲突,只要在注册蓝图时将不同的蓝图挂接到不同的自路径即可

有关Flask-Blueprint的更多相关文章

  1. javascript - Flask session 不持久( postman 工作,Javascript 不) - 2

    我正在开发一个Flask服务器,以便通过网络在某些后端Python功能和Javascript客户端之间进行通信。我正在尝试利用Flask的session变量在用户与应用程序交互的过程中存储用户特定的数据。我已经删除了下面大部分特定于应用程序的代码,但我遇到的核心问题仍然存在。这是我的(简化的)Flask应用程序的代码:importjsonimportosfromflaskimportFlask,jsonify,request,sessionapp=Flask(__name__)app.secret_key='my_secret_key'@app.route('/',methods=['

  2. javascript - Python Flask 日期实时更新 - 2

    我正在使用PythonFlask和JavaScript构建一个网络应用程序。我是Javascript的初学者。我现在做的流程:在FlaskPython代码中,1.我通过抓取网络来获取数据(每分钟更新的数字数据)。2.使用数据并计算一些东西并获得最终数字。3.列出包含最终数字的列表4.通过将列表添加到页面的Flask定义中,将列表提供给页面5.现在在HTML中通过使用{{data|safe}}标签捕获它来获取列表6。将它与Javascript结合使用来制作图表。问题是:在第1步中,我获取的数据每分钟更新一次。例如,在那个网页上现在有15个数据点。我从该网页解析最后10个数据点,然后将它们

  3. javascript - 将 Javascript 数组传递给 Flask - 2

    我在flask中有一个名为array的函数,它接受一个列表并打印出列表中的项目:defarray(list):string=""forxinlist:string+=xreturnstring在客户端,我想传入一个名为str的javascript数组到这个数组中。我该怎么做?这是我现在拥有的,但是Flask没有读取添加的变量。有什么想法吗?for(vari=0;iPic:";str[i]=response.data[i].picture;}window.location="{{url_for('array',str=list)}}"; 最佳答案

  4. javascript - 如何使用 jquery ajax 将 json 对象正确传递给 Flask 服务器 - 2

    我想将包含嵌套对象的json对象从我的客户端传递到我的服务器。在客户端,我的数据结构是这样的:varresponse={};response['screening']='1';response['assistance']='wheelchairaccess';response['guests']={};response['guests']['1']={}response['guests']['1']['first']='John'response['guests']['1']['last']='Smith'response['guests']['2']={}response['gues

  5. javascript - 根据按下的字段使用 Jinja2 和 Flask 对对象列表进行排序 - 2

    我在Flask中有一个名为Dog的模型,其参数为Name、Breed和Age。通过Jinja2,我将它们显示在模板中,如下所示:NameBreedAge{%fordogindogs_list%}{{dog.name}}{{dog.breed}}{{dog.age}}{%endfor%}我的想法是,如果用户按名称,表格会显示按名称排序的对象。品种和年龄也是如此。Jinja中有一个过滤器可以按参数排序,例如“name”:{%fordogindogs_list|sort(attribute='name')%}但我不想放一个固定的属性,它应该改为“品种”或“年龄”。我可以用Jinja2做吗?我

  6. javascript - Flask 中的 jQuery 自动完成功能 - 2

    无法使jQuery自动完成小部件与Flask框架一起工作。(http://jqueryui.com/autocomplete/#remote这里是一个例子)在ma​​nage.py我得到以下内容:@app.route('/autocomplete',methods=['GET'])defautocomplete():results=[]search=request.args.get('autocomplete')formvindb_session.query(Movie.title).filter(Movie.title.like('%'+str(search)+'%')).all()

  7. javascript - Flask-Admin 自定义 Select2 Ajax 字段 - 2

    我正在尝试在我的Flask-Admin应用程序中扩展一对多字段以使用自定义Select2字段。该字段的javascript代码如下所示:functionformat(data){if(!data.id)returndata.text;//optgroupreturn""+data.id;}functionformatSelection(data){returndata.id;}$("#da2").select2({maximumSelectionSize:3,formatResult:format,formatSelection:formatSelection,escapeMarkup

  8. javascript - 从 JS 文件将 Chart.js 折线图添加到 Jinja2/Flask html 页面 - 2

    我在一个显示Chart.js折线图的简单Bootstraphtml文件中有以下代码。包含图表设置的js文件如下所示:$(window).on("load",function(){varctx=$("#line-chart");varchartOptions={responsive:true,maintainAspectRatio:false,legend:{position:'bottom',},hover:{mode:'label'},scales:{xAxes:[{display:true,gridLines:{color:"#f3f3f3",drawTicks:false,},s

  9. javascript - 当通过 post 请求发送有效的 json 数据时,Flask request.get_json() 返回 None - 2

    这个问题在这里已经有了答案:HowtogetPOSTedJSONinFlask?(13个答案)关闭4年前。使用Flask构建应用程序。该应用程序使用表结构来显示数据。它的部分功能是从用户指定的表行中收集数据。为此,我在执行某些js的每一行上放置了一个按钮。js从行中收集信息,使用JSON.stringify()转换为json对象并将发布请求发送到相关的flaskurl。将jsonified对象的值从js文件记录到浏览器控制台表明它的格式正确。post请求联系正确的路由,但是request.get_json()函数在该路由的方法中返回None值。我在flask中设置了一个单独的路径用于测

  10. javascript - 如何将 Canvas 转换为图像以上传到 flask ? - 2

    好吧,我正在尝试将调整大小的Canvas图像作为文件上传到Flask。首先,我尝试使用canvas.toDataURL()将其转换为base64(?)字符串,然后尝试使用带AJAX的formdata将其作为图像上传,运气不好。然后我尝试使用此函数将base64转换为blob:functiontoblob(stuff){varg,type,bi,ab,ua,b,i;g=stuff.split(',');if(g[0].split('png')[1])type='png';elseif(g[0].split('jpeg')[1])type='jpeg';elsereturnfalse;bi

随机推荐