如何创建一个Flask项目并进行简单配置


Posted in Python onNovember 18, 2020

安装的依赖包

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中进行逻辑的处理了

以上就是如何创建一个Flask项目并进行简单配置的详细内容,更多关于创建 flask项目的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python getopt 参数处理小示例
Jun 09 Python
Python比较两个图片相似度的方法
Mar 13 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
Python 数据结构之队列的实现
Jan 22 Python
python交互式图形编程实例(三)
Nov 17 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
详解Python self 参数
Aug 30 Python
python实现按首字母分类查找功能
Oct 31 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
Python MNIST手写体识别详解与试练
Nov 07 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 #Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 #Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 #Python
python实现图片,视频人脸识别(dlib版)
Nov 18 #Python
python实现图片,视频人脸识别(opencv版)
Nov 18 #Python
最新pycharm安装教程
Nov 18 #Python
如何利用Python写个坦克大战
Nov 18 #Python
You might like
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php生成圆角图片的方法
2015/04/07 PHP
php计算整个目录大小的方法
2015/06/01 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
Seajs的学习笔记
2014/03/04 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python 接口返回的json字符串实例
2018/03/27 Python
浅析python的优势和不足之处
2018/11/20 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
Java基础类库面试题
2013/09/04 面试题
导游的职业规划书范文
2013/12/27 职场文书
银行贷款承诺书
2014/03/29 职场文书
付款委托书范本
2014/10/05 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
教育读书笔记
2015/07/02 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python