tornado_api.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. from wechat_action.sql_models import DB
  2. from settings import using_config
  3. import tornado.ioloop
  4. import tornado.web
  5. import json
  6. from wechat_action import sql_tools
  7. # TODO:需要添加上supervisor,来维护进程
  8. # TODO:有时间需要对tornado进行改进
  9. db = DB(config=using_config)
  10. # 1.实现本机服务
  11. # 2.实现线上docker-selenium服务
  12. class login(tornado.web.RequestHandler):
  13. # 0.登录,
  14. # 1.成功---
  15. # 2.不超过,返回一个二维码
  16. def get(self):
  17. self.write("Hello, world")
  18. def post(self):
  19. # 利用request属性
  20. # 取出客户端提交的json字符串
  21. jsonbyte = self.request.body
  22. print('二进制格式json字符串:', jsonbyte)
  23. jsonstr = jsonbyte.decode('utf8') # 解码,二进制转为字符串
  24. print('json字符串:', jsonstr)
  25. # 从json字符串转换为json对象,然后利用json对象提供的api
  26. # 从json字符串中取出我想要的内容(解析json字符串)
  27. jsonobj = json.loads(jsonstr) # 将字符串转为json对象
  28. day = jsonobj.get('day') # 就可以用api取值
  29. title = jsonobj.get('title')
  30. print('day: ', day, ', title: ', title)
  31. self.write('hello post')
  32. class create_ad_plan(tornado.web.RequestHandler):
  33. # 1.批量创建计划
  34. # 返回创建计划是否已经开始
  35. def post(self):
  36. # 1.
  37. pass
  38. class create_ad_show(tornado.web.RequestHandler):
  39. # 1.批量创建落地页
  40. pass
  41. # TODO:数据库创建一批虚拟数据,供明天测试使用起
  42. # TODO:wechat_info,human_info 这两张表有空时需要进行对应改进
  43. class ad_status(tornado.web.RequestHandler):
  44. # 1.创建情况
  45. pass
  46. class ad_human_info(tornado.web.RequestHandler):
  47. # 1.人群包获取
  48. def get(self):
  49. # 0.是否刷新
  50. # 1.获取userid,以及是否刷新
  51. user_id = self.get_argument("user_id", None)
  52. is_refresh = self.get_argument("is_refresh", None)
  53. if is_refresh:
  54. # 1.返回二维码链接
  55. # ----1.查看cookie是否可用
  56. pass
  57. else:
  58. # 1.查看是否在刷新,
  59. # 在刷新中,
  60. # 返回正在刷新
  61. # -------不管上面逻辑让他们多刷新几次
  62. # 不在刷新
  63. # 返回对应数据
  64. # 2.获取userid对应数据
  65. sql_session = db.DBSession()
  66. sql_tools.get_human_info(sql_session=sql_session,user_id=user_id)
  67. pass
  68. class ad_wechat_info():
  69. # 1.公众号相关信息获取
  70. def get(self):
  71. pass
  72. def make_app():
  73. return tornado.web.Application([
  74. (r"/create_ad_plan", create_ad_plan),
  75. (r"/create_ad_show", create_ad_show),
  76. ], debug=True)
  77. if __name__ == "__main__":
  78. app = make_app()
  79. app.listen(8888)
  80. tornado.ioloop.IOLoop.current().start()