flask建立資料表時無報錯且未建立成功的解決辦法

2021-10-08 00:28:05 字數 2288 閱讀 4333

在flask中,我們使用flask-sqlalchemy管理資料庫,第一步是在給定的資料庫中建立資料表,通過建立好模型之後,通過create_all命令即可把所有的繼承db.model的資料表類在資料庫中建立。語句如下

from flask import flask

from flask_sqlalchemy import sqlalchemy

'sqlalchemy_database_uri']=

'mysql://root:root@localhost:3306/flask_test'

'sqlalchemy_track_modifications']=

false

'sqlalchemy_echo']=

true

class

role

(db.model)

: __tablename__=

'roles'

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'))

'/',methods=

['post'

,'get'])

defindex()

:return

'hello'

if __name__==

'__main__'

: db.drop_all(

) db.create_all(

)true

)

from flask import flask

from flask_sqlalchemy import sqlalchemy

'sqlalchemy_database_uri']=

'mysql://root:root@localhost:3306/flask_test'

'sqlalchemy_track_modifications']=

false

'sqlalchemy_echo']=

true

class

role

(db.model)

: __tablename__=

'roles'

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'))

'/',methods=

['post'

,'get'])

defindex()

:return

'hello'

# 刪除表

db.drop_all(

)# 建立表

db.create_all(

)if __name__==

'__main__'

:true

)

解決方法:將如下兩條語句放在main方法之外即可。

建立資料表

語法 create table 表名 欄位名稱 字段型別 字段特徵 是否為null,預設值 標識列 主鍵 唯一鍵 外來鍵 check約束 欄位名稱 字段型別 字段特徵 是否為null,預設值 標識列 主鍵 唯一鍵 外來鍵 check約束 建立老師表teacher id name gender age...

建立資料表

class users models.model uphone models.charfield max length 20,verbose name 號碼 upwd models.charfield max length 20,verbose name 密碼 uemail models.email...

建立資料表

一 資料表 1 資料表 或表 是資料庫最重要的組成部分之一,是其他物件的基礎 2 表是乙個二維表,行稱為 記錄 列稱為 字段 二 建立資料表 1 首先開啟資料庫 資料庫要存在 show databases 檢視當前所有的資料庫 use 資料庫名稱 開啟指定資料庫 select databases 顯...