我对flask还是个新手,因此我有一个关于代码背后的逻辑以及我的思考过程是否有意义的问题。在
我有一个旧的python脚本,它需要大量的数据,对其进行处理,然后用matplotlib生成一个绘图。这个很好用。在
现在我想构建一个web应用程序,用户在其中选择特定的输入参数,单击submit按钮,我的服务器检查(在sqlite的帮助下)是否已经存在绘图/使用这些参数绘制绘图的数据,如果存在,则让用户可以下载。在
如果这个plot/the data不存在,我的flask应用程序调用python脚本,它的新plot/data将被创建并上传到sqlite,然后用户可以从web应用程序下载它。在
正如您在我的代码中看到的,python脚本是一个外部脚本,我的计划是不在我的flask应用程序的视图中包含它,这有意义吗?我应该在这里调用外部脚本还是直接将代码复制到视图中?(我想尽量避免,因为这是一个很大的剧本)
我的逻辑是这样的:# this part works well so far, I get the user input here and redirect it to the specific page
@app.route('/plot', methods = ['GET','POST'])
def get_plot():
if request.method == 'POST':
input1 = request.form['input1']
input2 = request.form['input2']
input3 = request.form['input3']
return redirect('plot/{}/{}/{}/'.format(input1, input2, input3))
else:
return render_template('plot.html')
# here it get's a bit tricky for me
@app.route('/plot')
def create_plot(input1='1', input2='2', input3='3'):
db = get_db(DB_PLOT)
cur = db.execute('SELECT * FROM {} WHERE param1 = {} AND param2={}'.format(input1, input2, input3)) # get all the data from the table
except:
return "Plot not found !"
# CALL THE EXTERNAL PYTHON SCRIPT HERE?
cur = db.execute('SELECT * FROM {} WHERE param1 = {} AND param2={}'.format(input1, input2, input3)) # python script should have updated the database, so i can call the data here
data = cur.fetchall()
return render_template('show_plot.html', data=data)
此外,我还有一个问题:
如前所述,我的python脚本(到目前为止我只使用它自己)获取原始数据,对其进行操作,然后使用matplotlib创建一个绘图。
当我想在我的web应用程序中实现它时,我应该还是用python脚本创建绘图,将绘图上载到sqlite,然后用web应用程序从sqlite获取图像,还是应该只上传操纵的数据,然后从sqlite下载这些数据并用flask创建绘图?在
最后,我想让用户能够以.jpg和.pdf文件的形式下载绘图。在
太感谢你了!在
我对flask还是个新手,因此我有一个关于代码背后的逻辑以及我的思考过程是否有意义的问题。在我有一个旧的python脚本,它需要大量的数据,对其进行处理,然后用matplotlib生成一个绘图。这个很好用。在现在我想构建一个web应用程序,用户在其中选择特定的输入参数,单击submit按钮,我的服务器检查(在sqlite的帮助下)是否已经存在绘图/使用这些参数绘制绘图的数据,如果存在,则让用户可以...
或者:使用交互式外壳程序选项从命令行运行分类器之一,然后
调用
pred_lean
\r eddit - stance - classifier >
python
>> > from prediction import pred_lean
>> > pred_lean ( 'userMcUserFace01010101' )
( 'L' , 'L' , 0.821243598285102 , 0.893544755401233 )
一、问题描述
Python
+
Flask
程序开发过程中,修改模板文件和修改
Python
程序后,默认情况下,需要重新运行服务,才能够刷新。如果想要修改模板/程序后,让代码立即生效,需要特殊处理。
1. 模板修改:如何立即生效?
2. 程序修改:如何立即生效?
二、解决
方法
1. 模板修改:
# 模板更改后立即生效
app.jinja_env.auto_reload = True
2. 程序修改:
最近开发要用一个测试环境,是这样的Nginx+uwsgi+
flask
的一个结构。下面是一些记录,在Centos 系统上使用
Flask
架构部署一个简单的
Python
应用。然后使用Nginx作为前端反向代理,设置uWSGI应用网关处理web应用程序。
1) 环境要求
Server OS:最小化安装 Centos 6.8
Nginx :...
1. 在项目根目录下创建一个名为 `templates` 的文件夹;
2. 在 `templates` 文件夹中创建一个名为 `index.html` 的文件;
3. 在 `index.html` 文件中编写 HTML 代码,例如:
```html
<!DOCTYPE html>
<title>
Flask
Template Example</title>
</head>
<h1>Hello, {{ name }}!</h1>
<p>Today is {{ date }}.</p>
</body>
</html>
在这个模板中,我们使用了 Jinja2 的模板语法,其中 `{{ name }}` 和 `{{ date }}` 是变量,可以在
Flask
中传递值给它们。
4. 在
Flask
应用程序中,引入 `render_template` 函数,并使用它来渲染模板。例如:
```
python
from
flask
import
Flask
, render_template
app =
Flask
(__name__)
@app.route('/')
def index():
return render_template('index.html', name='Alice', date='2021-10-01')
在这个示例中,我们在 `/` 路径上定义了一个视图函数 `index()`,它使用 `render_template` 函数来渲染 `index.html` 模板。我们还传递了两个变量 `name` 和 `date` 给模板。
当用户访问 `/` 路径时,
Flask
会执行 `index()` 函数并将渲染后的 HTML 页面返回给用户。在这个页面中,`{{ name }}` 会被替换为 `Alice`,`{{ date }}` 会被替换为 `2021-10-01`。