python - 从 djangocms 调用烧瓶应用程序
问题描述
我有以下烧瓶应用程序,它从表单中获取 36 个滑块答案并输出一个简单的乘法结果
烧瓶:
from flask import Flask, render_template, request
import pandas as pd
import jinja2
app = Flask(__name__)
@app.route('/quest')
def index():
# Render the form. Nothing special needs to happen here.
return render_template('/aboutImgFree.html')
@app.route('/results', methods=['POST'])
def results():
if request.method == 'POST':
likertValues = {'C1': [request.values['vol1'], request.values['vol2'],request.values['vol3'], request.values['vol4'],
request.values['vol5'],request.values['vol6']],
'C2': [request.values['vol7'], request.values['vol8'], request.values['vol9'], request.values['vol10'],
request.values['vol11'], request.values['vol12']],
'C3': [request.values['vol13'], request.values['vol14'], request.values['vol15'], request.values['vol16']
, request.values['vol17'], request.values['vol18']],
'C4': [request.values['vol19'], request.values['vol20'], request.values['vol21'], request.values['vol22']
, request.values['vol23'], request.values['vol24']],
'C5': [request.values['vol25'], request.values['vol26'], request.values['vol27'], request.values['vol28']
, request.values['vol29'], request.values['vol30']],
'C6': [request.values['vol31'], request.values['vol32'], request.values['vol33'], request.values['vol34']
, request.values['vol35'], request.values['vol36']]}
io = pd.DataFrame(data=likertValues)
io_t = io.astype('int64')
factor={'factor':[1,2,3,4,5,6]}
f=pd.DataFrame(data=factor)
#return render_template('/results.html',io=io.to_html(),f=type(f.iloc[-1,-1]))
'''
io_table=pd.read_csv(request.files['io_table'])
io_t=io_table
factor=pd.read_csv(request.files['factor'])
f=factor
'''
mdl1=pd.DataFrame(io_t.values+f.values, columns=io_t.columns, index=io_t.columns)
mdl2=pd.DataFrame(io_t.values*f.values, columns=io_t.columns, index=io_t.columns)
c_sum1 = mdl1.sum(axis=0)
r_sum1 = mdl1.sum(axis=1)
c_sum2 = mdl2.sum(axis=0)
r_sum2 = mdl2.sum(axis=1)
mdl1_t=mdl1
mdl2_t=mdl2
io_t.rename(index={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6'},inplace=True)
io_t.rename(columns={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6'},inplace=True)
mdl1_t=mdl1_t.append(c_sum1, ignore_index=True)
mdl1_t.rename(index={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6',6:'Sum Column'},inplace=True)
mdl1_t=pd.concat([mdl1_t, r_sum1], axis=1, ignore_index=True)
mdl1_t.iloc[-1,-1]=mdl1.values.sum()
mdl1_t.rename(columns={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6',6:'Sum Row'},inplace=True)
mdl2_t=mdl2_t.append(c_sum2, ignore_index=True)
mdl2_t.rename(index={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6',6:'Sum Column'},inplace=True)
mdl2_t=pd.concat([mdl2_t, r_sum2], axis=1, ignore_index=True)
mdl2_t.iloc[-1,-1]=mdl2.values.sum()
mdl2_t.rename(columns={0:'C1',1:'C2',2:'C3',3:'C4',4:'C5',5:'C6',6:'Sum Row'},inplace=True)
option = request.form.getlist('model')
if option == ['mdl1']:
return render_template('/results.html', io=io_t.to_html(), mdl1_t=mdl1_t.to_html())
elif option == ['mdl2']:
return render_template('/results.html', io=io_t.to_html(), mdl2_t=mdl2_t.to_html())
elif option == ['mdl1','mdl2']:
return render_template('/results.html', io=io_t.to_html(), mdl1_t=mdl1_t.to_html(), mdl2_t=mdl2_t.to_html())
else:
return render_template('/results.html', io=io_t.to_html())
#results = new_io_table(io_table,factor) # Get some results
if __name__ == "__main__":
app.run(debug=True)
我想做的是获取该代码并从我的djangocms
应用程序中调用它。问题是我在任何地方都找不到答案,也不知道到底要寻找什么。这里有没有人做过类似的事情?
我正在使用 django 3.x 和烧瓶 1.1.2
更新
我发现了调度,这真的很棒,但我不能让它正常工作。
from flask import Flask
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from werkzeug.exceptions import NotFound
from app1.website2 import app as app1
from app2 import app as app2
app = Flask(__name__)
app.wsgi_app = DispatcherMiddleware(NotFound(), {
"/app1": app1,
"/quest": app2
})
if __name__ == "__main__":
app.run()
我收到以下错误
Traceback (most recent call last):
File "C:\Users\user\Desktop\CMS\Lib\site-packages\werkzeug\serving.py", line 323, in run_wsgi
execute(self.server.app)
File "C:\Users\user\Desktop\CMS\Lib\site-packages\werkzeug\serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "C:\Users\user\Desktop\CMS\Lib\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\user\Desktop\CMS\Lib\site-packages\werkzeug\middleware\dispatcher.py", line 66, in __call__
return app(environ, start_response)
TypeError: 'module' object is not callable
解决方案
推荐阅读
- dart - Dart 中是否有与 C++ 类似的 std::bind ?
- javascript - React 如何搜索(过滤)数组中的所有字段?
- css - Chrome 在过渡时仍然闪烁
- sql-server - SQL Server 2016 数据库备份和还原
- sql - 附加查询不起作用 Access 2016
- mysql - 用户在哪里 - 在 15 秒内增加选择?
- elasticsearch - elasticsearch-pyspark:即使在使用 spark 指定之后,也没有从文档中获取特定字段(获取所有字段)
- java - 火花 SQL sql("
").first().getDouble(0) 给我不一致的结果 - visual-studio-code - 将图标添加到树视图的正确方法是什么?
- java - 修改映射键 java - 性能