新建文件夾命令: 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點提示
虛擬環境並不會把標准庫配置好