Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 缩进错误:表单提交后返回变量时出现意外缩进_Python_Forms_Flask_Flask Wtforms - Fatal编程技术网

Python 缩进错误:表单提交后返回变量时出现意外缩进

Python 缩进错误:表单提交后返回变量时出现意外缩进,python,forms,flask,flask-wtforms,Python,Forms,Flask,Flask Wtforms,我刚接触Flask,开始探索简单的功能。这样做的目的是让表单只包含一个字段,然后读取表单数据并将其传递给另一个函数以执行其他操作。所以现在,我能够正确设置烧瓶并运行 当用户提交表单时,如果我返回一些文本,如“form submitted”,我就能看到值。但是当我这样做的时候,我会犯错误 我所做的:当用户提交时,我应该返回网站的HTML源代码,而不是返回硬编码文本。为此,我使用urllib2和作为传递google.com URL的示例。但我发现了一些缩进错误 这是我的密码: from flask

我刚接触Flask,开始探索简单的功能。这样做的目的是让表单只包含一个字段,然后读取表单数据并将其传递给另一个函数以执行其他操作。所以现在,我能够正确设置烧瓶并运行

当用户提交表单时,如果我返回一些文本,如“form submitted”,我就能看到值。但是当我这样做的时候,我会犯错误

我所做的:当用户提交时,我应该返回网站的HTML源代码,而不是返回硬编码文本。为此,我使用urllib2和作为传递google.com URL的示例。但我发现了一些缩进错误

这是我的密码:

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
回溯(最近一次呼叫最后一次):
文件“run.py”,第2行,在
从应用程序导入应用程序
文件“C:\Python27\projects\pnr project\app\\uuuuu init\uuuuuu.py”,第6行,在
从应用程序导入视图
文件“C:\Python27\projects\pnr project\app\views.py”,第12行
响应=urllib2.urlopen(“http://google.com")
^
缩进错误:意外缩进

我错过了什么?请告诉我。

终于成功了。我试着逐行调试,下面的修改成功了

response = urllib2.urlopen('http://google.com')
        html = response.read()
        return html

似乎您的缩进可能混合了制表符和空格。@NickBastin感谢您的回复,我刚刚在代码中添加了一些注释。正如我所提到的,我只对这一行有问题。使用你的代码编辑器功能:显示空白,将制表符转换为空格,还有PEP8插件。这些应该可以帮助您。@viktor.likin我不确定这是否是空间问题。urllib2在Web服务器中工作?我的意思是在本地烧瓶中。我收到过这样的问题:)我想你在if之后的缩进有问题。因为提交表单时会调用错误。错误跟踪表示您在Word响应之前有问题。这是<代码>缩进错误< /代码>卓越。