flask學習:連線mysql資料庫並建表
阿新 • • 發佈:2018-11-26
1.首先要下載 flask_sqlalchemy 和 flask_mysqldb。
一般在pycharm中可以搜尋到並且下載。如果出現問題,可以百度一下。
2.配置資料庫的相關設定:
root:root,前一個是資料庫使用者名稱,後一個是密碼。
#配置資料庫的地址 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]:3306/flask_sql_demo' #跟蹤資料庫的修改,不建議開啟 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app)
3.在mysql資料庫中建表:
create database flask_sql_demo charset='utf8';
4.建立與資料庫表相對應的python類
class Role(db.Model): #定義表名 __tablename__ = 'roles' #定義欄位 #db.Column 表示是一個欄位 id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16), unique=True) class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16), unique=True) role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
5.執行 :db.create_all()
此時在mysql中執行show tables;命令,可以看到已經成功建立了新表。
6.進入IPython,可以利用以下程式碼進行增刪改查。
In [2]: role = Role(name='admin') In [3]: db.session.add(role) #增 In [4]: db.session.commit() In [5]: user = User(name='xck', role_id=role.id) In [8]: user.name='xckkcx' #改 In [9]: db.session.commit() In [10]: db.session.delete(user) #刪 In [11]: db.session.commit()
完整的程式碼在下面:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
#配置資料庫的地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]:3306/flask_sql_demo'
#跟蹤資料庫的修改,不建議開啟
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
'''
兩張表(管理員/普通使用者)
使用者(角色ID)
'''
class Role(db.Model):
#定義表名
__tablename__ = 'roles'
#定義欄位
#db.Column 表示是一個欄位
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
db.drop_all()
db.create_all()
@app.route('/')
def index():
return "hahah"
if __name__ == '__main__':
app.run(debug=True)