The purpose is to in the UI select a script and upload a file, and then return the output, now I'm using a dummy script to link up the front and back end.
My folder structure
|-app
|-main
|- ...
|-views.py <---- this!
|-script_mgmt
|-__init__.py
|-manager.py <---- this!
|-scripts
|-__init__.py
|-sample.py <---- and this!
|-...
|-run.py
This is the snippet in view.py
...
@main.route('/', methods = ['GET', 'POST'])
def index():
form = UploadForm()
task = None
file = None
if form.validate_on_submit():
# task = form.task.data
file = form.file.data
mger = Manager()
task = 'sample'
output = mger.invoke(task, file)
return output
return render_template('index.html', form = form)
And manager.py
class Manager():
@staticmethod
def invoke(script, file):
from importlib import import_module
module = import_module(f'app.script_mgmt.scripts.{script}')
return module.main(file)
And sample.py
def main(file):
sample(file)
def sample(file):
return 'Sample script triggered'
I expected the output to be "Sample script triggered" which would be rendered as plain text in my browser, but I somehow got this error saying it returned None.
TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
See below for full error messages.
Traceback (most recent call last)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 1953, in full_dispatch_request
return self.finalize_request(rv)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 1968, in finalize_request
response = self.make_response(rv)
File "C:\Users\sliu\Documents\GitHub\script-bank\venv\lib\site-packages\flask\app.py", line 2098, in make_response
"The view function did not return a valid response. The"
TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
Aucun commentaire:
Enregistrer un commentaire