【问题标题】:Flask, how to return value, after processing data got from input formFlask,如何在处理从输入表单获得的数据后返回值
【发布时间】: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


【解决方案1】:

我认为你应该分配给ret_str

ret_str = process(url)

因为你使用flash(ret_str)

-

我希望你在index()的模板中使用这个闪现的消息

【讨论】:

    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2019-12-20
    • 2016-05-29
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多