Django+WeRobot自動返信を実現
Django+WeRobot自動返信を実現
周知のように、私は微信の公衆番号を作って、それから1つの機能を提供して、あなたがキーワードを書いて、私はあなたにこのキーワードが正しい内容に返事して、だから今日この機能がどのように実現したのかを話します.
一、Djangoのインストールと構成
Djangoのインストール
もし私たちがPythonをインストールしたとしたら、バージョンは、あまり重要ではありません.私は今回3.8.6というバージョンを使っています.サーバーでは3.6.9バージョンを使っています.Djangoですか.最新版です.今回は主にDjangoの公式ドキュメントを参考にしています.
Djangoプロジェクトの作成
二、werobotのインストール
WeRoBotは、MITプロトコルを採用して発表された微信公衆番号の開発フレームワークです.
オープンソースアドレス:https://github.com/offu/WeRoBotドキュメントアドレス:https://werobot.readthedocs.io/zh_CN/latest/
三、コードを変更する
やっと、コードの変更が始まりました
1.viewsを修正する.py
このファイルは、簡単に言えばすべての機能がここに置かれているので、werobotドキュメントの他のWebフレームワークとの統合によると、viewファイルを変更します.
2.modelを修正する.pyファイル、データベースの作成
djangoは、オブジェクト向けの方法でデータベース、すなわちORMを処理できるデータベース処理フレームワークを提供しています.したがって、クラスでデータベースを記述するだけでいいのです.
データベースの作成
djangoフレームワーク、デフォルトではsqliteデータベースが使用され、データベース名と場所はmysiteのsettingsファイルで変更できます.私は「werobot.db」に変更しました.道理で言えば、私たちはただ1つのクラスを作成しただけで、本当のデータベーステーブルを作成することはできません.一連の操作をしてこそ、本当にデータベースを作成することができます.ここで、ついでに管理者アカウントを作成します.djangoは管理者を持っています.あさって、データベースのデータを管理することができます.やはり力があります.まずsettingsファイルを変更する必要があります
いくつかのコマンドを実行
管理者ユーザーの作成
3.adminを修正する.pyファイル
このファイルの修正は比较的に简単で、1行で、上记が终わった后に管理者のインタフェースでまだ私达が追加したそのデータベースの情报を表示することができなくて、私达はこのファイルの中で1つの登录を行う必要があって、この表を管理者のインタフェースに登录して、表示することができます.
4.urlsを修正する.py
このファイルはurlの解析タスクを管理しています.つまり、urlごとにどのように異なるviewに対応しているのか、それに頼っています.道理から言えば、appごとにurlsがあるはずです.pyファイル、そして全体のurls.pyファイルでincludeを参照すればいいのですが、ここでは、ルーティング関係が1つなので、そんなに複雑にしないで、mysite/urlsを直接修正します.py
四、最終効果
周知のように、私は微信の公衆番号を作って、それから1つの機能を提供して、あなたがキーワードを書いて、私はあなたにこのキーワードが正しい内容に返事して、だから今日この機能がどのように実現したのかを話します.
一、Djangoのインストールと構成
Djangoのインストール
もし私たちがPythonをインストールしたとしたら、バージョンは、あまり重要ではありません.私は今回3.8.6というバージョンを使っています.サーバーでは3.6.9バージョンを使っています.Djangoですか.最新版です.今回は主にDjangoの公式ドキュメントを参考にしています.
# Django
pip install django
Djangoプロジェクトの作成
# Django
django-admin startproject mysite
# ,
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
# app, app app,
# startapp app , , werobot
# , wrob, , app
python manage.py startapp wrob
# ,
wrob/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
二、werobotのインストール
WeRoBotは、MITプロトコルを採用して発表された微信公衆番号の開発フレームワークです.
オープンソースアドレス:https://github.com/offu/WeRoBotドキュメントアドレス:https://werobot.readthedocs.io/zh_CN/latest/
werobot
pip install werobot
三、コードを変更する
やっと、コードの変更が始まりました
1.viewsを修正する.py
このファイルは、簡単に言えばすべての機能がここに置かれているので、werobotドキュメントの他のWebフレームワークとの統合によると、viewファイルを変更します.
#
# , ,
from django.db.models import Model
# Create your views here.
# werobot
from werobot import WeRoBot
# ,
from .models import share
# ,
COMPONENT_APP_ID = 'XXXXXXXXXXXXXXX'
COMPONENT_APP_SECRET = 'XXXXXXXXXXXXXXXXXXXXXX'
COMPONENT_APP_TOKEN = 'XXXXXXXXXXXX'
COMPONENT_ENCODINGAESKEY = 'XXXXXXXXXXXXXXXXXXX'
# werobot , MyRobot
MyRobot = WeRoBot(token=COMPONENT_APP_TOKEN)
MyRobot.config["APP_ID"] = COMPONENT_APP_ID
MyRobot.config["APP_SECRET"] = COMPONENT_APP_SECRET
# , ,
@MyRobot.text
def echo(message):
# , openid,
content = message.content
# 1 , 20 , , ,
if 20 > len(content) >= 1:
# ,
content = content.lower()
#
res = share.objects.filter(key=content).values()
# ,
slist = []
for data in res:
temp = [
data["desc"],
data["link"],
data["secret"]
]
slist.extend(temp)
string = "
".join(slist)
#
return string
# , , ,
@MyRobot.subscribe
def welcome(message):
return ''' , , '''
# , 。。。
# , , , ,
@MyRobot.unsubscribe
def goodbye(message):
return 'nothing'
2.modelを修正する.pyファイル、データベースの作成
djangoは、オブジェクト向けの方法でデータベース、すなわちORMを処理できるデータベース処理フレームワークを提供しています.したがって、クラスでデータベースを記述するだけでいいのです.
from django.db import models
# Create your models here.
#
#
# app _
class share(models.Model):
# 4 , 、 、 、
key = models.CharField(max_length=50)
desc = models.CharField(max_length=200)
link = models.CharField(max_length=100)
secret = models.CharField(max_length=100)
# ,
# print , __str__(self) , return
#
def __str__(self):
return self.desc
データベースの作成
djangoフレームワーク、デフォルトではsqliteデータベースが使用され、データベース名と場所はmysiteのsettingsファイルで変更できます.私は「werobot.db」に変更しました.道理で言えば、私たちはただ1つのクラスを作成しただけで、本当のデータベーステーブルを作成することはできません.一連の操作をしてこそ、本当にデータベースを作成することができます.ここで、ついでに管理者アカウントを作成します.djangoは管理者を持っています.あさって、データベースのデータを管理することができます.やはり力があります.まずsettingsファイルを変更する必要があります
# mysite/settings.py
# INSTALLED_APPS 'wrob.apps.WrobConfig',
# 'wrob.apps.WrobConfig', ,wrob
INSTALLED_APPS = [
'wrob.apps.WrobConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
いくつかのコマンドを実行
# , django
# , wrob/migrations/ 0001_initial.py
python manage.py makemigrations wrob
# wrob app 0001_initial , sql
#
python manage.py sqlmigrate wrob 0001
# , ,
python manage.py migrate
管理者ユーザーの作成
# , , ,
python manage.py createsuperuser
3.adminを修正する.pyファイル
このファイルの修正は比较的に简単で、1行で、上记が终わった后に管理者のインタフェースでまだ私达が追加したそのデータベースの情报を表示することができなくて、私达はこのファイルの中で1つの登录を行う必要があって、この表を管理者のインタフェースに登录して、表示することができます.
from django.contrib import admin
# Register your models here.
from .models import share
admin.site.register(share)
4.urlsを修正する.py
このファイルはurlの解析タスクを管理しています.つまり、urlごとにどのように異なるviewに対応しているのか、それに頼っています.道理から言えば、appごとにurlsがあるはずです.pyファイル、そして全体のurls.pyファイルでincludeを参照すればいいのですが、ここでは、ルーティング関係が1つなので、そんなに複雑にしないで、mysite/urlsを直接修正します.py
from django.contrib import admin
from django.urls import path
# werobot make_view
from werobot.contrib.django import make_view
# app view MyRobot
from wrob.views import MyRobot
urlpatterns = [
path('admin/', admin.site.urls),
# robot:url url, MyRobot , url
#
path('robot/', make_view(MyRobot))
]
四、最終効果