import base64 import os import requests, json wp_url = "http://192.168.81.231/wp-json/wp/v2/" user = "api" passwd = "JBu7 Q2oZ rDze okev nhHo jXHM" get = "get" post = "post" def req(method="get", path="", params=None): if params is None: params = {} url = wp_url + path if method == "get": response = requests.get(url, params=params, auth=(user, passwd)) elif method == "post": response = requests.post(url, data=params, auth=(user, passwd)) else: raise Exception("method error") return response.json() def get_posts(): params = { "per_page": 100 } return req(get, "posts", params) # 发布 def post_post(title, content, featured_media=None): data = { "title": title, "content": content, "status": "publish" } if featured_media: data["featured_media"] = featured_media return req(post, "posts", data) def upload_media(filepath): data = open(filepath, 'rb').read() filename = os.path.basename(filepath) # get content type import mimetypes mime_type = mimetypes.guess_type(filename)[0] if mime_type is None: mime_type = 'image/jpg' res = requests.post(url=wp_url + 'media', data=data, headers={'Content-Type': mime_type, 'Content-Disposition': 'attachment; filename=%s' % filename}, auth=(user, passwd)) # pp = pprint.PrettyPrinter(indent=4) ## print it pretty. # pp.pprint(res.json()) #this is nice when you need it new_dict = res.json() new_id = new_dict.get('id') # link = new_dict.get('guid').get("rendered") return new_id def get_post_url(post_id): # get rendered url res = req(get, "posts/" + str(post_id)) print(res) return res['link'] def get_media_url(media_id): # get rendered url res = req(get, "media/" + str(media_id)) # if exists if res['guid']['rendered']: return res['guid']['rendered'] return None