某日二師兄參加XXX科技公司的C++工程師開發崗位第31面: > 面試官:`strcpy`函數使用過吧? > > 二師兄:用過。 > > 面試官:這個函數有什麼作用? > > 二師兄:主要用做字元串複製,將於字元從一個位置複製到另一個位置。 > > 面試官:`strncpy`函數也使用過吧,和`st ...
創建user表實體類
- 新增do目錄下創建user_entity.py和init.py
from sqlalchemy import Integer
from server import db
"""
User表的實體類,與DB欄位一致
"""
class UserEntity(db.Model):
# 表名, 需要重新命名,預設按類名來創建表名
__tablename__ = "user"
# 唯一主鍵ID
id = db.Column(Integer,primary_key=True)
# 用戶名,唯一,不可為空
username = db.Column(db.String(64), nullable=False, unique=True)
# 密碼,不為空
password = db.Column(db.String(128), nullable=False)
def user_entity_dict(self):
return {"id": self.id, "username": self.username, "password": self.password}
- 在do的init.py文件寫入create_all()方法來初始化創建表
from server import db
from do.user_entity import UserEntity # 倒入要執行的實體類包
"""
資料庫表創建,運行文件創建
註意:創建一次後,就可以註釋掉,避免之後每次啟動項目都創建
"""
if __name__ == "__main__":
db.create_all()
- 執行創建表
/usr/local/bin/python3.8 /Applications/Python/TestPlatform/api_test_platform_demo/backend/do/__init__.py
2023-07-04 00:38:57,648 INFO sqlalchemy.engine.Engine SELECT DATABASE()
2023-07-04 00:38:57,648 INFO sqlalchemy.engine.Engine [raw sql] {}
2023-07-04 00:38:57,661 INFO sqlalchemy.engine.Engine SELECT @@sql_mode
2023-07-04 00:38:57,661 INFO sqlalchemy.engine.Engine [raw sql] {}
2023-07-04 00:38:57,667 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names
2023-07-04 00:38:57,668 INFO sqlalchemy.engine.Engine [raw sql] {}
2023-07-04 00:38:57,679 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2023-07-04 00:38:57,680 INFO sqlalchemy.engine.Engine SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = %(table_schema)s AND table_name = %(table_name)s
2023-07-04 00:38:57,680 INFO sqlalchemy.engine.Engine [generated in 0.00026s] {'table_schema': 'testplatform', 'table_name': 'user'}
2023-07-04 00:38:57,689 INFO sqlalchemy.engine.Engine
CREATE TABLE user (
id INTEGER NOT NULL AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
password VARCHAR(128) NOT NULL,
PRIMARY KEY (id),
UNIQUE (username)
)
2023-07-04 00:38:57,689 INFO sqlalchemy.engine.Engine [no key 0.00021s] {}
2023-07-04 00:38:57,773 INFO sqlalchemy.engine.Engine COMMIT
Process finished with exit code 0
-
查看資料庫中是否創建成功
user表以及欄位創建成功啦,以此類推所有的實體類一次性寫好一起創建