我是Flask的新手,并开始使用简单的功能进行探索。我们的想法是创建一个只有一个字段的表单并读取此表单数据并将其传递给另一个函数以执行其他操作。所以现在,我能够正确设置Flask并运行。
当用户提交表单时,如果我返回“form submitted”之类的文本,我就能看到该值。但是当我这样做时,我收到了一个错误。
我做了什么:当用户提交,而不是返回硬编码文本时,我应该返回网站的HTML源代码。为此,我使用urllib2并作为传递google.com网址的示例。但我得到一些IndentationError。
这是我的代码:
from flask import render_template, flash, redirect
from app import app
from forms import LoginForm
import urllib2
# index view function suppressed for brevity
@app.route('/login', methods = ['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
flash('Login requested for OpenID="' + form.openid.data + '", remember_me=' + str(form.remember_me.data))
#return "form submitted" #This is working properly
response = urllib2.urlopen("http://www.google.com") # Here is the problem, I'm consistent in using spaces if I comment this and below line and uncomment above hard coded one, it works perfectly
return response
return render_template('login.html',
title = 'Sign In',
form = form)
回溯以供参考。
Traceback (most recent call last):
File "run.py", line 2, in <module>
from app import app
File "C:\Python27\projects\pnr-project\app\__init__.py", line 6, in <module>
from app import views
File "C:\Python27\projects\pnr-project\app\views.py", line 12
response = urllib2.urlopen("http://google.com")
^
IndentationError: unexpected indent
我在这里缺少什么?请告诉我。
答案 0 :(得分:-2)
最后工作了。我尝试逐行调试,以下修改工作!
response = urllib2.urlopen('http://google.com')
html = response.read()
return html