暂终止小程序开发,开始微信公众号的开发,搭建环境很重要
一、环境搭建:
1.python安装,配置环境(/Scripts/ /.exe)
2.安装pycharm,新建django项目
3.MVC等同于MTV
模型(model):定义数据库相关的内容,一般放在models.py文件中。
视图(view):定义HTML等静态网页文件相关,也就是那些html、css、js等前端的东西。
控制器(controller):定义业务逻辑相关,就是你的主要代码。
http://www.cnblogs.com/Leo_wl/p/5824541.html
二、生产环境部署:
1.安装python或
2.wpilauncher.exe安装Fastcgi
3.将wsfastcgi.py加到现在的项目根目录中。
3.IIS /cgi && isapi
http://www.cnblogs.com/haozi0804/p/4717433.html
http://blog.csdn.net/yangzhencheng_001/article/details/40342449
4.处理程序映射
C:\Python27\python.exe|C:\Users\fcuser\PycharmProjects\untitled1\wfastcgi.py
FastcgiModel
5.Fastcgi三个参数的设置
6.web.config的添中
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="%ROOTDIR%" />
<add key="DJANGO_SETTINGS_MODULE" value="mysite.settings" />
</appSettings>
注在iis上配置py运行:
isapi和cgi限制设置 python.exe %s %s 取个名
外理应用映射:同上设置
如果是django需拷贝wsfastcgi.py到根目录下进行环境 参数的设置,且在web.config中将参数设置好。
如果是web.py则不需做以上操作且应注示掉web.config
7.程序池32位true;网站的权限加IIS_IUSR;
8.电商网站
http://django-oscar.readthedocs.io/en/releases-1.4/internals/sandbox.html
https://github.com/django-oscar/django-oscar/
https://tutorial.djangogirls.org/zh/deploy/
https://yq.aliyun.com/articles/88204?spm=5176.8246799.0.0.BnOXod
图片
http://blog.csdn.net/fuwencaho/article/details/41146871
错误解决:
对于生产界面得到static的设置:
python manage.py collectstatic
settings.py
STATIC_URL = ‘/static/’
STATIC_ROOT =‘static’
urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r’^i18n/’, include(‘django.conf.urls.i18n’)),
# The Django admin is not officially supported; expect breakage.
# Nonetheless, it's often useful for debugging.
url(r'^admin/', include(admin.site.urls)),
url(r'', include(application.urls)),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
数据库只读解决
给数据库文件设置这全权限为写入。
django基本知识:https://docs.djangoproject.com/en/1.11/
http://www.runoob.com/django/django-first-app.html
http://code.ziqiangxuetang.com/django/python-django-weixin.html
https://www.w3cschool.cn/django/v6rawozt.html
保持一个好的体力很重要。
学一新知识,要有耐心和信心,任何不切实际的求快都会使自己的身体受到极大的损害。沉下心来,一切都会变得风轻云淡。
连接MySQL :
pip install MySQL-python
前提是装了mysql-connector-c-6.0.2-winx64.msi
由于32位与64位会造成很多不必要的麻烦,很讨厌的一件事情就是事先不知道会有这么大的麻烦,白白浪费了一天多的时间。不过有信心,一切过往都只是一个过程,要有一定的承受力。否则会早早的倒下。
到目前为止可以说微信服务平台的搭建基本完工。真正的开发就要开始。
计划一周内完成。不知切不切实际,可是没有要求,会放任了时间的白白流失。
开发阶段笔记:
djano项目环境的搭建:
1.cmd-python-virtualenv envname(if not virtualenv then pip install)
2.cd envname Scripts\activate
3.pip install django
4.django-admin startproject projname
5.django-admin startapp appname
https://wechat-sdk.doraemonext.com/quickstart/wechatconf/ wechat
1.access-token:获取存储与更新
http://www.ithao123.cn/content-841392.html
https://www.dannysite.com/blog/107/
http://www.jianshu.com/p/e6eb2dbef4c4
https://zhuanlan.zhihu.com/p/20543071(认证连接成功)
对此我基本无语,ssl问题,一切照旧,很无语,开发不难,服务的配置真的是在靠猜,该死的ssl,真的要骂它千万遍,才能解心头之恨。弄得我开始怀疑人生了。真是无语。言归正传,代码没有任何问题,ssl认证在第一次做的时候,也不存在问题,换了一个微信号,服务器不变,一切设置均未变,可就是认证不过,开始怀疑认证需要时间,后实在等不及,换一80口,一切ok,看来不是认证需要时间的问题,那一定是换了微信号的问题,换个号,也没有发生别的变化,做日志追踪,request,也是200成功,那为什么就是不行?人生啊,怎以这么的纠结,就不能明明朗朗的,一切都简简单单的?不甘心继续查,那一定是客户端的问题,客户端调用,https网址调用正常 ,证书服务一切ok,那是什么问题?该死,就这么纠结着,是我没走加密,那就加密吧,可是一旦走了加密,也不一定能过,且过了又怎样?不过是为以后的开发增加复杂程序,我还不需要这么自虐,实在不行,我重下证书,在客户端重新导入证书,一切ok,我疯了,可马上又淡定了,一切就是这个样子,代码如此,纠结得让人郁闷。
这真的是一种磨练,码代码的,都要有耐性。
http://m.blog.csdn.net/article/details?id=46967941(信息接收和发送成功)
用消息接口信息调试
touser为开发者微信号(即公众号名称)
fromuser发信息人的open_Id
测试成功。
需白名单ip的加入。
后台应有自定义菜单,或只是使用在线调试工具也可以完成菜单自定义。
http://www.cnblogs.com/yank/p/3418194.html
菜单按钮格式
https://wechat-sdk.doraemonext.com/official/message/#xml
django快速注册
http://www.cnblogs.com/fnng/p/3744099.html
http://django-user-accounts.readthedocs.io/en/latest/installation.html
https://github.com/mishbahr/django-users2
https://django-users2.readthedocs.io/en/latest/
添加django后台按钮
http://django-admin-tools.readthedocs.io/en/latest/(有些复杂)
http://blog.csdn.net/hshl1214/article/details/45676409
mySQL 65001(utf-8)
utf-8 utf-unicode-ci
http://blog.csdn.net/zhu_free/article/details/50448232(获取用户信息)
http://blog.csdn.net/zhangxinrun/article/details/8095118/(一个书的系统)
http://www.jianshu.com/p/75b1a80246ba(auth2)
https://segmentfault.com/a/1190000007186290
防止代码泄漏
http://www.aspku.com/kaifa/javascript/42699.html
三、微信网页授权
微信网页授权,真想骂它一顿,看开发文档很是简单,本人一直也觉得在此不会有什么太多的坑等着,没想到还是被陷了进去,伴随着牙肿耳朵痛,低烧折磨,终于看到了天日。下面就来看看我跳过的坑:
第一坑:认证文件的远程访问
本人自己配的微信开发服务器,在IIS上做的django,虽配出但总觉得会在使用中会有很多的问题等在某个角落里。认证文档是.txt的,放在根目录下也无法放问得到,首先想到的问题所在便是urlconf的配置问题,那么放在哪个文件夹下呢?并在serveradmin/activity/client.txt可以被访问到呢?以urlconf又该怎以配置,放在activity/static/client.txt,
1.在activity/views.py中配置:
def client(request):
return render(request,“activity/client.html”)
2.在activity/templates/client.html
3.urls配置如下
url(r’^activity/client.txt’,activity_views.client,name=‘client’),
经过以上三步,网页认证文件访问完成
第二坑:网页授权链接,这是个陷阱,看了别人做了,也有自己的思路,我觉得我可以用自己的方法来实现,不存在技术问题,存在的只是细节处理问题。这些细节的处理要逐条分析每一个链接接收数据的形式,包括content-type
请求判断如下:
if “code” in request.GET:
code=request.GET[“code”]
authurl = “https://api.weixin.qq.com/sns/oauth2/access_token?appid=” + WEIXIN_APPID + “&secret=” + WEIXIN_APPSECRET + “&code=” + code + “&grant_type=authorization_code”
return render(request,“activity/detail.html”,{“activity”:act,“authurl”:authurl},content_type=“text/html”)
else:
return HttpResponseRedirect(datacode)
在做第三次链接请求时得用$.ajax来获得最后的结果
参见:http://blog.csdn.net/wyb199026/article/details/50865055成功完成第三方接口数据的获得。
初步功能基本开发完毕,对微信开发有了一定的认识,微信开发的门槛不低,而且有些地方完全看理解力,是磨人的一件事。
下一步的开发方向:
微信网页开发JSSDK的应用,针对功能为卡券的生成和使用。
网页与微信的结合
微信小程序的开发:以活动为功能基础。
微信与硬件的开发:以扫码控制硬件设备为功能基础。
模板位django/contrib
python的深入使用:
django:views的深入使用与理解
url各种跳转方法的研究
与网页css,js的深度结合
templates的自定义修改与创建
https://weixin.senparc.com/