odoo_dev 开发培训作业:图书管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.0KB

  1. import json
  2. import random
  3. import requests
  4. server_url = 'http://localhost:9999'
  5. db_name = 'library_13'
  6. username = 'user2'
  7. password = '098iop'
  8. json_endpoint = "%s/jsonrpc" % server_url
  9. headers = {"Content-Type": "application/json"}
  10. def get_json_payload(service, method, *args):
  11. return json.dumps({"jsonrpc": "2.0", "method": 'call', "params": {
  12. "service": service,
  13. "method": method,
  14. "args": args
  15. }, "id": random.randint(0, 100000000), })
  16. payload = get_json_payload("common", "login", db_name, username, password)
  17. response = requests.post(json_endpoint, data=payload, headers=headers)
  18. user_id = response.json()['result']
  19. # if user_id:
  20. # # 搜索图书id
  21. # search_domain = ['|', ['name', 'ilike', '大圣归来'], ['name', 'ilike', 'sql']]
  22. # payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book',
  23. # 'search', [search_domain], {'limit': 5})
  24. # res = requests.post(json_endpoint, data=payload, headers=headers).json()
  25. # print('Search Result:', res) # ids will be in result keys
  26. #
  27. # # 为图书id 读取数据
  28. # payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book',
  29. # 'read', [res['result'], ['name', 'date_release']])
  30. # res = requests.post(json_endpoint, data=payload, headers=headers).json()
  31. # print('Books data:', res)
  32. # else:
  33. # print("Failed: wrong credentials")
  34. if user_id:
  35. # 对图书 id 进行搜索和读取
  36. search_domain = ['|', ['name', 'ilike', '大圣归来'], ['name', 'ilike', 'sql']]
  37. payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book',
  38. 'search_read', [search_domain, ['name', 'date_release']], {'limit': 5}) #使用search_read()方法来代替 search() 和 read()方法的组合
  39. res = requests.post(json_endpoint, data=payload, headers=headers).json()
  40. print('Books data:', res)
  41. else:
  42. print("Failed: wrong credentials")
上海开阖软件有限公司 沪ICP备12045867号-1