1.flask sqlalchemy 及 database相结合
from flask import Flask
from flask_sqlalchemy import SQLALchemy
app = Flask( __name__)
HOSTNAME = . . .
PORT = '3306'
DATABASE = 'database'
USERNAME = 'root'
PASSWORD = 'password'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}' . format ( USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
app. config[ 'SQLALCHEMY_DATABASE_URI' ] = DB_URI
app. config[ 'SQLALCHEMY_TRACK_MODIFICATIONS' ] = False
db = SQLALchemy( app)
class User ( db. Model) :
[ __tablename__ = 'user' ]
id = db. Column( db. Integer, primary_key= True , autoincrement = True )
username = db. Column( db. String( 50 ) , nullable= False )
password = db. Column( db. String( 50 ) , nullable= False )
def __str__ ( self) :
return "<User:(username:%s)>" % self. username
class Article ( db. Model) :
id = db. Column( db. Integer, primary_key= True , autoincrement= True )
title = db. Column( db. String( 50 ) , nullable= False )
uid = db. Column( db. Integer, db. ForeignKey( 'user_model.id' ) )
author = db. relationship( "User" , backref= "articles" )
def __str__ ( self) :
return "<User:(username:%s)>" % self. username
db. drop_all( )
db. create_all( )
user = User( username= 'qfedu' , password= '123456' )
article = Article( title= '钢铁是怎么炼成的' )
article. author = user
db. session. add( article)
db. session. commit( )
db. session. delete( an_object)
db. session. commit( )
an_object. field = value
db. session. commit( )
user = User. query. filter ( User. id == 1 ) . first( )
from flask_script import Manager
from app import app
manager = Manager( app)
2.生成迁移文件方式,操作数据库
pip install flask_migrarte
from flask_migrate import Migrate
migrate = Migrate( app, db)
mamager. add_comand( "db" , MigrateCommand)
cd到当前工作文件夹下: python manage. py db init
python manage. py db migrate
python manage. py db upgrade