背景

在我们组队参加比赛时,一项免不了的工作就是完成与前后端同学的交接。

对于本题,我们设想以下最简单的一种情况:后端同学向我们发送请求(包含传输的文件以及相应的文件参数等信息),我们需要顺利接受后端同学发送的文件,并根据相应的参数等信息选择我们的代码工作模式,最终成功将网络输出结果再发送回后端同学。

一个Web应用的本质就是:

浏览器发送一个HTTP请求;

服务器收到请求,生成一个HTML文档;

服务器把HTML文档作为HTTP响应的Body发送给浏览器;

浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

所以,最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。Apache、Nginx、Lighttpd等这些常见的静态服务器就是干这件事情的。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。

正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。

以上内容转载自廖雪峰的博客

任务要求

进阶要求

(建议在完成后续题目后再来完善该题)

在进阶要求中,我们需要调用一个我们训练好的神经网络,下文中提到的file类型根据各位选取的神经网络类型而自行决定

Ⅱ(慎选)

对于学有余力的同学,在完成进阶要求Ⅰ后,请尝试将神经网络部署到云服务器(Windows或Linux均可)上(此处推荐阿里云,可以使用学生认证领取三个月的免费服务器)

然后在云服务器上打开我们的WSGI应用,从本地电脑的Apifox上完成POST请求的发送与接收。

在完成本任务的过程中你们可能会遇到包括但不仅限于以下的问题:

······

注意事项