chineseocr-lite:运行换完 app.py后 结果为 http://0.0.0.0:8080/ 但是点击进去之后说无法访问 .
在templates新建index.html,如下:
<!DOCTYPE html>
<head>
<meta charset='utf-8'>
<script src='https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js'></script>
</head>
<body>
<input id='upload' type='file' accept="image/png, image/jpeg" multiple><br>
<script>
$(function () {
$('#upload').change(function () {
var files = $('#upload')[0].files;
var form = new FormData();
for (var i = 0; i < files.length; i++) {
//插入FormData
var file = files[i];
form.append('files', file);
//显示图片
var fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onloadend = function (event) {
var src = event.target.result;
$('body').append('<img src=' + src + ' width=200px>');
}
}
$('body').append('<p>请稍候</p>');
$.ajax({
type: 'POST',
url: '/ocr',
data: form,
processData: false, // 不处理发送的数据
contentType: false, // 不设置请求头
success: function (data) {
$('body').append(data);
}
});
})
});
</script>
</body>
</html>
把app.py,改为
import ocr
import json
import tornado.web
import tornado.ioloop
from tornado.options import define, options
define('port', default=1234, help='运行端口', type=int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
class OcrHandler(tornado.web.RequestHandler):
def post(self):
files = self.request.files['files']
for file in files:
filename = file['filename']
img = file['body']
result = ocr.result(img)
result = json.dumps(result, ensure_ascii=False)
print(result)
self.write('<p>{}: {}</p>'.format(filename, result))
self.flush()
if __name__ == '__main__':
settings = {
'template_path': 'templates',
}
app = tornado.web.Application(
[
(r'/', MainHandler),
(r'/ocr', OcrHandler),
], **settings)
app.listen(options.port)
print('http://localhost:{}/'.format(options.port))
tornado.ioloop.IOLoop.current().start()