flask框架

1.创建python虚拟环境
pip install virtualenv
# 创建虚拟环境
cd /python3.8/bin   # cd 项目所使用的版本python安装路径下的bin
virtualenv -p ./python3.8_path project_env_path_name
source project_env_path_name/bin/activate

# 安装依赖
pip install pymsyql
# 批量安装
pip install -r requirements.txt
# 查看依赖
pip list 或 pip freeze > requirements.txt
2.实例代码
2.1 flask开发方式1:手动创建文件开发项目目录结构实例

├─migrations  # 数据库迁移目录
│  ├─versions
│  └─__pycache__
├─test
   └─__init__.py
   └─models.py  # 模型类
   └─views.py  # 视图
└─__init__.py
└─manage.py   # 启动文件
└─requirements.txt  # 依赖信息

test目录

__init__.py

from flask import Blueprint

# 创建蓝图对象
account = Blueprint('test', __name__)


from .views import *

models.py模型类文件

from manage import db


class Role(db.Model):
    # 设置表名,不设置表名就是类名。
    __tablename__ = "sample"

    # 设置字段,以及属性,传入name数据表中的字段为'id',不传为默认的id
    id = db.Column(db.Integer, name='id', primary_key=True)
    name = db.Column(db.String(10), nullable=False)

view.py视图文件

# !/usr/bin/env python
# -*- coding:utf-8 -*-
from manage import db
from test import account
from test.test_model import Role


@account.route('/login')
def login():
    """
    # db.session.add(models.Users(username='123', email='123'))
    # #db.session.query(models.Users).all()
    # db.session.commit()
    # 添加示例
    """
    user_list = db.session.query(Role).all()

    for item in user_list:
        print(item.id, "is", item.name)

    return 'login'

manage.py项目主文件

from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate, MigrateCommand
from test import account
db = SQLAlchemy()


class BaseConfig(object):
    # SESSION_TYPE = 'redis'  # session类型为redis
    # SESSION_KEY_PREFIX = 'session:'  # 保存到session中的值的前缀
    # SESSION_PERMANENT = True  # 如果设置为False,则关闭浏览器session就失效。
    # SESSION_USE_SIGNER = False  # 是否对发送到浏览器上 session:cookie值进行加密

    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root@127.0.0.1:3306/test_fastapi?charset=utf8"
    SQLALCHEMY_POOL_SIZE = 5
    SQLALCHEMY_POOL_TIMEOUT = 30
    SQLALCHEMY_POOL_RECYCLE = -1

    # 追踪对象的修改并且发送信号
    SQLALCHEMY_TRACK_MODIFICATIONS = False


def create_app():
    app = Flask(__name__)
    app.config.from_object(BaseConfig)
	app.debug=True
    db.init_app(app)
    # 将db注册到app中
    # db.init_app(app)

    return app


app = create_app()
# 注册蓝图

app.register_blueprint(account,url_prefix='/test')
manager = Manager(app)
# 将当前app,与db注册到Migrate
Migrate(app, db)
# 添加管理数据的命令
manager.add_command('db1', MigrateCommand)


if __name__ == '__main__':
    manager.run()

requirements.txt

alembic==1.4.3
click==7.1.2
Flask==1.1.2
Flask-Migrate==2.5.3
Flask-Script==2.0.6
Flask-SQLAlchemy==2.4.4
itsdangerous==1.1.0
Jinja2==2.11.2
Mako==1.1.3
MarkupSafe==1.1.1
PyMySQL==0.10.1
python-dateutil==2.8.1
python-editor==1.0.4
six==1.15.0
SQLAlchemy==1.3.22
Werkzeug==1.0.1
2.2 flask开发方式2:利用swagger文件生成文件方式开发项目简单介绍

登录SwaggerEditor网站编辑项目swagger文件 >>>>> 点击【Generate Server】选择【python-flask】下载项目文件 >>>>> 根据项目实际目录情况修改模型类相关文件信息和配置

3.运行代码

创建数据库create database test charset=utf8mb4;

3.1 建表方法
3.1.1 方法一:使用Flask-Migrate迁移建表
python manage.py shell
>>>from manage import db
>>>db.create_all()   # 创所有表
>>>db.drop_all()   # 删所有表

# db1 为manage.py文件中添加的迁移命令manager.add_command('db1', MigrateCommand)
python manage.py db1 init   # 生成migrations文件夹
python manage.py db1 migrate -m "注释"   # 在migrations/versions中生成一个文件,该文件记录数据表的创建和更新的不同版本的代码。
python manage.py db1 upgrade   # 在数据库中生成对应的表格。
3.2.2 方法二:sql建表再sqlachemy直接连接数据库映射
create table test(
id int primary key AUTO_INCREMENT,
`name` VARCHAR(10) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.2 启动项目

若项目目录下启动文件为 manage.py文件,以 manage.py文件为例
python manage.py runserver -h 127.0.0.1 -p 5000
若项目目录下启动文件为main.py文件,可使用命令python -m 项目目录名称启动项目

4.supervisor使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值