flask_sqlalchemy基本设置

from flask import Flask
from flask_sqlalchemy import SQLAlchemy #区别 sqlalchemy这是第三方模块不属于flask
app = Flask(__name__)

HOSTNAME = '127.0.0.1'

PORT = 3306

DATABASE = 'first_sqlalchemy_demo'

USERNAME = 'root'

PASSWORD = '123456'

#dialect+driver://username:password@host:port/database
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/" \
         "{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

#SQLALCHEMY_DATABASE_URI是定死的,只能这么写
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

# app.debug = True#这里注意,这样开启debug,数据映射到数据库两次


class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    username = db.Column(db.String(50),nullable=False)


class Article(db.Model):
    __tablename__ = 'article'
    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.id'),nullable=False)
    author = db.relationship('User',backref='articles')

# db.drop_all()
# db.create_all()

#增加数据
def create_data_mysql():
    user = User(username='zhiliaoxuetang')
    article = Article(title='python flask')
    article.author = user

    #映射到数据库中
    db.session.add(article)
    db.session.commit()

#查询
#User.query 相当于db.session.query(User),如果要做复杂的查询还是要用db.session.query(User)
# user_all_desc = User.query.order_by(User.id.desc()).all()
# print(user_all_desc)

#修改数据
# user_update = User.query.filter(User.id==1).first()
# user_update.username = 'old boy'
# db.session.commit()

#删除数据
user_delete = User.query.filter(User.id==2).first()
db.session.delete(user_delete)
db.session.commit()


@app.route('/')
def hello_world():
    return 'hello world!'


if __name__ == '__main__':
    # create_data_mysql()
    app.run()

 

posted @ 2018-09-28 23:26  python成长中  阅读(274)  评论(0编辑  收藏  举报