在使用 Python 的 Tornado 框架开发应用的时候,想参考一下 WordPress 的数据库,于是使用工具把 WordPress 的数据库转化成了 Peewee Model,从这个 Model 中我们可以很方便的了解到 WordPress 的数据库结构,甚至可以直接在 Peewee ORM 中直接使用,贴出来供大家参考。
from peewee import *
database = MySQLDatabase('www', **{'user': "'root'"})
class UnknownField(object):
pass
class BaseModel(Model):
class Meta:
database = database
class WpCommentmeta(BaseModel):
comment = BigIntegerField(db_column='comment_id')
meta = BigIntegerField(db_column='meta_id', primary_key=True)
meta_key = CharField(max_length=255, null=True)
meta_value = TextField(null=True)
class Meta:
db_table = 'wp_commentmeta'
class WpComments(BaseModel):
comment = BigIntegerField(db_column='comment_ID', primary_key=True)
comment_agent = CharField(max_length=255)
comment_approved = CharField(max_length=20)
comment_author = TextField()
comment_author_ip = CharField(db_column='comment_author_IP', max_length=100)
comment_author_email = CharField(max_length=100)
comment_author_url = CharField(max_length=200)
comment_content = TextField()
comment_date = DateTimeField()
comment_date_gmt = DateTimeField()
comment_karma = IntegerField()
comment_parent = BigIntegerField()
comment_post = BigIntegerField(db_column='comment_post_ID')
comment_type = CharField(max_length=20)
user = BigIntegerField(db_column='user_id')
class Meta:
db_table = 'wp_comments'
class WpLinks(BaseModel):
link_description = CharField(max_length=255)
link = BigIntegerField(db_column='link_id', primary_key=True)
link_image = CharField(max_length=255)
link_name = CharField(max_length=255)
link_notes = TextField()
link_owner = BigIntegerField()
link_rating = IntegerField()
link_rel = CharField(max_length=255)
link_rss = CharField(max_length=255)
link_target = CharField(max_length=25)
link_updated = DateTimeField()
link_url = CharField(max_length=255)
link_visible = CharField(max_length=20)
class Meta:
db_table = 'wp_links'
class WpOptions(BaseModel):
autoload = CharField(max_length=20)
option = BigIntegerField(db_column='option_id', primary_key=True)
option_name = CharField(max_length=64)
option_value = TextField()
class Meta:
db_table = 'wp_options'
class WpPostmeta(BaseModel):
meta = BigIntegerField(db_column='meta_id', primary_key=True)
meta_key = CharField(max_length=255, null=True)
meta_value = TextField(null=True)
post = BigIntegerField(db_column='post_id')
class Meta:
db_table = 'wp_postmeta'
class WpPosts(BaseModel):
id = BigIntegerField(db_column='ID', primary_key=True)
comment_count = BigIntegerField()
comment_status = CharField(max_length=20)
guid = CharField(max_length=255)
menu_order = IntegerField()
ping_status = CharField(max_length=20)
pinged = TextField()
post_author = BigIntegerField()
post_content = TextField()
post_content_filtered = TextField()
post_date = DateTimeField()
post_date_gmt = DateTimeField()
post_excerpt = TextField()
post_mime_type = CharField(max_length=100)
post_modified = DateTimeField()
post_modified_gmt = DateTimeField()
post_name = CharField(max_length=200)
post_parent = BigIntegerField()
post_password = CharField(max_length=20)
post_status = CharField(max_length=20)
post_title = TextField()
post_type = CharField(max_length=20)
to_ping = TextField()
class Meta:
db_table = 'wp_posts'
class WpTermRelationships(BaseModel):
object = BigIntegerField(db_column='object_id', primary_key=True)
term_order = IntegerField()
term_taxonomy = BigIntegerField(db_column='term_taxonomy_id')
class Meta:
db_table = 'wp_term_relationships'
class WpTermTaxonomy(BaseModel):
count = BigIntegerField()
description = TextField()
parent = BigIntegerField()
taxonomy = CharField(max_length=32)
term = BigIntegerField(db_column='term_id')
term_taxonomy = BigIntegerField(db_column='term_taxonomy_id', primary_key=True)
class Meta:
db_table = 'wp_term_taxonomy'
class WpTerms(BaseModel):
name = CharField(max_length=200)
slug = CharField(max_length=200)
term_group = BigIntegerField()
term = BigIntegerField(db_column='term_id', primary_key=True)
class Meta:
db_table = 'wp_terms'
class WpUsermeta(BaseModel):
meta_key = CharField(max_length=255, null=True)
meta_value = TextField(null=True)
umeta = BigIntegerField(db_column='umeta_id', primary_key=True)
user = BigIntegerField(db_column='user_id')
class Meta:
db_table = 'wp_usermeta'
class WpUsers(BaseModel):
id = BigIntegerField(db_column='ID', primary_key=True)
display_name = CharField(max_length=250)
user_activation_key = CharField(max_length=60)
user_email = CharField(max_length=100)
user_login = CharField(max_length=60)
user_nicename = CharField(max_length=50)
user_pass = CharField(max_length=64)
user_registered = DateTimeField()
user_status = IntegerField()
user_url = CharField(max_length=100)
class Meta:
db_table = 'wp_users'