首页 > 其他分享 >flask_05days __蓝图

flask_05days __蓝图

时间:2024-03-05 16:00:55浏览次数:37  
标签:__ py flask app 蓝图 blog url 05days

蓝图

# blueprint 翻译过来的---》把项目分到多个py文件---》以后常用
-划分项目目录

 蓝图小项目目录划分(只有一个app)

大型项目-目录划分(多个app)

——————————————————————————

蓝图就是把我们应用目录的模块注册到Flask类,充当一个中间人的角色

通过蓝图创建一个博客首页的基本视图,代码如下:

from flask import Blueprint

bp = Blueprint('blog', __name__, url_prefix='/blog')

@bp.route('index/')
def index():
    return 'Hello Word'

1、首先引入了蓝图对象,这个Blueprint与Flask类是

from flask import Blueprint

2、实例化一个蓝图对象,需要两个必须参数,第一个是应用的名称,第二个__name__是该应用的位置,其他参数都是可选的,我们这里用关键字参数url_prefix='/blog'指定了 该应用的一个url的命名空间,和django的urls中的app_name类似,这个值会出现在该应用url之前,比如我们现在这个url访问的话应该是:http://127.0.0.1:8000/blog/index/

bp = Blueprint('blog', __name__, url_prefix='/blog')

3、创建了blog应用的一个视图,用蓝图实例来绑定route,把该url定义在该应用当中

@bp.route('index/')
def index():
    return render_template()

  

注册蓝图

上边我们都说了,这个应用通过蓝图创建,如果不去主项目注册的话,他是不会被运行的,这就要我们去工厂函数中注册蓝图!

首先,把该views文件引入到blog的__init__.py中,以便后续调用!

# app/blog/__init__.py
from .import views

  

最后,在项目目录的__init__.py中的工厂函数中通过app实例的提供的register_blueprint方法注册蓝图,代码如下:

def create_app(test_config=None):

    app = Flask(__name__, instance_relative_config=True)
    # ... 省略部分代码

    # 注册博客蓝图
    from app.blog import views as blog
    app.register_blueprint(blog.bp)

    return app

  

定义入口

在入口文件manage.py中引入一下代码,代码非常简单,不做过多解释

from RealProject import create_app

app = create_app()

# 当运行这个文件的时候才执行run()方法
if __name__ == '__main__':
    app.run(debug=True)

  

运行项目

在终端运行该文件即可成功启动项目,默认我们设置了run方法的debug模式为True,也就是开启了Flask的调试模式

py manage.py

 

 

 

 

 

 

 

 

 

标签:__,py,flask,app,蓝图,blog,url,05days
From: https://www.cnblogs.com/wzh366/p/18054236

相关文章

  • 记一次部署vika源码以及安装Falsk框架到linux服务器
    前言接受到需求,需要把python项目vika的源码修改部分内容后,部署到服务器,然后再安装一个python的快速开发框架Falsk。部署vika1.什么是vika?Vika PythonSDK是对维格表FusionAPI的官方封装,提供类似DjangoORM风格的API。2.下载源码前往源码地址(https://github.com/vikadat......
  • 合并Excel文件
    合并Excel文件需求:把多个Excel文件合并到一个Excel文件的不同表格中。且需要合并的文件前后缀一致。对合并完成的文件中每张表指定列找出最大值标红XXX表示需要自己填写的内容importosimportpandasaspdfromopenpyxlimportload_workbookfromopenpyxl.stylesi......
  • 5 类加载器分类
    5类加载器分类启动类加载器(Bootstrap)启动类加载器(BootstrapClassLoader)是由Hotspot虚拟机提供的、使用C++编写的类加载器默认加载Java安装目录/jre/lib下的类文件,比如rt.jar,tools.jar,resources.jar等。通过启动类加载器加载jar包放入jre/lib下进行扩展(不推荐),尽可能不......
  • 7 JVM运行时内存区域
    7JVM运行时内存区域​ JVM运行时内存区域主要包括五块:程序计数器、java虚拟机栈、本地方法栈、方法区、堆​ 上述五块区域也可以分为线程共享和线程不共享两部分线程共享区域:方法区方法区是存放基础信息的位置,主要包括三部分:类的元信息保存了所有类的基本信息运......
  • 6 双亲委派机制
    6双亲委派机制由于Java虚拟机中有多个类加载器,双亲委派机制的核心是解决一个类到底由谁加载的问题双亲委派机制的作用保证类加载的安全性通过双亲委派机制避免恶意代码替换JDK中的核心类库,比如java.lang.String,确保核心类库的完整性和安全性避免重复加载可以避免同一个......
  • winfrom控制相机拍照
    usingSystem;usingSystem.Runtime.InteropServices;//publicdelegatevoidSaveImg(PickPick1);///<summary>///一个控制摄像头的类///</summary>publicclassCameraManager{privateconstintWM_USER=0x400;privateconstintWS_CHILD=0......
  • 8 JVM一些常用的参数
    8JVM一些常用的参数修改java虚拟机栈的大小,可以使用虚拟机参数-Xss,注HotSpot虚拟机对栈大小的最大值和最小值有要求(Windows下的JDK8测试最小值为180k,最大值为2048m)默认单位是字节B-Xss1m-Xss1g修改堆内存的max和total值设置堆内存max值默认单位是字节B-Xmx2g设置......
  • 9 JVM垃圾回收
    9JVM垃圾回收方法区的回收方法区中能回收的内容主要就是不再使用的类。判定一个类可以被回收,需要同时满足下面三个条件:1.此类所有实例对象都已经被回收,在堆中不存在任何该类的实例对象以及子类对象2.加载该类的类加载器已经被回收3.该类对应的java.lang.Class对象没有在任......
  • python-jose,一个好用的 Python 库!
    python-jose介绍:在做接口测试或者接口自动化测试中,身份验证和授权是很重要的一部分。JSONWebToken(JWT)是一种流行的身份验证和授权解决方案,它能够安全地在网络中传输信息。python-jose库是Python中处理JWT的强大工具,提供了丰富的功能和灵活的接口,能够轻松地处理JWT的生成、......
  • 10年程序员生涯回顾
    十年河东,十年河西,莫欺少年穷学无止境,精益求精说十年程序员生涯,其实已经近12年了,老码农了,自12年毕业,至今,完成了娶妻生子,买车买房,生活一地鸡毛,但必须负重前行.......就从12年实习开始吧12年实习,在QQ上遇到中介,被忽悠到苏州,在佳世达电子厂组装打印机,每天工作12小时,全程站立,流水线......