gpt4 book ai didi

利用django+wechat-python-sdk 创建微信服务器接入的方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章利用django+wechat-python-sdk 创建微信服务器接入的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、版本说明 :python 2.7.10, django (1.6.11.6),centos7 。

2、步骤说明:

a、django 建立项目 。

?
1
django - admin.py startproject projtest

之后启动服务器,看看是否正确:

?
1
cd projtest

配置 projtest子目录下面的setting.py文件,允许外部机器访问 。

?
1
[root@vm_4_128_centos projtest] # vim projtest/settings.py

把其中allowed_hosts改成如下 。

?
1
allowed_hosts = [ '*' ]

然后启动,外部机器 看看能否访问到:

?
1
# python manage.py runserver 0.0.0.0:80

利用django+wechat-python-sdk 创建微信服务器接入的方法

b、创建应 用wechat 。

?
1
2
3
[root@vm_4_128_centos projtest] # python manage.py startapp wechat
[root@vm_4_128_centos projtest] # ls
manage.py projtest wetchat

c、安装wechat_sdk 。

?
1
2
3
4
5
6
[root@vm_4_128_centos projtest] # pip install wechat-sdk
requirement already satisfied: wechat - sdk in / usr / lib / python2. 7 / site - packages
requirement already satisfied: six = = 1.10 . 0 in / usr / lib / python2. 7 / site - packages ( from wechat - sdk)
requirement already satisfied: requests = = 2.6 . 0 in / usr / lib / python2. 7 / site - packages ( from wechat - sdk)
requirement already satisfied: pycrypto = = 2.6 . 1 in / usr / lib64 / python2. 7 / site - packages ( from wechat - sdk)
requirement already satisfied: xmltodict = = 0.9 . 2 in / usr / lib / python2. 7 / site - packages ( from wechat - sdk)

d、修改projtest/projtest/setting.py文件,加入应用 。

目录结构如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| - - manage.py
| - - projtest
|  | - - __init__.py
|  | - - __init__.pyc
|  | - - settings.py
|  | - - settings.pyc
|  | - - urls.py
|  | - - urls.pyc
|  | - - wsgi.py
|  ` - - wsgi.pyc
` - - wetchat
   | - - __init__.py
   | - - admin.py
   | - - models.py
   | - - tests.py
   ` - - views.py

vim projtest/settings.py 。

?
1
2
3
4
5
6
7
8
9
` - - wetchatinstalled_apps = (
   'django.contrib.admin' ,
   'django.contrib.auth' ,
   'django.contrib.contenttypes' ,
   'django.contrib.sessions' ,
   'django.contrib.messages' ,
   'django.contrib.staticfiles' ,
   'wechat' ,
)

注:应用名称后面要有逗号 。

e、在wechat目录下,重写views.py文件,代码如下(参考网上例子):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/python
# -*- coding: utf-8 -*-
# create your views here.
from django.shortcuts import render
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 wechat_sdk import wechatbasic
token = 'zwbswx'
 
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):
   wechat = wechatbasic(token = token)
   if wechat.check_signature(signature = request.get[ 'signature' ],
                timestamp = request.get[ 'timestamp' ],
                nonce = request.get[ 'nonce' ]):
     if request.method = = 'get' :
       rsp = request.get.get( 'echostr' , 'error' )
     else :
       wechat.parse_data(request.body)
       message = wechat.get_message()
       rsp = wechat.response_text(u '消息类型: {}' . format (message. type ))
   else :
     rsp = wechat.response_text( 'check error' )
   return httpresponse(rsp)

f、修改projtest/projtest/urls.py ,添加映射到微信应用(类似servlet) 。

[root@vm_4_128_centos projtest]# vim projtest/urls.py 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.conf.urls import patterns, include, url
from django.contrib import admin
from wechat import views as wt_views ##增加本行
admin.autodiscover()
 
urlpatterns = patterns('',
   # examples:
   # url(r'^$', 'projtest.views.home', name='home'),
   # url(r'^blog/', include('blog.urls')),
 
   url(r '^admin/' , include(admin.site.urls)),
   url(r '^wechat' , wt_views.wechat.as_view()), ##增加本行
 
)

) 。

g、微信提交配置通过 。

?
1
2
3
05 / jun / 2017 03 : 31 : 01 ] "get /wechat?signature=8a75afb21cf821bbc4e2535119aa05be5c987112&echostr=13869464754252084605×tamp=1496633461&nonce=3957453572 http/1.0" 301 0
 
[ 05 / jun / 2017 03 : 31 : 01 ] "get /wechat/?signature=8a75afb21cf821bbc4e2535119aa05be5c987112&echostr=13869464754252084605×tamp=1496633461&nonce=3957453572 http/1.0" 200 20

以上这篇利用django+wechat-python-sdk 创建微信服务器接入的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/zwbill/article/details/72864000 。

最后此篇关于利用django+wechat-python-sdk 创建微信服务器接入的方法的文章就讲到这里了,如果你想了解更多关于利用django+wechat-python-sdk 创建微信服务器接入的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com