< script> HTML中的标记专门用于运行客户端JavaScript代码.后端逻辑应在视图中完成.如果您只是想执行myfile.py中存在的代码行,则应将其放在该文件中的函数中,并使用myfile import functionname导入,或仅在视图中包含该代码(后者是大多数情况下的正确方法).例如,如果myfile.py包含打印“ Hello World!”.那么您的视图应如下所示:
from flask import *
from functools import wraps
import sqlite3
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/generate')
def generate():
print 'Hello World!'
return render_template('process.html')
如果以这种方式进行操作,则无需将所有代码拆分为单独的文件.但是,不幸的是,模板将在执行代码后呈现,因此process.html模板中所示的“正在处理…”将在处理后显示.就Flask而言,我所知道的向用户显示该过程已发生的最好方法是重定向回页面并闪烁一条消息,如下所示:
@app.route('/generate')
def generate():
print 'Hello World!'
flash('Process complete!')
return redirect(url_for(home))
然后在home.html中,您将得到以下内容(从Flask 0.11 Documenta