wordpress後台資料庫表分析

2022-04-29 18:42:12 字數 2321 閱讀 4177

就以之前看到的三人行書屋為例:三人行書屋截圖如下。

這個**用外掛程式分析了一下,用的是[git](主題。頁面的主要分析點截圖中標紅框-文章目錄、文章、文章標籤。涉及的表有:wp_terms、wp_posts、wp_term_taxonomy、wp_term_ralationships.

​ wp_terms: 標籤、目錄的儲存表。term_id-自增id。name-標籤或目錄的名稱。slug-urlencode後的內容。

​ wp_term_taxonmy: 目錄、標籤的描述資訊,主要字段:term_taxonomy_id-該錶的自增id,term_id-對應上面的wp_terms的term_id,taxonomy- 目錄或者標籤(category or post_tag),count:計數器,對應截圖中的標籤下的數字。

wp_term_relationships: wp_terms 和 wp_posts的關聯表。也就是說,這張表決定了一篇文章就是是什麼目錄,有什麼標籤。主要字段:object_id - 對應的是wp_posts中的id。term_taxonomy_id對應的是wp_term_taxonomy中的term_taxonomy_id。object_id、term_taxonomy_id 是多對多的關係。

說是二次開發,其實並沒有什麼具體的目標,沒想好建立什麼**。就當前期的熱身活動,熟悉和驗證結論是否正確。我還是使用我最熟悉的python作為開發語言。

具體哪個**就不透露了。大多數**這都有我們所需的元素。使用python簡單編寫了scrapy爬蟲(簡單點的直接用requests爬了),我們需要用到的素材均作單獨字段儲存。

我推薦比較好的做法是使用sqlalchemy對源資料表和wp資料表進行建模。然後根據wp各個表的關係做事務插入。即使用乙個session對上面提到的幾個表做完整性的資料插入。

這裡推薦乙個快速生成資料模型的工具,配合sqlalchemy使用事半功倍。sqlacodegen

具體操作方法:

1. pip install sqlacodegen

2. sqlacodegen --outfile=models.py mysql:

第二部操作是對整個庫的建模,當然也可以選擇對某張表進行建模。

sqlacodegen --outfile=models.py mysql: --tables teacher,student
我具體的處理邏輯,部分偽**如下(寫的太亂,只能拿出部分偽**獻醜了)

post = spider_session.query(spiderdata).filter(spiderdata.id == 1) # 從爬蟲庫中選出一條

...# wordpress 資料庫插入

wp_post = wppost()

wp_post.post_title = post.article_name

wp_post.post_content = post.content

wp_post.post_excerpt = post.short_introduction

wp_post.post_status = "publish"

session_wp.add(wp_post)

session_wp.commit()

# 一下是wp_terms表,term表可以提前把標籤和分類先做插入,這裡只做查詢

terms = spider_session.query(spiderdata).filter(spiderdata.id == 1).all()

# 插入wp_terms

for term in terms:

# 在wp_terms 中找到這個標籤對應的id。前提是你已經插入。

term_id = session_wp.query(wpterm).filter(wpterm.name == term.name).first()

# 對wp_term_relationships進行處理

object_id = wp_post.id

wp_relationship = wptermrelationships()

wp_relationship.object_id = object_id

wp_relationship.term_id = term_id

session_wp.add(wp_relationship)

session_wp.commit()

以上**只是提供思路實際應用中注意異常處理等。

還能想起但是第一次接觸wordpress時的一臉懵逼,沉下心研究一段時間你就會發現,原來很多事情在你全力做了之後就會變得很簡單。

以上。

php 後台資料庫與前台請求結合

get請求 預設 get獲取 get請求中引數值 username get username password get password echo username username.password password post請求,開啟網頁沒值 獲取 body 體中,這兩個變數的值 usernam...

關於pymysql讀取不到後台資料庫更新的資料

今天做乙個監控後台資料庫資料的程式中,使用了pymysql,但是在每次使用游標物件select物件時資料都是乙個樣。原因在於 1.mysql的儲存引擎inoodb的事務隔離級別預設是 可重複讀 repeatable read 例如a客戶端事務未提交,而b客戶端事務修改了資料,a客戶端只能讀取到小於等...

XML JSON 後台資料

xml 後台資料的長相 yibella 23dancing coding xml 有兩種解析方式第一種,是使用sax方式,其中使用的是 模式,遵循的nsxmlparserdelegate 詳情 第二種方式,是使用dom解析,使用的是第三方庫檔案gdataxml node 詳情 json 後台資料的長...