请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

3回答

bobby 2020-11-09 09:06:07
# -*- coding: utf-8 -*-
from datetime import datetime

from peewee import *

db = MySQLDatabase(
    "mxshop_test",
    host="127.0.0.1",
    port=3306,
    user="root",
    password="root"
)


def make_table_name(model_class):
    model_name = model_class.__name__
    return "myprefix_" + model_name.lower()


class BaseModel(Model):
    create_time = DateTimeField(verbose_name="创建时间", default=datetime.now())

    class Meta:
        database = db
        table_function = make_table_name




class User(BaseModel):
    openid = CharField(verbose_name="用户唯一标识", index=True, unique=True)
    nickname = CharField(max_length=20, verbose_name="昵称")
    avatar = CharField(max_length=200, verbose_name="头像", null=True)
    notices = IntegerField(verbose_name="订阅消息次数", default=0)
    login_time = DateTimeField(verbose_name="登录时间")

if __name__ == '__main__':
    db.create_tables([User])

这是你的代码整理了 我这里生成表的时候能加前缀啊

0 回复 有任何疑惑可以回复我~
  • 提问者 DSMARK #1
    如果能生成,那估计是读取到配置信息为空,我试试
    回复 有任何疑惑可以回复我~ 2020-11-09 10:01:25
  • bobby 回复 提问者 DSMARK #2
    你试过我这个代码还是不行? 你也可以在你上面的函数中打个断点 debug试试
    回复 有任何疑惑可以回复我~ 2020-11-10 15:46:53
提问者 DSMARK 2020-11-07 22:19:05

user.py

# -*- coding: utf-8 -*-
from peewee import *

from common.models import BaseModel

class User(BaseModel):
    openid = CharField(verbose_name="用户唯一标识",index=True,unique=True)
    nickname = CharField(max_length=20,verbose_name="昵称")
    avatar = CharField(max_length=200,verbose_name="头像",null=True)
    notices = IntegerField(verbose_name="订阅消息次数",default=0)
    login_time = DateTimeField(verbose_name="登录时间")


common.py

# -*- coding: utf-8 -*-
from datetime import datetime

from .settings import settings
from peewee import *

db = MySQLDatabase(
    settings['db']['name'],
    host=settings['db']['host'],
    port=settings['db']['port'],
    user=settings['db']['user'],
    password=settings['db']['pwd']
)


def make_table_name(model_class):
    model_name = model_class.__name__
    return settings['table_prefix'] + model_name.lower()


class BaseModel(Model):
    create_time = DateTimeField(verbose_name="创建时间",default = datetime.now())
    
    class Meta:
        database = db
        table_function = make_table_name


0 回复 有任何疑惑可以回复我~
bobby 2020-10-28 20:34:22

你这里更加这个配置有问题?

0 回复 有任何疑惑可以回复我~
  • 提问者 DSMARK #1
    按照这个方式生成的表没有后缀,就生成了和类名一样的表名
    回复 有任何疑惑可以回复我~ 2020-10-31 11:10:40
  • bobby 回复 提问者 DSMARK #2
    你把你的这个地方的代码贴一下 我本地试试
    回复 有任何疑惑可以回复我~ 2020-11-02 10:48:34
  • 提问者 DSMARK 回复 bobby #3
    就是照着网上抄的
    回复 有任何疑惑可以回复我~ 2020-11-07 22:19:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信