深入Wordpress數據庫結構,研究一下用Python程序發帖
2018-10-07
约 1039 字
预计阅读 3 分钟
學了Python,感覺這個語言用起來更順手。
各類的代碼庫也非常全,用來做內容獲取再好不過了。
可是如果要在前端顯示出來,就需要用Django或者Flash那種平台,學習周期也比較長。
現在用Wordpress玩博客,感覺如果優化配置好了,MySQL也沒有傳說中的效率那麼差,且Wordpress現成的模板插件也足夠多。
可以直接用來做前端,省下大量去學習新的平台的時間。
故此可以用Python作為後台程序,MYSQL作為接口,Wordpress作為前端。
這樣一個小中型的網站框架就足以搭建起來。
為了深入了解到Wordpress如何設計數據庫的。專門重裝了一個wordpress站點。然後用PHP MY ADMIN來看看數據庫
Wordpress設計了12個表:
最主要的肯定是posts表了。看一下其結構:
也就是我們用python來發帖的話,主要寫入內容到這個表裏.
以前Wordpress提供了XML-RPC的接口,幾年前曾用delphi發過一次帖。知其然而不知其所以然,故此也沒太明白其中原理。
這次看Wordpress的新版本,也沒有XML-RPC的接口了,不知何故取消掉。
這次本著“究竟”的原則,還是直接用最基本的操作Mysql來解決這個問題吧。
生成一個addpost.py.內貼
運行一下,出現“no module name: mysql".
好吧,需要再安裝
運行沒有問題。到網站上一看果然增加了一個帖子
這個目錄是未分類的。如果打算放在test分類目錄下。再看一下fx_terms的表內容。這裏就放著目錄的信息。
看到test目錄的term_id是1.則再增加幾行代碼
運行一下。到網站一看,有了
那如何給帖子自動增加一個Featured image。
這個需要自己在wordpress裏麵上傳圖片,然後在數據庫裏檢索其id,然後再將帖子跟圖片的id指定。
比如我知道我上傳了一個文件名叫mikito-tateisi-333584-unsplash.jpg,(感謝攝影師Mikito Tateisi)
加下列代碼就可以找到其id,並將之指定為該帖Featured Image
好,再運行一次。加熱圖的帖子也能夠用Python自動添加了。
隻要抓住基礎。用Python-Mysql-Wordpress就可以生成很多變化,就當一個小玩具吧 :)
各類的代碼庫也非常全,用來做內容獲取再好不過了。
可是如果要在前端顯示出來,就需要用Django或者Flash那種平台,學習周期也比較長。
現在用Wordpress玩博客,感覺如果優化配置好了,MySQL也沒有傳說中的效率那麼差,且Wordpress現成的模板插件也足夠多。
可以直接用來做前端,省下大量去學習新的平台的時間。
故此可以用Python作為後台程序,MYSQL作為接口,Wordpress作為前端。
這樣一個小中型的網站框架就足以搭建起來。
為了深入了解到Wordpress如何設計數據庫的。專門重裝了一個wordpress站點。然後用PHP MY ADMIN來看看數據庫
Wordpress設計了12個表:
最主要的肯定是posts表了。看一下其結構:
也就是我們用python來發帖的話,主要寫入內容到這個表裏.
以前Wordpress提供了XML-RPC的接口,幾年前曾用delphi發過一次帖。知其然而不知其所以然,故此也沒太明白其中原理。
這次看Wordpress的新版本,也沒有XML-RPC的接口了,不知何故取消掉。
這次本著“究竟”的原則,還是直接用最基本的操作Mysql來解決這個問題吧。
生成一個addpost.py.內貼
import mysql.connector
import datetime
mydb = mysql.connector.connect(
host="127.0.0.1",
user="yourusername",
passwd="yourpassword",
database="wordpress"
)
mycursor = mydb.cursor()
dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
sql = "INSERT INTO fx_posts (post_content, post_title,post_name, \
post_date,post_date_gmt,post_modified, post_modified_gmt, \
post_excerpt,to_ping,pinged,post_content_filtered ) \
VALUES (%s, %s,%s, %s,%s,%s, %s,%s, %s,%s, %s)"
val = ("This is post by python script", "python test","python-post",dt,dt,dt,dt,'','','','')
mycursor.execute(sql, val)
mydb.commit()
運行一下,出現“no module name: mysql".
好吧,需要再安裝
sudo pip3 install mysql-connector-python
運行沒有問題。到網站上一看果然增加了一個帖子
這個目錄是未分類的。如果打算放在test分類目錄下。再看一下fx_terms的表內容。這裏就放著目錄的信息。
看到test目錄的term_id是1.則再增加幾行代碼
......
lastid=mycursor.lastrowid
sql = "INSERT INTO fx_term_relationships (object_id, term_taxonomy_id) \
VALUES (%s, %s)"
val = (str(lastid),"1")
mycursor.execute(sql, val)
mydb.commit()
運行一下。到網站一看,有了
那如何給帖子自動增加一個Featured image。
這個需要自己在wordpress裏麵上傳圖片,然後在數據庫裏檢索其id,然後再將帖子跟圖片的id指定。
比如我知道我上傳了一個文件名叫mikito-tateisi-333584-unsplash.jpg,(感謝攝影師Mikito Tateisi)
加下列代碼就可以找到其id,並將之指定為該帖Featured Image
sql = "SELECT ID FROM fx_posts WHERE post_title ='mikito-tateisi-333584-unsplash' and post_mime_type='image/jpeg'"
mycursor.execute(sql)
myresult = mycursor.fetchone()
sql = "INSERT INTO fx_postmeta (post_id, meta_key, meta_value) \
VALUES (%s, %s, %s)"
val = (str(lastid),"_thumbnail_id",str(myresult[0]))
mycursor.execute(sql, val)
mydb.commit()
好,再運行一次。加熱圖的帖子也能夠用Python自動添加了。
隻要抓住基礎。用Python-Mysql-Wordpress就可以生成很多變化,就當一個小玩具吧 :)
相关文章:
- 2018/09/29 Wordpress前端+Python後台有機結合做一個今日熱數的插件
- 2018/08/24 重啟博客
- 2018/10/03 將Manticore Search與Wordpress數據庫結合起來
- 2018/09/30 安裝測試Manticore Search
- 2018/09/24 發布第一個Wordpress插件,在編輯器添加尋找替換功能按鈕
Jesse Lau
網名遁去的一,簡稱遁一。2012年定居新西蘭至今,自由職業者。
本文采用知識共享署名 4.0 國際許可協議進行許可。簡而言之,可隨意轉發轉載,轉載請注明出處。