我正在尝试建立并运行一个只要求URL的简单web表单。
这是HTML代码(index.HTML(
<!DOCTYPE html>
<html>
<body>
<form name = 'test' action = "." method = "post">
<form action="test.php" method="get">
URL <input type="text" link="link" name = "URL"/>
<input type="submit" />
</form>
</body>
</html>
我使用Flask来运行简单的web应用程序,这是Flask代码:(app.py(
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html')
@app.route("/", methods = ["POST"])
def get_value():
url = request.form["URL"]
return 'The url is ' + url
if __name__ == "__main__":
app.run(debug=True)
我正在尝试将输入的URL获取到另一个python脚本,这样我就可以用它做一些事情,这是另一个python脚本:(URL.py(
from app import get_value
print(get_value())
然而,每当我运行python3url.py时,就会出现以下错误:
This typically means that you attempted to use functionality that needed
an active HTTP request. Consult the documentation on testing for
information about how to avoid this problem.
知道如何打印并成功转换URL吗?在很多细节上,最好是因为我对弗拉斯克很陌生。
发生错误的原因是您调用了一个函数,该函数需要来自请求的数据来获得用户输入。您应该调用url处理函数,而不是让处理函数调用url的检索。
考虑一下这个答案https://stackoverflow.com/a/11566296/5368402以确保正确传递url。现在您已经有了url,只需将其传递给其他脚本即可。
import url # your url.py module
@app.route("/", methods = ["POST"])
def get_value():
input_url = request.form["URL"]
url.handle_url(input_url) #call a function inside url.py