Django后端和小程序前端连接问题(已解决)

问题描述

问题背景
首先小程序后端是用写的Django项目,作用是接收并保存小程序端上传的图片;
然后直接和小程序前端通过url中的端口号相连。没有掺杂nginx/apache2.4之类的。

问题在于一开始url用的是公网IP+端口号,在调试模式下小程序可以正常运行,但是再将url改成www.balabaa.xyz(该域名已经在工信局备案)时就无法上传图片。求问是否有解决方法。

具体问题
调试模式下,小程序可以正常运行
前端 url:‘http://49.x.x.x:443/gana’,即此时使用云服务器公网IP地址+端口号的形式。
后端cmd中在Django项目含有manage.py文件的文件夹下运行语句:
python manage.py runserver 0.0.0.0:443。
此时小程序勾选“不校验。。。。”,在体验版的调试模式下可以正常上传图片并保存在云服务器中。

更改url之后,小程序无法上传图片并报错
前端 url:'https://www.*.xyz/gana’,即此时采用已在工信局备案证书。
后端cmd中在Django项目含有manage.py文件的文件夹下运行语句:
python manage.py runserver_plus --cert server.crt 0:443。
此时小程序
不勾选“不校验。。。。”,

报错:uploadFile:fail Error: self signed certificate

其他可能有用的内容
1.证书是在腾讯云申请的,已经在工信局备案过了;
2.为使Django支持https,
已安装django-extensions、django-werkzeug-debugger-runserver、pyOpenSSL等3个库;
已经在django的settings.py文件中的INSTALLED_APPS下添加’werkzeug_debugger_runserver’,‘django_extensions’。

解决方法

(这个解决方法是淘宝60块找客服弄的,小哥很耐心,感谢。)

1.首先发现我的域名www.***.xyz是ping不通的,遂查看域名和云服务器是否绑定正确。
我用的腾讯云服务器,进入控制台—域名管理—我的域名,点击解析如图一,然后添加记录如图二,图三是添加之后的结果。
图一Django后端和小程序前端连接问题(已解决)_第1张图片
图三
【注意这里绑定你的云服务器的公网IP】
【其实事实上我之前因为不知道www应该绑定公网还是内网就都绑定了,结果两个冲突就ping不通,遂删除和内网的绑定。】
然后就可以ping通啦。

2.客服让我在服务器面板(云控制台)绑定域名项,但是我没有在腾讯云控制台找到【捂脸】,只找到了解析,然后这一步就不了了之了。
阿里云的同学可以尝试找一下。

3.服务器防火墙要通过443端口,在防火墙里添加规则。
客服说到云控制台对应的地方添加,但是我也没有在腾讯云找到[捂脸]
Django后端和小程序前端连接问题(已解决)_第2张图片
最后是客服直接在实例(云服务器)中添加了防火墙规则,等待重启生效。【具体怎么操作可以再百度】

4.apache进程未关闭导致冲突,关闭即可
如下图
Django后端和小程序前端连接问题(已解决)_第3张图片
【这里的apache是之前我看到有教程说Django需要通过Apache和小程序前端连接才下载开启的,但实际上如果功能简单,是不需要Apache的。】

5.证书验证
django下SSL证书怎样验证?
Django后端和小程序前端连接问题(已解决)_第4张图片
【这一步也是客服做的,大家详细可以百度】

6.后端在cmd中打开Django项目中含有manage.py文件的文件夹,并运行下列语句:
python manage.py runserver_plus 0:7000 --cert 1_study666.xyz_ bundle.crt --key-file 2_study666.xyz.key

7.小程序后台配置
登录微信公众平台(小程序)–开发–开发设置–服务器域名配置
Django后端和小程序前端连接问题(已解决)_第5张图片
Django后端和小程序前端连接问题(已解决)_第6张图片

在这里插入图片描述
在这里插入图片描述
8.前端小程序代码中的url修改成:7000,如下图
Django后端和小程序前端连接问题(已解决)_第7张图片

然后就ok了。记得详情—本地设置里不要勾选“不校验…”。
Django后端和小程序前端连接问题(已解决)_第8张图片

你可能感兴趣的:(小程序,小程序,django,python,js)