小编Nic*_*ack的帖子

您如何处理从HTTP POST发送的所有方法?

想象一下,用户刚刚将数据发布到您的Web应用程序,并且您希望重新显示当前页面,并显示有关其成功或失败的消息.这变得复杂了.

如果数据有效且用户期望使用html,则您希望发出重定向,以便刷新不会导致重新发布.您希望重定向到引用程序(如果存在)并显示消息.如果他们不期望html,你可以简单地返回200 OK.

如果数据无效并且用户期望html,则您希望重新呈现它们来自的页面,并显示可见错误,以便它们可以重新发布.为此,您必须运行上一个操作,并使其知道错误消息.要确定哪个是上一个操作,也许您将其作为表单中的隐藏参数包含在内.如果他们不期望html,您可以返回适用的4xx客户端错误.

我发现自己做这种愚蠢的舞蹈的次数太多了.所以问题是:

1)你如何抽象整个过程,以便任何形式的帖子可以利用它?

2)在您喜欢的Web框架中实现这一目标的最可维护或最不重复的方法是什么?

3)您是否有任何改变这整个过程会使其变得更简单?

想法1:永远不要在帖子上呈现,始终重定向.将请求中的错误数据填入会话中一段时间​​,然后清除它,就像成功消息一样.这样,有效和无效的帖子可以用同样的方式处理.

想法2:不要做任何正常的HTTP帖子.只使用ajax.现在您根本不必担心渲染或重定向.这只有在你已经拥有ajax-heavy的应用程序时才有用.

post http

5
推荐指数
1
解决办法
178
查看次数

如何使用Flask-SQLAlchemy创建可重用的组件?

可以说我有我的Flask应用程序的一部分,我想撤出并在多个不同的项目中使用.它具有使用Flask-SQLAlchemy的SQLAlchemy模型,以及视图和模板.我可以使用Module获取app.route装饰器,但是如何处理SQLAlchemy db对象?

由于我的组件需要分开,我不能只导入db对象.但我认为我不应该两次创建db对象.我如何将其元数据与项目其余部分中的元数据混合在一起?

code-reuse sqlalchemy flask flask-sqlalchemy

5
推荐指数
1
解决办法
1642
查看次数

Facebook应用程序请求的通知未显示

我为网站创建了一个应用程序,并为其提供了一个网站URL.(网站网址实际上并不是真实的.它会在我的本地主机名文件中被覆盖以用于开发目的.这有关系吗?).

我使用示例代码创建请求对话框,以将请求发送到另一个Facebook帐户.我使用了多用户界面,没有to:字段.当我在我的其他Facebook帐户刷新页面时,我看到世界图标上的红色1只是一瞬间,但随后它消失了,没有找到任何通知.每次发送请求时都会这样做.我的请求是否有问题,他们会立即被删除?我是否以某种方式错误地配置了我的应用?

facebook-javascript-sdk apprequests

4
推荐指数
1
解决办法
8003
查看次数

iframe 中的字符编码

我有一个以 ISO-8859-1 编码的文本文件。如果您在 Google Chrome 中查看它,它会正确显示。然而,如果你用iframe 来构建它,它看起来是错误的。而且,它在 Firefox 中看起来总是错误的。

我注意到各种不同的服务器和浏览器都有同样的行为。但是,如果我使用 Google Chrome 并在同一台计算机上运行服务器和浏览器,则 iframe 的内容将正确显示。

我应该怎样做才能使文件在所有情况下都能正确显示?看起来浏览器应该能够弄清楚这一点,但在很多情况下它无法做到这一点。

browser http character-encoding

4
推荐指数
1
解决办法
9692
查看次数

如何在 prefetch_lated 之后清除 Django 的缓存查询

我正在呈现一个项目列表及其相关评论。我使用了 prefetch_lated 因此它不会对每个项目的评论发出新的查询。

items = Item.objects.all().prefetch_related('reviews')
Run Code Online (Sandbox Code Playgroud)

后来,我添加了评论并尝试重新计算平均值:

item = items[0]
Review.objects.create(item=item, score=5)

# recalculate average
reviews = item.reviews.all()
...
Run Code Online (Sandbox Code Playgroud)

不好了!此评论列表不包括我刚刚创建的评论列表。如何清除此缓存以便可以重新执行查询?或者我应该以不同的方式创建评论?

django-orm

4
推荐指数
1
解决办法
2771
查看次数

我可以在 Flask 中提供多部分 http 响应吗?

我想做一个类似于表单可以为文件上传生成的多部分 http 请求的多部分 http 响应。它将包含多个数据段,每个数据段都有自己的内容类型。当我谷歌这个时,我找到的只是关于流的信息

我不在乎浏览器是否支持这一点,因为它适用于使用 libcurl 的客户端。但是,我不确定 libcurl 是否也支持多部分响应。可以?您可以做多部分响应吗?

python curl multipart flask

3
推荐指数
1
解决办法
4900
查看次数

与 --N/--no-buffer 等效的 LIBCURL 是什么?

我想在服务器刷新它们后立即从 http 响应中读取数据块,无论它们的大小如何。有些块可能只有 8 个字节。

c++ libcurl chunked-encoding

2
推荐指数
1
解决办法
3181
查看次数