论坛和博客的代码研究。
近来用python写的爬虫爬到的数据,正愁用什么做WEB呢,本来想用python 的web.py 这个模块的,但是太简单了,(或许是我太懒了..),djlango 又很复杂,懒得看,我突然想到,为什么不把数据库设计成wordpress 那样呢?这样直接让wordpress 读取就行了,省了很多事情呢....
于是乎就研究起了wordpress的数据库结构,顺带也看了PHPbb的数据库结构,但是phpbb是论坛,所以交互性..权限问题等等,这个都是很复杂的,所以phpbb只是稍微看了下,足可以直接向数据库插入数据,然后由phpbb读取就OK。这个根据自己的需要吧。(一般论坛是不需要爬虫的,因为都是用户在更新帖子。)
数据库名字为:phpbb
// phpbb_posts
post_id #这是一个发帖的顺序。
topic_id #这是一个帖子的唯一ID。基本同上。
forum_id #这个是版面的ID。
poster_id #这个是用户的ID。(唯一的,在表 phpbb_users ->user_id )
icon_id #话题的标志...紧急,置顶...等。
poster_ip #发帖用户的IP。
post_time #发帖时间。
post_username #不详。
post_subject #帖子主题。
post_text #帖子内容。(没有HTML等标签。有内置标签,比如bbcode [codd][/code] 加上这些就行了。)
phpbb-users
user_id #用户唯一的ID。
user_type #用户类型。
group_id #用户组的ID
username #用户名字
username_clean #用户名字。
user_password #用户密码(MD5加密的。)
user_mail #用户邮箱地址。
phpbb_user_group
这里是用户组。
phpbb_topics
topic_id #帖子的ID
forum_id #版面ID
icon_id #话题图标
topic_attchment #顾名思义应该就是附件了。
topic_title #文章标题
topic_poster #发贴人的ID。
phpbb_forums
这是版面,版面的权限设置,等等都是非常复杂的,用SQL来操作是不明智的,建议还是通过网页来配置完毕。
forum_id #版面的ID
parend_id #父类 。 (父版面)
forum_parents #父系关系。没有父类,为空。
froum_name #版面名字
froum_desc #版面描叙。
forum_style #主题样式。
forum_rules #版面规则。
froum_rules_link #规则链接。
这个我使用SQL 也无法正常的创建版面。不知道是哪里还有配置,以后有时间再看。
wp_posts
ID #文章的ID,也就是GUID. ?p=
post_author #发文章的用户,默认为一,即Admin.
post_date #发布的日期。
post_date_gmt #发布日期。(格林威治时间。)
post_content #文章的内容,是带有HTML标签进行保存的。
post_title #文章标题。
post_status #文章状态,默认是publish,即是发布状态。还有inherit,auto-draft ....等等,这些也有固定的ID,但是是不能显示的。
comment_status #评论权限,默认是open ,即允许评论。
ping_status #默认open。
post_password #密码。默认为空,没有。
post_name #自动把空格等替换成-,这样可以用来做网址。方便浏览器搜索。
post_modified #最后修改时间,虽然我测试的模板未调用这个数据,但是有的模板还是调用的,所以最好和前面的时间保持一致就OK了。
post_modified_gmt #同上,最后的修改时间。(格林威治时间。)
guid #唯一的ID。是以网址的形式出现。(http://****.com/?p=124)
post_type #类型,文章是 post ,页面是page
post_parent #文章的父类,比如草稿就是文章的ID,父类就是0。默认无须更改。
******************************************************************************
post_date 发布日期会影响在页面的排序,排序并不是按照ID来排序的。是按照日期。
wp_postmeta
meta_id #meta ID,应该是唯一的。
post_id #文章的ID , 注意是那个 publish 状态的那个,其他的,比如草稿可以写上,但是在meta_key 加上_edit_last....
meta_value #这个不详,从编辑器中编辑都是默认的 1 值,但是没有值一样还是可以的。
meta_key #这个文章的状态,_edit_last 是最后编辑,应该是发布publish的那个。还有 _edit_lock .. _wp_old_slug 等,既然是数据库操作,其实只生产一个数据了,草稿那些几本是不存在的。
wp_comments
comment_ID #评论ID,唯一的。
comment_post_ID #所评论的文章的GUID 。
comment_author #评论者的名字。
comment_author_email #评论者的Email。
comment_author_url
comment_author_IP
comment_date
comment_content #评论的内容。(附有HTML标签。)
总结下wordpress数据库,写入数据库主要是wp_posts 和 wp_postmeta 这两张表,wp_posts ,主要写入的数据库是 ID author post_date(GMT) content title guid modified(GMT) 这几条数据。其余的都可以默认。
然后写入是 wp_postmeta 源信息,meta_id post_id meta_key 。就基本完成。
Note:
大家需要注意的是,wordpress 不是按照ID来排序的,他是按照post_date 这个来排序的。时间越晚,就越靠前。至于comment ,因为需要数据库直接操作的人一般都是导入信息,数据,所以也没有那个东西....其实也很简单,注释很明白了,大家自己琢磨~~~ :))
新闻热点
疑难解答
图片精选