論壇和博客的代碼研究。
近來用python寫的爬蟲爬到的數據,正愁用什么做WEB呢,本來想用python 的web.py 這個模塊的,但是太簡單了,(或許是我太懶了..),djlango 又很復雜,懶得看,我突然想到,為什么不把數據庫設計成wordpress 那樣呢?這樣直接讓wordpress 讀取就行了,省了很多事情呢....
于是乎就研究起了wordpress的數據庫結構,順帶也看了PHPbb的數據庫結構,但是phpbb是論壇,所以交互性..權限問題等等,這個都是很復雜的,所以phpbb只是稍微看了下,足可以直接向數據庫插入數據,然后由phpbb讀取就OK。這個根據自己的需要吧。(一般論壇是不需要爬蟲的,因為都是用戶在更新帖子。)
數據庫名字為:phpbb
// phpbb_posts
post_id #這是一個發帖的順序。
topic_id #這是一個帖子的唯一ID?;就稀?br /> 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 ,因為需要數據庫直接操作的人一般都是導入信息,數據,所以也沒有那個東西....其實也很簡單,注釋很明白了,大家自己琢磨~~~ :))
新聞熱點
疑難解答
圖片精選