flask编写html显示request,flask、python、HTML的错误请求,flask.Request.form的异常初始化行为...

我正在使用flask、python和HTML编写一个web应用程序。我的问题是,第一次加载网页时,会出现以下错误Bad Request The browser (or proxy) sent a request that this server

could not understand.

我能够通过“欺骗”最终加载页面,首先运行它而不需要任何flask.request.form调用,然后再将它们放回(详细信息如下)。我的初始化一定出了问题。我是新来的flask和HTML一起使用python。

假设我在一个名为example的目录中工作。我有一个名为test.py的python脚本和一个名为test.html的HTML模板,其目录结构如下:\example\test.py

\example\templates\test.html

我的python脚本test.py是:import sys

import flask, flask.views

app = flask.Flask(__name__)

app.secret_key = "bacon"

class View(flask.views.MethodView):

def get(self):

result = flask.request.form['result']

return flask.render_template('test.html', result=result)

# return flask.render_template('test.html')

def post(self):

return self.get()

app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])

app.debug = True

app.run()

我在test.html中的HTML是

Enter something into the box:

再现错误的步骤

1:运行test.py脚本,并在浏览器中打开URLRunning on http://127.0.0.1:5000/

您应该看到以下错误Bad Request The browser (or proxy) sent a request that this server

could not understand.

2:注释掉def get(self)函数的前两行,并取消注释def get(self)函数的第三行,使test.py看起来像这样import sys

import flask, flask.views

app = flask.Flask(__name__)

app.secret_key = "bacon"

class View(flask.views.MethodView):

def get(self):

# result = flask.request.form['result']

# return flask.render_template('test.html', result=result)

return flask.render_template('test.html')

def post(self):

return self.get()

app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])

app.debug = True

app.run()

3:刷新URL,您将看到一切正常(尽管我最终希望能够返回result的值)

4:现在,把被注释掉的行再换一次。一、 e,取消注释def get(self)函数的前两行,并注释def get(self)函数的第三行,使test.py看起来像这样import sys

import flask, flask.views

app = flask.Flask(__name__)

app.secret_key = "bacon"

class View(flask.views.MethodView):

def get(self):

result = flask.request.form['result']

return flask.render_template('test.html', result=result)

# return flask.render_template('test.html')

def post(self):

return self.get()

app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])

app.debug = True

app.run()

5:刷新URL,现在你就可以看到一切都按预期进行了。

这只是一个玩具的例子,说明了真实的问题,展示了这种奇怪的行为,我如何“欺骗”我的浏览器,让我显示这个网页。那个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值