Django 위 챗 공식 플랫폼 구축 상세 설명 1
4700 단어 pythondjango위 챗 공식 플랫폼 접속
파 이 썬 버 전: 2.7.10
Django 버 전: 1.5
개발 플랫폼: 시 나 닷 컴 SAE
전제: django 기본 생 성 응용 절 차 를 이해 합 니 다.위 챗 공식 플랫폼 의 공식 매 뉴 얼 에 따라 한 걸음 한 걸음 완성 된다.
오늘 했 어 요?
나 는 이 위 챗 기능 을 예전 에 SAE 에서 django 로 만 든 블 로그 에 추가 했다.
위 챗 공공 개발 자 문서 의 첫 번 째 단계: 접속
http://mp.weixin.qq.com/wiki/16/1e87586a83e0e121cc3e808014375b74.html
1. wechat 모듈 을 직접 추가:
python manage.py startapp wechat
2. settings. py 파일 에 INSTALLAPPS 에 'wechat' 를 추가 합 니 다. 뒤에 쉼표 가 있 는 것 을 잊 지 마 세 요.
3. settings. py 와 같은 등급 의 디 렉 터 리 에 있 는 urls. py 에 추가:
url (r '^ wechat /', include ('wechat. urls'), \ # 여기 도 뒤에 쉼표 붙 이 는 거 잊 지 마 세 요.
4. 현재 wechat 디 렉 터 리 에 들 어가 urls. py 를 만 들 고 다음 과 같은 내용 을 추가 합 니 다.
from django.conf.urls import patterns, include, url
from .views import WeChat
urlpatterns = patterns('',
url(r'^$', WeChat.as_view()),
)
이 안 주의: 위 챗 은 우리 가 views. py 에서 만 들 고자 하 는 자신의 클래스 입 니 다.제 가 url 에서 WeChat. as 를 사 용 했 거 든 요.view (), 그래서 저 는 django 의 보기 류 를 사용 하여 완성 하려 고 합 니 다.물론 위 챗 을 보기 함수 로 정의 할 수 있 습 니 다. 즉, 이와 같은 쓰기 입 니 다.
from django.conf.urls import patterns, include, url
from .views import WeChat
urlpatterns = patterns('',
url(r'^$', WeChat),
)
여기 서 저 는 사실 보기 류 를 사용 하여 완성 할 때 문제 가 생 겼 습 니 다. 저도 python 과 django 를 처음 배 웠 기 때 문 입 니 다.이 문 제 는 뒤에 언급 될 것 이다.
이제 우 리 는 views. py 에 가서 우리 의 WeChat 를 완성 할 수 있 습 니 다. 그것 을 보기 류 로 실현 하 든 보기 함수 로 실현 하 든.
5. wechat 디 렉 터 리 의 views. py 에 다음 과 같은 내용 을 추가 합 니 다.
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.generic.base import View
from django.template import loader, Context
from xml.etree import ElementTree as ET
import time
import hashlib
class WeChat(View):
# , , 。 django csrf
# @csrf_exempt 。
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super(WeChat, self).dispatch(*args, **kwargs)
def get(self, request):
# ,
signature = request.GET.get('signature', None)
timestamp = request.GET.get('timestamp', None)
nonce = request.GET.get('nonce', None)
echostr = request.GET.get('echostr', None)
# token , Token
token = ' token , '
# token,timestamp, nonce ,
hashlist = [token, timestamp, nonce]
hashlist.sort()
#
hashstr = ''.join([s for s in hashlist])
# python sha1 , , 。
hashstr = hashlib.sha1(hashstr).hexdigest()
# ,
# , echostr
if hashstr == signature:
return HttpResponse(echostr)
지금 제 가 앞에서 말씀 드 린 문제 하 나 를 말씀 드 리 려 고 합 니 다. 저 는 보기 류 를 사 용 했 습 니 다. 그리고 안에 get 방법 을 정 의 했 습 니 다. 잠시 후에 post 방법 도 정의 할 것 입 니 다. 여기 있 는 @ csrf 에 주의 하 세 요.exempt 이 장식 기 는 dispatch 위 에 놓 았 습 니 다. 그러나 처음에 저 는 get 과 post 방법 에 각각 놓 았 습 니 다. 그래서 저 는 사용자 의 텍스트 정 보 를 받 고 텍스트 메 시 지 를 사용자 에 게 되 돌려 주 었 습 니 다. '이 공중 번 호 는 잠시 서 비 스 를 제공 할 수 없 으 니 잠시 후에 다시 시도 하 십시오' 라 는 문제 가 발생 했 습 니 다.나중에 인터넷 에서 오랫동안 해결 방법 을 찾 았 는데 마침내 한 형제 도 만 나 서 해결 했다. 바로 @ csrf 를exempt 는 dispatch 위 에 놓 습 니 다. django 는 보기 류 를 사용 할 때 dispatch 라 는 방법 으로 먼저 할당 되 기 때 문 입 니 다.보기 류 를 사용 하지 않 고 wechat 방법 만 정의 했다 면 @ csrfexemt 는 당신 의 wechat 방법 위 에 올 려 놓 으 면 됩 니 다. 물론 이곳 의 wechat 는 제 가 지은 이름 일 뿐 입 니 다. 당신 은 당신 이 지은 이름 을 완성 할 수 있 습 니 다. urls. py 에서 사용 하 는 것 과 같 으 면 됩 니 다.
다음은 위 챗 공식 플랫폼 - > 개발 자 센터 에서 어떻게 설정 하 는 지 알려 드 리 겠 습 니 다.
1. URL:
나의 SAE 의 주 소 는:http://nowtodo.sinaapp.com
그리고 제 가 django 에서 wechat 에 설정 한 url 맵 관 계 는 url (r '^ wechat /', include ('wechat. urls') 입 니 다.
그래서 제 SAE 주소 에 / wechat / 를 추가 합 니 다. 제 가 작성 한 URL 은:
http://nowtodo.sinaapp.com/wechat/
2. Token
Token 은 우리 get 방법 에서 설정 한 것 입 니 다:
token = ' token , '
문서 의 알림: 영어 나 숫자 여야 합 니 다. 길 이 는 3 - 32 문자 입 니 다.
3. EncodingAESKey
이 값 은 상관 하지 않 아 도 됩 니 다. 물론 '랜 덤 생 성' 을 누 르 면 다시 생 성 될 수 있 습 니 다.
4. 메시지 복호화 방식
이 메시지 암호 화 방식: 저 는 명문 모드 를 사용 합 니 다.
이제 설정 이 완료 되면 '제출' 을 누 르 면 인증 이 완 료 될 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.