如何创建一个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实现根据窗口标题调用窗口的方法
Mar 13 Python
python验证码识别的实例详解
Sep 09 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
python统计多维数组的行数和列数实例
Jun 23 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
通过代码实例了解Python sys模块
Sep 14 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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
附件名前加网站名
2008/03/23 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
js 幻灯片的实现
2011/12/06 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
python文件操作整理汇总
2014/10/21 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
什么是Python中的顺序表
2020/06/02 Python
python计算auc的方法
2020/09/09 Python
使用Python封装excel操作指南
2021/01/29 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
写求职信有什么意义
2014/02/17 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
农村门前三包责任书
2014/07/25 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
复兴之路观后感
2015/06/02 职场文书