与其他 Web 框架集成

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

Django

WeRoBot 支持 Django 1.6+。

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

# Filename: robot.py

from werobot import WeRoBot

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

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

from django.conf.urls import patterns, include, url
from werobot.contrib.django import make_view
from robot import robot

urlpatterns = patterns('',
    url(r'^robot/', make_view(robot)),
)
werobot.contrib.django.make_view(robot)

为一个 BaseRoBot 生成 Django view。

参数:robot – 一个 BaseRoBot 实例。
返回:一个标准的 Django view

Flask

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

# Filename: robot.py

from werobot import WeRoBot

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

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

from flask import Flask
from robot import robot
from werobot.contrib.flask import make_view

app = Flask(__name__)
app.add_url_rule(rule='/robot/', # WeRoBot 挂载地址
                 endpoint='werobot', # Flask 的 endpoint
                 view_func=make_view(robot),
                 methods=['GET', 'POST'])
werobot.contrib.flask.make_view(robot)

为一个 BaseRoBot 生成 Flask view。

Usage

from werobot import WeRoBot

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

from flask import Flask
from werobot.contrib.flask import make_view

app = Flask(__name__)
app.add_url_rule(rule='/robot/', # WeRoBot 的绑定地址
                endpoint='werobot', # Flask 的 endpoint
                view_func=make_view(robot),
                methods=['GET', 'POST'])
参数:robot – 一个 BaseRoBot 实例
返回:一个标准的 Flask view

Bottle

在你的 Bottle App 中集成 WeRoBot

from werobot import WeRoBot

robot = WeRoBot(token='token')

@robot.handler
def hello(message):
    return 'Hello World!'

from bottle import Bottle
from werobot.contrib.bottle import make_view

app = Bottle()
app.route('/robot',  # WeRoBot 挂载地址
         ['GET', 'POST'],
         make_view(robot))
werobot.contrib.bottle.make_view(robot)

为一个 BaseRoBot 生成 Bottle view。

Usage

from werobot import WeRoBot

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

from bottle import Bottle
from werobot.contrib.bottle import make_view

app = Bottle()
app.route(
    '/robot',  # WeRoBot 挂载地址
    ['GET', 'POST'],
    make_view(robot)
)
参数:robot – 一个 BaseRoBot 实例
返回:一个标准的 Bottle view

Tornado

最简单的 Hello World

import tornado.ioloop
import tornado.web
from werobot import WeRoBot
from werobot.contrib.tornado import make_handler

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

application = tornado.web.Application([
    (r"/robot/", make_handler(robot)),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
werobot.contrib.tornado.make_handler(robot)

为一个 BaseRoBot 生成 Tornado Handler。

Usage

import tornado.ioloop
import tornado.web
from werobot import WeRoBot
from tornado_werobot import make_handler

robot = WeRoBot(token='token')


@robot.handler
def hello(message):
    return 'Hello World!'

application = tornado.web.Application([
    (r"/", make_handler(robot)),
])
参数:robot – 一个 BaseRoBot 实例。
返回:一个标准的 Tornado Handler