# FlaskStudy **Repository Path**: feng7309/flask-study ## Basic Information - **Project Name**: FlaskStudy - **Description**: 学习flask之后的实现内容 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-26 - **Last Updated**: 2022-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlaskStudy #### 介绍 学习flask之后对自己制定的项目结构,用于参考 #### 项目架构 ![输入图片说明](static/image/image.png) apps 里面每个蓝图一个文件夹,单独存放 --users 自定义蓝图存放的位置 static 存放静态资源文件 tempalte 存放静态模板文件 migrations 数据库迁移的时候自动创建(不用管它) .gitignore git创建的忽略文件不用管它 app.py 系统配置文件 configs.py 配置信息存放的地方 ext.py 数据库连接的生成的db对象存放的的地方 manage.py 程序口位置,用于程序的启动 models.py 数据库模型对象存放的位置 requirement.txt 需要安装的包统一存放的抢位置 #### 文件及配置 1. uers/users.py ``` from flask import Blueprint, render_template user_bp = Blueprint('user_bp', __name__, url_prefix='/user') @user_bp.route('/index') def user_index(): # 换回的是模板文件可以按需修改 return render_template('base/base_index.html') ``` 2. 模板文件引用 ``` ``` 3. app.py 系统级的配置文件 ``` from flask import Flask from flask_cache import Cache from flask_mail import Mail import configs from apps.users.users import user_bp from ext import db # 缓存初始化 cache = Cache() # 邮箱初始化 mail =Mail() app = Flask(__name__, static_url_path='/static', static_folder='static', template_folder='templates') # 加载配置文件 app.config.from_object(configs) # db、cache、mail绑定app cache.init_app(app) db.init_app(app) mail.init_app(app) # 注册 app.register_blueprint(user_bp) ``` 4.configs.py 配置文件 ``` # 创建数据库的连接对象 HOST = '127.0.0.1' PORT = '3306' DATABASE = 'flaskdb' USERNAME = 'root' PASSWORD = 'root' DB_URI = "mysql://{}:{}@{}:{}/{}?charset=utf8".format(USERNAME, PASSWORD, HOST, PORT, DATABASE) SQLALCHEMY_DATABASE_URI = DB_URI SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = True # 配置email等信息 MAIL_SERVER = 'smtp.qq.com' MAIL_PORT = 465 MAIL_USE_TLS = False MAIL_USE_SSL = True MAIL_DEBUG = True MAIL_USERNAME = '邮箱地址' MAIL_PASSWORD = '秘钥' MAIL_DEFAULT_SENDER = '自己的邮箱地址' # 配置redis CACHE_TYPE = 'redis', CACHE_REDIS_HOST = '127.0.0.1', CACHE_REDIS_PORT = 6379, CACHE_REDIS_DB = '数据库名称', CACHE_REDIS_PASSWORD = '密码' ``` 5.ext.py 数据库连接对象 ``` from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() ``` 6.manage.py 系统入口文件 ``` # 文档配置路径 from flask_script import Manager, Server from app import app from flask_migrate import Migrate, MigrateCommand from ext import db import models manager = Manager(app) Migrate(app=app, db=db) manager.add_command('db', MigrateCommand) manager.add_command('start', Server(port=3001, use_debugger=True, host='0.0.0.0')) ''' # 数据库命令 python manage.py db init 初始化数据库 python manage.py db migrate 创建数据库的迁移文件 python manage.py db upgrade 执行数据的迁移文件 # 其他命令 db 数据库迁移操作 start 在manage里面配置 parameters:参数配置为start shell Runs a Python shell inside Flask application context. runserver 生产环境使用该命令 ''' if __name__ == '__main__': manager.run() ``` 7.数据模型文件 ``` # 创建数据库对象 from ext import db """ 以下表关系: 一个用户对应多篇文章(一对多) 一篇文章对应多个标签,一个标签对应多个文章(多对多) """ """ 一对一关系中,需要设置relationship中的uselist=Flase,其他数据库操作一样。 一对多关系中,外键设置在多的一方中,关系(relationship)可设置在任意一方。 多对多关系中,需建立关系表,设置 secondary=关系表 """ 。。。。。 ``` #### 使用命令和安装 1. 安装第三方包 pip install -r requirements.txt 2. 数据库命令,在项目目录下终端使用 python manage.py db init 初始化数据库 python manage.py db migrate 创建数据库的迁移文件 python manage.py db upgrade 执行数据的迁移文件 3. 程序启动命令 在pycharm中配置参数 start就可以快捷启动了 #### 后续,待更新 1. flask扩展 [https://www.bookstack.cn/read/flask-extension-docs/spilt.9.2df68a0f731b30e9.md](http://) 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request 1111 11111 #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)