【发布时间】:2016-01-31 15:25:52
【问题描述】:
我正在尝试使用 Flask 来创建 webapp;
目录树是这样的:
在线服务:
----应用程序:
--------forms.py
--------初始化.py
--------模板:
------------index.html
------------login.html
--------views.py
----run.py
并且: 运行.py:
import os
import sys
from app import app
app.config['SECRET_KEY'] = 'any string'
app.run(host='0.0.0.0', port = 8889)
views.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from flask import render_template, flash, redirect
from app import app
from .forms import LoginForm
file_dir = os.path.split(os.path.realpath(__file__))[0]
os.chdir(file_dir)
cur_dir = os.getcwd()
back_end_dir = os.path.join(cur_dir, "./../../back_end")
sys.path.append(back_end_dir)
import main
@app.route('/')
@app.route('/index')
def index():
return render_template("index.html",
title = 'Home')
def process(url):
url_status = "Invalid"
res = ""
res = main.get_life_stage(url)
url_str = "Url: " + url
url_status = "valid"
url_status_str = "Url_status: " + url_status
ret_str = "\n".join([url_str, url_status_str, res])
return ret_str
@app.route('/search', methods = ['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
url = form.openid.data
ret_str = ""
ret = process(url)
flash(ret_str)
return redirect('/index')
return render_template('login.html',
title = 'Sign In',
form = form)
在views.py中,ret = process(url)从前面处理数据,然后返回一个字符串,ret = process(url)在单元测试中效果很好,但是在views中不行
那么,如何显示流程函数的返回字符串? 任何提示,我将不胜感激。 谢谢!
【问题讨论】:
-
删除
redirect并使用ret和一些render_template -
或者你应该
flash(ret)而不是flash(ret_str)然后将它与index()中的模板一起使用 -
谢谢,将redirect('/index') 替换为render_template('.html', *,),然后修复它。我不知道它是如何工作的,但它确实有效!
标签: python web-applications flask flask-wtforms