欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序——图片内容分析(上)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

微信小程序——图片内容分析(上)

发布时间:2021-01-04  

环境的配置本文介绍了技术需求与环境的配置,具体的开发将在“微信小程序——图片内容分析(下)”中详细说明。目标目标是制作一个能在手机上运行的够识别图片内容的程序。这样就需要几个 ...

 

 

 

环境的配置

本文介绍了技术需求与环境的配置,具体的开发将在“微信小程序——图片内容分析(下)”中详细说明。

目标

目标是制作一个能在手机上运行的够识别图片内容的程序。这样就需要几个必要的模块:

1)前端

可以选择的有APP,HTML5,微信小程序。
最近小程序比较火,想要试试手,因此选择了“微信小程序”作为前端展示。微信小程序上传的图片需要后端分析,因此需要一个后端服务器接收。

2)后端

既然是纯学习,最近写python又比较顺手,因此打算采用python框架,通过查询资料,发现了Django,Flask,webpy等框架。Django最为成熟,其他的框架也有优点但是都没试过,怕遇到坑。因此选用了Django作为后端框架。
后端框架选定后就需要服务器框架了,在网上发现都推荐Nginx + uWsgi + Django作为整体开发。

3)识别模块

识别模块这个涉及到近几年都比较火的深度学习,我本来打算自己训练一个专门识别某些类型的模型,但是前提需要收集很多训练集,因此打消了念头,后来发现Google提供识别API。虽然i提供的API只能分大类,但是只是尝试一下也足够了。

小程序页面

小程序的开发环境的搭建就不介绍了,网上很多资料,官方简易教程也说得很详细。这里只提几点需要注意的地方。

1)微信小程序通信协议HTTPS

微信小程序需要通过HTTPS协议和后端通信,并且HTTPS需要第三方认证,而不能自己随意生成一个就行。这里我在腾讯云购买了一个域名并且免费申请的DV ssl证书。

2)图片上传的大小

图片上传的大小需要注意,因为Nginx默认限制为2M(可以修改),如果上传图片的大小超过2M则,返回码为413。

3)微信小程序界面控件

我的微信小程序只用了三种控件:

img类型展示图片;

button类型交互点击上传;

通过微信小程序API调用modal框展示结果。

微信小程序——图片内容分析(上)

后端配置

后端服务器是谷歌云主机,地点选择的是Asia(亚洲) b,Ping值50ms左右,系统选用的Ubuntu 16.04,还挺不错。我使用的版本分别是Nginx 1.10.0,uWsgi 2.0.15,Django 1.10.6,python环境3.5.2。
由于每一步设置完成之后都需要检查是否正确,这会影响到下一步的测试结果,因此我以Django,uWsgi,Nginx的顺序进行介绍。
(提醒:注意检查自带防火墙是否有拦截规则,或者云服务器设置中端口是否开放,这个需要到对应云服务器提供的网页控制台上设置。)

1)Django框架

安装参见Django菜鸟教程具体就不详细说明了,这里要注意下,我使用的是python3.5.2因此在安装的时候使用pip3安装,而不是pip2。安装配置完成后进入项目目录然后执行
$python3 manage.py runserver 0.0.0.0:8000
然后通过服务器ip:8000访问,测试安装配置是否ok。

2)uWsgi安装

我的uWsgi通过pip3安装(pip3 install uwsgi)会自动安装在pypi发布的最新版本。uWsgi配置较为简单,我的配置文件uWsgi.ini详情如下。如需详细了解可以参见uWsgi docs。

[uwsgi] http-socket = :8001 # 访问端口号 chdir = /my_project/ # django创建项目的绝对路径 wsgi-file = my_project/wsgi.py # django中wsgi.py的相对路径(相对于/my_project/) master = true # 是否设置主进程 processes = 4 # 处理进程数量 threads = 2 # 线程数量 daemonize = /logs/uwsgi.log # 日志路径 pidfile = /uwsgi.pid # pid文件,用于管理uWsgi的关闭或者reload

配置完成后,通过命令uwsgi --ini uWsgi.ini启动服务器。
然后通过服务器ip:8001访问,测试安装配置是否ok,如不成功可以查看日志记录检查问题。

3)Nginx配置

cNginx一般作为最外层的服务器,以提供反向代理(即将客户端对Nginx的请求再转发到更内部的服务器)和静态路由服务。
Nginx配置项比较多,如果想要详细了解各项配置的含义建议查看Nginx中文手册,或者Nginx docs。这里只是简单介绍本服务器的配置项。
Nginx一般通过apt安装(命令如:apt-get install nginx),配置文件在目录/etc/nginx/中,名为nginx.conf,这里不要对其的配置项进行修改,因为nginx.conf配置文件中http块中包含 "include /etc/nginx/conf.d/*.conf;"这样一行,加载/etc/nginx/conf.d/目录下所有以.conf结尾的配置文件,所以我们只需要在它指向的目录下新建一个自己的配置块,然后进行配置。
我在/etc/nginx/conf.d/目录下新建了一个名为https.conf的配置文件。

server { listen 443; server_name mysite; #这里填域名 ssl on; #https模式必须开启 ssl_certificate my.crt; #这里是证书 ssl_certificate_key my.key; #证书所带的密钥(注意都是绝对路径) #charset utf-8; access_log /www/logs/https.access.log; error_log /www/logs/https.error.log; location / { uwsgi_pass unix:///www/socket.sock; #这里是用的 unix通信的模式,这个模式在我的测试中比端口通信更快。 include uwsgi_params; #必填 }

本文标签

: