peewee可以用Model直接在数据库中创建表
反过来也可以,用数据库中已经存在的表创建Model
前提:已经安装peewee模块
pip install peewee
用数据库中已经存在的表创建Model
$ python -m pwiz -e mysql -H localhost -p 3306 -u root -P -t table_names database_name > model.py
参数解释:
选项 | 解释 | 举例 |
---|---|---|
-h | help 显示帮助 | -h |
-e | engine 数据库引擎 | -e mysql |
-H | host 数据库地址 | -H localhost |
-p | port 数据库端口 | -p 3306 |
-u | user 数据库用户名 | -u root |
-P | password 数据库密码 | -P |
-s | schema 模式 | -s public |
-t | tables 指定生成来自表格 | -t tweet,users,relationships |
-v | VIEWs 指定生成来自视图 | -v |
-i | info 添加原信息 | -i |
-o | order 保留表格列顺序 | -o |
engine
支持的数据库:
sqlite
mysql
postgresql
举例
命令行语句
python -m pwiz -e mysql -H localhost -p 3306 -u root -P -t names demo > names.py
生成的names.py
Model文件
from peewee import *
database = MySQLDatabase('demo', **{'charset': 'utf8', 'use_unicode': True, 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': '123456'})
class BaseModel(Model):
class Meta:
database = database
class Names(BaseModel):
age = IntegerField(null=True)
name = CharField(null=True, unique=True)
class Meta:
table_name = 'names'
peewee可以用Model直接在数据库中创建表
实例化数据库
1、方法一
from peewee import *
database = MySQLDatabase('database', host="", user="",passwd="" )
database.connect()
2、方法二
from playhouse.db_url import connect
mysql_url ='mysql://admin:123456!@126.0.0.1:3306/db_name?charset=utf8'
blog = connect(mysql_url)
3、方法三
database = MySQLDatabase(None)
database.init(
database='db_name',
host='127.0.0.0',
user='root',
password='root'
)
定义数据模型 (Model)
class BaseModel(Model):
class Meta.:
database = database
class User(BaseModel):
user_name = CharField(null=True)
wo_no = IntegerField(primary_key=True)
class Meta.:
db_table = 'sys_user' # 数据库的表名
class UserAuth(BaseModel):
user_name = CharField(null=True)
auth_type = CharField(null=False)
class Meta.:
db_table = 'user_auth' # 数据库的表名