python基于django的博客系统(利用django+wechat-python-sdk 创建微信服务器接入的方法)
类别:脚本大全 浏览量:2150
时间:2022-01-27 01:32:39 python基于django的博客系统
利用django+wechat-python-sdk 创建微信服务器接入的方法1、版本说明 :python 2.7.10, django (1.6.11.6),centos7
2、步骤说明:
a、django 建立项目
|
django - admin.py startproject projtest |
之后启动服务器,看看是否正确:
|
cd projtest |
配置 projtest子目录下面的setting.py文件,允许外部机器访问
|
[root@vm_4_128_centos projtest] # vim projtest/settings.py |
把其中allowed_hosts改成如下
|
allowed_hosts = [ '*' ] |
然后启动,外部机器 看看能否访问到:
|
# python manage.py runserver 0.0.0.0:80 |
b、创建应 用wechat
|
[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
|
[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文件,加入应用
目录结构如下:
|
| - - 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
|
` - - 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文件,代码如下(参考网上例子):
|
#!/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
|
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、微信提交配置通过
|
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
您可能感兴趣
- pythonhash使用(详解python中的hashlib模块的使用)
- python获取当前时间戳(Python基于datetime或time模块分别获取当前时间戳的方法实例)
- python高德地图可视化(利用python和百度地图API实现数据地图标注的方法)
- ipython命令行查看文件夹(对IPython交互模式下的退出方法详解)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
- 100道python真实面试题附答案(值得收藏的10道python 面试题)
- python中可以改变的数据类型(Python常见数据类型转换操作示例)
- python面向对象编写案例(Python面向对象程序设计示例小结)
- python dict 操作(Python中dict和set的用法讲解)
- python序列化图解(对Python3 序列解包详解)
- python开发网站github(使用 Python 玩转 GitHub 的贡献板推荐)
- python 绕过密码(一小段Python代码,破解加密zip文件的密码)
- python3标准库资源(Python3标准库总结)
- opencv轮廓模糊识别(Opencv+Python实现图像运动模糊和高斯模糊的示例)
- python渗透攻击(Python实现DDos攻击实例详解)
- python分支的描述(学习python分支结构)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
- 这部民警编演的红色话剧,讲述了一个不断追寻的故事(这部民警编演的红色话剧)
- 日本菜有什么好吃(日本菜有什么好吃的做法)
热门推荐
- 什么是ftp和sftp(浅谈 FTP、FTPS 与 SFTP的区别)
- dede收录查询插件(dede:likearticle文章标签和tag标签关联错误解决方法)
- dedecms织梦小程序插件(批量删除织梦dedecms文档搜索关键词的方法)
- jquery 增加表格(jquery实现表格无缝滚动)
- 宝塔nginx装哪个版本(宝塔面板nginx关闭状态,启动不了解决办法)
- docker容器的使用过程(详解docker容器的层的概念)
- apache服务器配置伪静态(apache中通过mod_rewrite实现伪静态页面的方法)
- phpstudy使用教程(phpstudy是什么)
- mysql索引的类型和方法(MySQL覆盖索引的使用示例)
- dedecms搜索功能怎么设置详细(织梦Dedecms软件频道下载次数真实显示的权宜修改)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9