C:\Users\18767\anaconda3\python.exe C:\Users\18767\Desktop\GUSHI\app.py * Serving Flask app 'app' * Debug mode: on WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit * Restarting with watchdog (windowsapi) * Debugger is active! * Debugger PIN: 431-810-334 127.0.0.1 - - [11/Jun/2025 10:46:54] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/css/show_data.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/china.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/template/show_data.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/flexible.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/echarts.min.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/js/echarts-wordcloud.min.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/bg.jpg HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/head_bg.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/line.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/map.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/lbx.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/images/jt.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "GET /static/fonts/DS-DIGIT.TTF HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:55] "POST /desty_sum HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /index HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/index.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/poem_graph.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/create.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/appear.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/chat.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /welcome HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/fonts/iconfont.woff HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/font/iconfont.woff?v=240 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/jquery.min.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/welcome.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /tz_look_poem_desty/李白 HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /tz_look_poem_desty/唐代 HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /tz_look_poem_desty/宋代 HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /tz_look_poem_desty/元代 HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /author/李白 HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/look_poem_desty.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/find.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/look_poem_desty.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/author.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/d3.min.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/echarts.min.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/china.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/font.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/css/xadmin.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/look_poem_desty.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/find.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/author.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/layui.css HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/template/look_poem_desty.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/layui.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/js/xadmin.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/find.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/find.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/icon/find.png HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/layer.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "POST /desty_sum HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "POST /poemer_sum HTTP/1.1" 200 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/css/modules/layer/default/layer.css?v=3.1.1 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/jquery.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:56] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/element.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/util.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/lay/modules/laypage.js HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "POST /look_poem_desty HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 229, in look_poem_desty ret, count = db.selectall(sql, (page,)) TypeError: cannot unpack non-iterable int object 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/font/iconfont.woff?v=240 HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "POST /look_poem_desty HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 229, in look_poem_desty ret, count = db.selectall(sql, (page,)) TypeError: cannot unpack non-iterable int object 127.0.0.1 - - [11/Jun/2025 10:46:57] "GET /static/lib/layui/css/modules/layer/default/loading-2.gif HTTP/1.1" 304 - 127.0.0.1 - - [11/Jun/2025 10:46:57] "POST /look_poem_desty HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 229, in look_poem_desty ret, count = db.selectall(sql, (page,)) TypeError: cannot unpack non-iterable int object 127.0.0.1 - - [11/Jun/2025 10:46:57] "POST /look_poem_desty HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 229, in look_poem_desty ret, count = db.selectall(sql, (page,)) TypeError: cannot unpack non-iterable int object 127.0.0.1 - - [11/Jun/2025 10:46:57] "POST /get_where_relation_show_threePoemer HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 443, in from_json content = json_loads(data, object_hook=JSONHydrant.json_to_packstream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\__init__.py", line 359, in loads return cls(**kw).decode(s) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 562, in get_where_relation_show_threePoemer data = graph.run( ^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 405, in run return self.auto().run(cypher, parameters, **kwparameters) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 989, in run result = self._connector.auto_run(cypher, parameters, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\__init__.py", line 1340, in auto_run return cx.auto_run(cypher, parameters, graph_name=graph_name, readonly=readonly) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 177, in auto_run rs = HTTPResponse.from_json(r.status, r.data.decode("utf-8")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 445, in from_json raise_from(ProtocolError("Cannot decode response content as JSON"), error) File "<string>", line 3, in raise_from py2neo.errors.ProtocolError: Cannot decode response content as JSON 127.0.0.1 - - [11/Jun/2025 10:46:59] "POST /poemer_produce HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 443, in from_json content = json_loads(data, object_hook=JSONHydrant.json_to_packstream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\__init__.py", line 359, in loads return cls(**kw).decode(s) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 139, in poemer_produce data = graph.run( ^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 405, in run return self.auto().run(cypher, parameters, **kwparameters) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 989, in run result = self._connector.auto_run(cypher, parameters, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\__init__.py", line 1340, in auto_run return cx.auto_run(cypher, parameters, graph_name=graph_name, readonly=readonly) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 177, in auto_run rs = HTTPResponse.from_json(r.status, r.data.decode("utf-8")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 445, in from_json raise_from(ProtocolError("Cannot decode response content as JSON"), error) File "<string>", line 3, in raise_from py2neo.errors.ProtocolError: Cannot decode response content as JSON 127.0.0.1 - - [11/Jun/2025 10:46:59] "POST /get_author_message HTTP/1.1" 500 - Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 443, in from_json content = json_loads(data, object_hook=JSONHydrant.json_to_packstream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\__init__.py", line 359, in loads return cls(**kw).decode(s) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1498, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1476, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 1473, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 882, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 880, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\flask\app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 378, in get_author_message 'travel_name': travel_poem(author_name), ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\Desktop\GUSHI\app.py", line 334, in travel_poem data = graph.run( ^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 405, in run return self.auto().run(cypher, parameters, **kwparameters) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\database.py", line 989, in run result = self._connector.auto_run(cypher, parameters, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\__init__.py", line 1340, in auto_run return cx.auto_run(cypher, parameters, graph_name=graph_name, readonly=readonly) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 177, in auto_run rs = HTTPResponse.from_json(r.status, r.data.decode("utf-8")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\18767\anaconda3\Lib\site-packages\py2neo\client\http.py", line 445, in from_json raise_from(ProtocolError("Cannot decode response content as JSON"), error) File "<string>", line 3, in raise_from py2neo.errors.ProtocolError: Cannot decode response content as JSON 查看错误
时间: 2025-06-11 16:32:52 浏览: 11
### 解决Flask应用中TypeError和JSONDecodeError相关异常的方案
在Flask应用程序中,`TypeError: cannot unpack non-iterable int object` 和 `py2neo.errors.ProtocolError: Cannot decode response content as JSON` 是常见的运行时错误。以下是针对这些问题的专业解决方案。
#### 1. TypeError: cannot unpack non-iterable int object 的解决方法
当出现此类错误时,通常是因为尝试对一个非可迭代对象(如整数)进行解包操作。例如,在数据库查询中返回了单个值而不是元组或列表时,可能会发生此问题[^1]。
以下是一个示例代码片段,展示如何避免该错误:
```python
from flask import Flask, jsonify
app = Flask(__name__)
def is_admin(username):
# 假设这是一个模拟的数据库查询函数
result = get_user_role(username) # 返回值可能为 None 或 (role,)
if result is None:
return False
role, = result # 确保结果是可迭代的
return role == 'admin'
def get_user_role(username):
# 模拟数据库查询
users = {'zhangsan': ('admin',), 'lisi': ('user',)}
return users.get(username)
@app.route('/is_admin/<username>', methods=['GET'])
def check_admin(username):
try:
admin_status = is_admin(username)
return jsonify({'is_admin': admin_status})
except TypeError as e:
return jsonify({'error': str(e)}), 500
```
在上述代码中,通过检查返回值是否为`None`来避免对不可迭代对象进行解包操作。
#### 2. py2neo.errors.ProtocolError: Cannot decode response content as JSON 的解决方法
当使用`py2neo`库与Neo4j数据库交互时,如果服务器返回的内容无法被正确解析为JSON格式,可能会引发`ProtocolError`。这通常是由于Neo4j版本与`py2neo`版本不兼容引起的[^2]。
以下是一个解决方法:
```python
from py2neo import Graph, ProtocolError
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
def fetch_data(query):
try:
results = graph.run(query).data()
return results
except ProtocolError as e:
return {"error": str(e)}
@app.route('/fetch_nodes', methods=['GET'])
def get_nodes():
query = "MATCH (n) RETURN n LIMIT 25"
data = fetch_data(query)
return jsonify(data)
```
确保使用的`py2neo`版本与Neo4j版本兼容。例如,对于Neo4j 4.x版本,推荐使用`py2neo` 4.x版本[^2]。
#### 3. 防止JSONDecodeError 的最佳实践
`JSONDecodeError` 通常发生在尝试解析无效或格式错误的JSON数据时。可以通过以下方式避免:
- **验证请求数据**:确保客户端发送的JSON数据格式正确。
- **捕获异常**:在解析JSON数据时捕获`JSONDecodeError`。
以下是一个示例:
```python
from flask import request, jsonify
import json
@app.route('/process_data', methods=['POST'])
def process_data():
try:
data = request.get_json(force=True) # 强制解析JSON数据
if not data:
raise ValueError("Invalid JSON data")
result = handle_data(data)
return jsonify(result), 200
except json.JSONDecodeError as e:
return jsonify({"error": "Invalid JSON format", "details": str(e)}), 400
except ValueError as e:
return jsonify({"error": str(e)}), 400
```
#### 4. 日志记录与监控
为了更好地定位和解决问题,可以集成日志记录工具。例如,使用`logging`模块记录错误信息:
```python
import logging
logging.basicConfig(level=logging.DEBUG)
@app.errorhandler(Exception)
def handle_exception(e):
logging.error("An unexpected error occurred: %s", str(e))
return jsonify({'error': 'Internal Server Error'}), 500
```
### 示例代码总结
以下是一个完整的示例,结合了上述所有解决方案:
```python
from flask import Flask, request, jsonify
import logging
import json
from py2neo import Graph, ProtocolError
app = Flask(__name__)
logging.basicConfig(level=logging.DEBUG)
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
def fetch_data(query):
try:
results = graph.run(query).data()
return results
except ProtocolError as e:
return {"error": str(e)}
@app.route('/fetch_nodes', methods=['GET'])
def get_nodes():
query = "MATCH (n) RETURN n LIMIT 25"
data = fetch_data(query)
return jsonify(data)
@app.route('/process_data', methods=['POST'])
def process_data():
try:
data = request.get_json(force=True)
if not data:
raise ValueError("Invalid JSON data")
result = handle_data(data)
return jsonify(result), 200
except json.JSONDecodeError as e:
return jsonify({"error": "Invalid JSON format", "details": str(e)}), 400
except ValueError as e:
return jsonify({"error": str(e)}), 400
def handle_data(data):
# 处理数据逻辑
return {"status": "processed"}
@app.errorhandler(Exception)
def handle_exception(e):
logging.error("An unexpected error occurred: %s", str(e))
return jsonify({'error': 'Internal Server Error'}), 500
if __name__ == '__main__':
app.run(debug=True)
```
阅读全文