flask蓝图与项目一般结构

yizhihongxing

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中的路由层

    1.什么是路由层 简单来说,就是通过路由层中的path函数,告诉django遇到那个url,执行那个视图函数 2.路由层的请求流程 1.客户在浏览器输入网址→请求进入django的setting.py中的ROOT_URLCONF寻找指定使用的urls.py文件位置(如果中间件有路由功能,urls文件功能会被其替代) 2.Django会先匹配项目目录下的pat…

    Python开发 2023年4月2日
    00
  • 支付宝支付

    支付宝支付流程 在python中封装alipay 安装 >: pip install python-alipay-sdk –upgrade # 如果抛ssl相关错误,代表缺失该包 >: pip install pyopenssl 结构 libs ├── AliPay # aliapy二次封装包 │ ├── __init__.py # 包文件 │…

    2023年4月2日
    00
  • admin后台管理数据库里的表

    admin后台管理 django给您提供了一个可视化图形界面,来方便您来对数据库里的表进行增删改查的管理 但是!使用admin后台管理你自己注册的模型表时,需要自行进行先注册该表! 在应用下的admin.py里进行注册: from django.contrib import admin from app01 import models # Register …

    2023年4月2日
    00
  • 将侧边栏制成inclusion_tag

    在开发过程中,像侧边栏这种功能的版块,我们在很多页面都需要使用到的时候,我们则需要在视图函数中书写重复的代码,这样很繁琐,我们可以将侧边栏制成inclusion_tag,后面我们需要用到侧边栏功能时,只需要导入即可! 将侧边栏制成inclusion_tag的步骤: 1.在应用下创建一个名字必须叫templatetags的文件夹 2.在该文件夹内,创建一个任意…

    2023年4月2日
    00
  • 基于django中间件的编程思想

    基于django中间件的编程思想 在django中,中间件的形式全部写成了列表套字符串的形式 MIDDLEWARE = [ ‘django.middleware.security.SecurityMiddleware’, ‘django.contrib.sessions.middleware.SessionMiddleware’, ‘django.middl…

    2023年4月2日
    00
  • 基本运算符

    基本运算符 算术运算符 print(10+2) # 加减乘除运算符 print(10 / 3) print(10 // 3) # 只保留整数部分 print(10 % 3) # 取余数 print(10 ** 3) # 幂方运算 比较运算符 <、>、>=、<=、==、!= 赋值运算符 # =:变量赋值 # +=、-=、*=、**=、/…

    Python开发 2023年4月2日
    00
  • 序列化类高级用法之source、SerializerMethodField和断言assert

    序列化类高级用法之source 使用source,字段参数,可以修改序列化字段名字 原本序列化器中字段名,必须和表中的字段名一样,不一样会报错 我们可以通过source字段来改变序列化器中的字段名,使得前端在展示的时候也修改一下字段名!! source也可以做跨表查询,通过外键字段,表名点外键出去的字段名字 class BookSerializer(seri…

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

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

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