新建文件夹命令: mkdir 文件名
新建文件命令: type null > 文件名.文件类型
flask搭建类似DJango框架模式
使用方法:
1.创建app应用文件夹(命名可自行命名)
2.在app应用下创建个__init__.py文件
# coding=utf-8
# 导入Flask包和SQLAlchemy
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 导入配置
app.config.from_object('config')
# 实例化SQLAlchemy
db = SQLAlchemy(app)
# 最重要的配置,如views,models,forms
from app import views,models,forms
3.在app应用下分别创建views.py文件,models.py,forms.py.即可
4.在项目根目录创建config.py文件,db_migrate.py文件(数据库迁移文件),run.py(flask启动命令)
import os
# 配置文件主要配置数据库,为__init__服务
base_dir = os.path.abspath(os.path.dirname(__file__)) # 绝对路径
CSRF_ENABLED=True # 激活跨站点请求伪造保护
SECRET_KEY = 'ssahakja'
# 创建数据库连接
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(base_dir,'datas.sqlite')
# 数据迁移文件保存位置
SQLALCHEMY_MIGRATE_REPO = os.path.join(base_dir,'migrations')
db_migrate.py文件(数据库迁移文件)
# coding=utf-8
# 调用flask_migrate的api
from migrate.versioning import api
# 导入config的配置
from config import SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO
# 导入实例化flask对象的arm实例
from app import db
import imp # 导入模块和类,可用作模块的别名
import os
# 创建数据库
db.create_all() # 这里其实是创建表
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
# 创建数据库
api.create(SQLALCHEMY_MIGRATE_REPO,'respository database') # 第二个空是注释
api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
else:
api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO,api.version(SQLALCHEMY_MIGRATE_REPO))
# 第二步:迁移数据
v = api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
migration = SQLALCHEMY_MIGRATE_REPO + ('/versions/%03d_migration.py' % (v + 1)) # versions生成迁移的版本信息
tmp_module = imp.new_module('old_model')
old_model = api.create_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
exec(old_model, tmp_module.__dict__)
script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)
open(migration, "wt").write(script)
api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
v = api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
#第三步:报告结果
print('数 据 库位置:\t' + SQLALCHEMY_DATABASE_URI)
print('数据迁移代码:\t' + migration)
print('当前数据版本:\tv' + str(v))
这里出现个vscode配置虚拟环境的问题
1.打开命令面板 ctrl shift + p
2.选择python虚拟环境Python:Select Interpreter (打开完整的项目目录需要是虚拟环境的父母录,否则无法打开虚拟环境的python解释器)
3.使用import导入的话是相对路径,打开导入的包还是默认的Python解释器环境
第3点提示
虚拟环境并不会把标准库配置好