如何创建一个Flask项目并进行简单配置
作者:jfwh 发布时间:2023-08-19 01:05:47
标签:flask
安装的依赖包
flask
pymysql
flask_script
flask_migrate
flask_sqlalchemy
创建Flask项目(项目目录结构)
flaskexample
|---static
|---templates
|---app.py
在项目下创建settings文件,进行配置
setting.py
class DevelopmentConfig:
DEBUG = True
SQLALCHEMY_DATABASE_URI=mysql+pymysql://用户:密码@host/数据库
SQLALCHEMY_TRACK_MODIFICATIONS=False
SQLALCHEMY_ECHO=True
ENV='development'
# 此时项目目录结构
flaskexample
|---static
|---templates
|---app.py
|---setting.py
在项目下创建apps文件,在__init__.py文件下进行配置
apps.__init__.py
from flask import Flask
import setting
from exts import db
def create_app():
app = Flask(__name__, template_folser='../templates', static_folder='../static')
app.config.from_object(setting.DevelopmentConfig)
# 初始化ORM
db.init_app(app=app)
return app
# 此时项目目录结构
flaskexample
|---apps
|---__init__.py
|---static
|---templates
|---app.py
|---setting.py
在项目文件夹下的app.py中进行配置
app.py
from flask import Flask
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from apps import create_app
from exts import db
from apps.user import user
app = create_app()
# 配置manage
manager = Manager(app=app)
# 配置migrate命令,将相关命令交给manage
migrate = Migrate(app=app, db=db)
manager.add_command('db', MigrateCommand)
# 注册蓝图
app.register_blueprint(user)
if __name__ == '__main__':
manager.run()
创建exts文件,进行ORM配置
exts.__init__.py
from flask_sqlalchemy import SQLAlchemy
# 配置ORM
db = SQLAlchemy()
# 此时项目目录结构
flaskexample
|---apps
|---__init__.py
|---exts
|---__init__.py
|---static
|---templates
|---app.py
|---setting.py
在apps._init_.py中初始化ORM配置(已在文件中进行配置)
在app.py中注册migrate命令相关配置(已在文件中进行配置)
在apps下创建app文件并创建相关文件(如用户app)
# 此时项目目录结构
flaskexample
|---apps
|---__init__.py
|---user
|---__init__.py
|---view.py
|---models.py
|---exts
|---__init__.py
|---static
|---templates
|---app.py
|---setting.py
在apps.user.models.py中编写数据表的相关信息
user.model
from exts import db
class User(db.Model):
username = db.Column(db.String(60), nullable=True)
password = db.Column(db.String(60), nullable=True)
···
进行数据迁移
# 1. 初始化表
python app.py db init
# 2. 生成迁移文件
Python app.py db migrate
# 3. 进行数据迁移
python app.py db upgrate
#当命令2执行成功后自动生成migrations文件夹
# 此时项目目录结构
flaskexample
|---apps
|---user
|---__init__.py
|---models.py
|---view.py
|---__init__.py
|---exts
|---__init__.py
|---migrations
|---versions
|---9eef46471b52_.py
|---alembic.ini
|---env.py
|---READEME
|---script.py.mako
|---static
|---templates
|---app.py
|---setting.py
在user _init_下创建蓝图,并在apps的_init_ * 册
user.__init__
from flask import Blueprint
user = Blueprint("user", __name__)
之后就可以在user下的view.py中进行逻辑的处理了
来源:https://www.cnblogs.com/jfwh/p/13973909.html
0
投稿
猜你喜欢
- 前一段时间,一个流行的东方系列mv 《bad apple》 带来一股奇怪的风潮: 各种技术狂人纷纷把这段mv在一些匪夷
- 今天在论坛上面看到有些兄弟不知道HTC是什么东西。小生在这里稍微说一下。从5.5版本开始,Internet Explorer(IE)开始支持
- sql server中变量要先申明后赋值:局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的);申明局部变量语法:d
- 我用asp+access写程序, sql="select *&
- 快速排序(QuickSort)是对冒泡排序的一种改进:基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一
- /* * Date Format 1.2.3 * (c) 2007-2009 Steven Levithan * MIT license *
- 以下的文章主要是介绍SQL Server数据转换服务的4妙用之执行一些自动化的操作。在SQL Server数据库的实际操作管理中,数据库管理
- 分区表的概念 分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,S
- 一、“无”的哲学佛家讲究“因果报应”,有果必有应。此段看似与主题没有血缘关系,实际讲的是“因”。我个人比较喜欢老子的道家思想,并喜欢以其思想
- 1、现象a.用localhost访问,正常b.用IP地址访问,则出现403错误2、分析a.怀疑是ACL问题,设置Everyone为完全控制,
- 作为一个非设计出生的研究思路偏向的设计师,带着少了设计师自恋和自怜的眼光,我记下最近一年来感受到的交互设计师的尴尬。交互设计师就是出界面的,
- 看了OReilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.2006里的cookie
- 把程序重新写了一遍,日期下拉选择器,可自定义日期范围。使用了一个技巧获取指定月份的天数。演示页面:DateSelector.htm 程序代码
- 在服务器上生成动态内容是使用ASP最主要的原因之一,所以我们选择的第一个测试项目是确定把动态内容发送到应答流使用什么方法最好。基本的选择有两
- 主要实现功能1、用户输入用户名,在用户名文件中查找对应的用户,若无对应用户名则打印输入错误2、用户名输入正确后,进行密码匹配。输入密码正确则
- 分享几个字体设计:1.巧克力2.绿野邂逅是人间四月天3.去年花开的时候4.仲夏梦之夜5.芊芊茉莉香6.玫瑰人生7.真情告白8.遮掩锋芒
- 前言回调函数是我们在python编程中经常会遇到的一个问题,而想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一
- var obj=document.getElementById("id");得到的是dom对象,对该对象进行操作的时候使
- 在开发过程中,有时遇到由于缓存问题导致页面不能及时更新,有时页面引入了不必需的样式脚本文件,有时由于文件太多,字节过大导致页面的性能缓慢,为
- SQL语句参考及记录集对象详解1. ASP与Access数据库连接:2. ASP与SQL数据库连接:建立记录集对象:set rs=serve