与其他 Web 框架集成

WeRoBot 可以作为独立服务运行,也可以集成在其他 Web 框架中一同运行。

Django

WeRoBot 支持 Django 1.8+。

首先,在一个文件中写好你的微信机器人

  1. # Filename: robot.py
  2. from werobot import WeRoBot
  3. myrobot = WeRoBot(token='token')
  4. @myrobot.handler
  5. def hello(message):
  6. return 'Hello World!'

然后,在你 Django 项目中的 urls.py 中调用 werobot.contrib.django.make_view() ,将 WeRoBot 集成进 Django

  1. from django.conf.urls import patterns, include, url
  2. from werobot.contrib.django import make_view
  3. from robot import myrobot
  4. urlpatterns = patterns('',
  5. url(r'^robot/', make_view(myrobot)),
  6. )

werobot.contrib.django.make_view(robot)

为一个 BaseRoBot 生成 Django view。

  • 参数

    robot – 一个 BaseRoBot 实例。

    返回

    一个标准的 Django view

Flask

首先, 同样在文件中写好你的微信机器人

  1. # Filename: robot.py
  2. from werobot import WeRoBot
  3. myrobot = WeRoBot(token='token')
  4. @myrobot.handler
  5. def hello(message):
  6. return 'Hello World!'

然后, 在 Flask 项目中为 Flask 实例集成 WeRoBot

  1. from flask import Flask
  2. from robot import myrobot
  3. from werobot.contrib.flask import make_view
  4. app = Flask(__name__)
  5. app.add_url_rule(rule='/robot/', # WeRoBot 挂载地址
  6. endpoint='werobot', # Flask 的 endpoint
  7. view_func=make_view(myrobot),
  8. methods=['GET', 'POST'])

werobot.contrib.flask.make_view(robot)

为一个 BaseRoBot 生成 Flask view。

Usage

  1. from werobot import WeRoBot
  2. robot = WeRoBot(token='token')
  3. @robot.handler
  4. def hello(message):
  5. return 'Hello World!'
  6. from flask import Flask
  7. from werobot.contrib.flask import make_view
  8. app = Flask(__name__)
  9. app.add_url_rule(rule='/robot/', # WeRoBot 的绑定地址
  10. endpoint='werobot', # Flask 的 endpoint
  11. view_func=make_view(robot),
  12. methods=['GET', 'POST'])
  • 参数

    robot – 一个 BaseRoBot 实例

    返回

    一个标准的 Flask view

Bottle

在你的 Bottle App 中集成 WeRoBot

  1. from werobot import WeRoBot
  2. myrobot = WeRoBot(token='token')
  3. @myrobot.handler
  4. def hello(message):
  5. return 'Hello World!'
  6. from bottle import Bottle
  7. from werobot.contrib.bottle import make_view
  8. app = Bottle()
  9. app.route('/robot', # WeRoBot 挂载地址
  10. ['GET', 'POST'],
  11. make_view(myrobot))

werobot.contrib.bottle.make_view(robot)

为一个 BaseRoBot 生成 Bottle view。

Usage

  1. from werobot import WeRoBot
  2. robot = WeRoBot(token='token')
  3. @robot.handler
  4. def hello(message):
  5. return 'Hello World!'
  6. from bottle import Bottle
  7. from werobot.contrib.bottle import make_view
  8. app = Bottle()
  9. app.route(
  10. '/robot', # WeRoBot 挂载地址
  11. ['GET', 'POST'],
  12. make_view(robot)
  13. )
  • 参数

    robot – 一个 BaseRoBot 实例

    返回

    一个标准的 Bottle view

Tornado

最简单的 Hello World

  1. import tornado.ioloop
  2. import tornado.web
  3. from werobot import WeRoBot
  4. from werobot.contrib.tornado import make_handler
  5. myrobot = WeRoBot(token='token')
  6. @myrobot.handler
  7. def hello(message):
  8. return 'Hello World!'
  9. application = tornado.web.Application([
  10. (r"/robot/", make_handler(myrobot)),
  11. ])
  12. if __name__ == "__main__":
  13. application.listen(8888)
  14. tornado.ioloop.IOLoop.instance().start()

werobot.contrib.tornado.make_handler(robot)

为一个 BaseRoBot 生成 Tornado Handler。

Usage

  1. import tornado.ioloop
  2. import tornado.web
  3. from werobot import WeRoBot
  4. from tornado_werobot import make_handler
  5. robot = WeRoBot(token='token')
  6. @robot.handler
  7. def hello(message):
  8. return 'Hello World!'
  9. application = tornado.web.Application([
  10. (r"/", make_handler(robot)),
  11. ])
  • 参数

    robot – 一个 BaseRoBot 实例。

    返回

    一个标准的 Tornado Handler