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.

42 lines
1.6KB

  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. # 创建draft状态的图书
  21. payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'create', [{'name': 'Book 1', 'state': 'draft'}])
  22. res = requests.post(json_endpoint, data=payload, headers=headers).json()
  23. print("Has create access:", res['result'])
  24. book_id = res['result']
  25. # 通过调用make_available方法来修改图书状态
  26. payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'make_available', [book_id])
  27. res = requests.post(json_endpoint, data=payload, headers=headers).json()
  28. # 在调用方法后查看图书状态
  29. payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'read', [book_id, ['name', 'state']])
  30. res = requests.post(json_endpoint, data=payload, headers=headers).json()
  31. print("Book state after the method call:", res['result'])
  32. else:
  33. print("Failed: wrong credentials")
上海开阖软件有限公司 沪ICP备12045867号-1