flask蓝图与项目一般结构

flask一般项目结构

初始化配置flask项目时,路由和视图是放在启动文件里的,这样不太方便我们后期的整理和查阅!

因此,我们需要将项目启动文件和路由视图分开处理!

  1. 在项目文件下创建一个apps的包,在包的初始化文件里定义一个函数,用来实现app相关的功能

init.py

from flask import Flask
import settings

def create_app():
    app = Flask(__name__) # 生成app对象
    app.config.from_object(settings) # 加载app的初始化配置
    # 注册蓝图
    app.register_blueprint() #括号里绑定对应的蓝图对象
    return app # 将app对象返回出去
  1. 然后在项目文件下的app.py里引入创建app对象的方法,得到创建好的app对象
from apps import create_app

app = create_app()

if __name__ == '__main__':
    # 运行app模块
    app.run()
  1. 将templates和static文件夹拖到apps这个包内,或者在创建app对象的时候添加以下代码,指定静态文件和模板文件夹的查找位置
    app = Flask(__name__,template_folder='',static_folder='') # 生成app对象
    template_folder和static_folder是指定查找对应静态文件和模板文件的位置

flask蓝图

  1. 在apps包里的各个模块包里新建一个view.py,用来写对应的视图和路由关系
from flask import Blueprint # 引入蓝图模块类

# 创建蓝图对象
# 第一个参数是给这个蓝图对象起一个名,第二个是导入名,url_prefix='/user'其实就是路由分发的意思,防止各个蓝图的路由重复
user_bp = Blueprint('user',__name__,url_prefix='/user')

@user_bp.route('/') #由蓝图对象实现的路由
def user_home():
    return '用户中心'
  1. 创建完蓝图对象,需要到包的初始化文件里注册一下蓝图对象
    app.register_blueprint() #括号里绑定对应的蓝图对象

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask蓝图与项目一般结构 - Python技术站

(0)
上一篇 2023年4月2日 下午4:17
下一篇 2023年4月2日 下午4:17

相关文章

  • django的基本介绍与操作

    django的基本操作 1.django的安装 (1)在ubuntu上的安装 sudo pip3 install django==2.1.12(版本号) 检查安装是否成功: sudo pip3 freeze|grep -i ‘Django’ 有输出django==2.2.12 表示安装成功 (2)在windows上的安装 在终端执行 pip3 install…

    2023年4月2日
    00
  • IO模型

    该篇的IO模型主要针对的是网络IO的,其他IO不在本篇考虑范围之内! IO模型简介 Stevens在文章中一共比较了五种IO Model,分别为: * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO multiplexing IO多路复用 * signal driven IO 信号驱动IO * asynchronou…

    2023年4月2日
    00
  • python中的三大主流wed框架简介

    1.django 特点:大而全,自带的功能特别特别多,类似于航空母舰 不足之处:有时候过于笨重 django中web框架的三个部分: socket部分:用的wsgiref模块路由与视图函数的对应关系:自己写的模板语法:自己写的 2.flask 特点:小而精,自带的功能特别少,类似于轻骑兵 但是它的第三方模块特别特别的多,如果把第三方模块加起来完全可以盖过dj…

    Python开发 2023年4月2日
    00
  • rest_framework中的分页功能

    为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗时也会比较大。 通常我们会希望一部分一部分去请求数据,也就是我们常说的一页一页获取数据并展示出来。 分页的三种方式 方式一:基本的分页,就是正常的查第几页每页显示多少条…

    2023年4月2日
    00
  • 文章详情页制作

    url的设计 /usrname/article/1 /用户名/article/文章主键值 re_path(r’^(?P<username>\w+)/article/(?P<article_id>\d+)/$’,views.article_detail,name=’detail’), 视图函数的设计 # 七、文章详情页 def arti…

    Python开发 2023年4月2日
    00
  • 进程、线程补充与协程相关介绍

    补充点 1.死锁 当你知道锁的使用抢锁必须要释放锁,其实你在操作锁的时候也极其容易产生死锁现象(整个程序卡死 阻塞) from threading import Thread, Lock import time mutexA = Lock() mutexB = Lock() # 类只要加括号多次 产生的肯定是不同的对象 # 如果你想要实现多次加括号等到的是相…

    Python开发 2023年4月2日
    00
  • 迭代器与生成器

    1.什么是迭代器 迭代器是用来迭代取值的工具,而迭代的意思是一个重复的过程,每一次的重复都是基于上一次的结果继续的,单纯的重复并不是迭代 2.为何要有迭代器 在python中涉及到需要把多个值循环取出来的类型有:字符串、列表、元组、字典、集合、打开文件等,我们可以考虑使用while循环的方式来循环取出多个值,例如: list=[‘egon’,’lin’,11…

    Python开发 2023年4月2日
    00
  • 操作系统的介绍

    操作系统的介绍 1.什么是操作系统 操作系统其实就是一个协调、管理、控制计算机硬件资源和软件资源的一个控制程序 2.为什么要有操作系统 (1)可以控制计算机硬件的基本运行(2)把操作硬件的复杂操作封装成一个简单的功能,交给上层的应用程序使用。例如文件就是操作系统提供给应用程序的一种功能! 3.程序的区分 计算机硬件是死的,计算机硬件的运行是受软件控制的、所以…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部