小编Hid*_*Hid的帖子

Flask 应用程序的会话 cookie 太大

我正在尝试使用会话(本地)加载某些数据,并且它已经工作了一段时间,但是现在我收到以下警告,并且不再加载通过会话加载的数据。

“b'session'”cookie 太大:该值是 13083 字节,但标头需要 44 个额外字节。最终大小为 13127 字节,但限制为 4093 字节。浏览器可能会默默地忽略大于此大小的 cookie。

我尝试过使用session.clear(). 我还打开了 chrome 开发者工具并尝试删除与127.0.0.1:5000. 我还尝试使用不同的密钥来与会话一起使用。

如果我能得到一些帮助,我将不胜感激,因为我已经寻找解决方案好几个小时了。

编辑:
我不希望通过切换到服务器端会话来增加我的限制。相反,我想知道如何清除客户端会话数据,以便可以重用它。

编辑#2:
我明白了。我忘记了我向数据库推送了更多数据,因此每次执行查询时,会话都会立即填满。

python session flask

9
推荐指数
1
解决办法
1万
查看次数

Elasticsearch 6.2 中没有规范化的完全匹配、不区分大小写的匹配

我已经查看了我能找到的关于执行完全匹配、不区分大小写查询的每篇文章和帖子,但是在实施时,它们并没有执行我正在寻找的内容。

在将此问题标记为重复之前,请阅读整篇文章。

给定一个用户名,我想查询我的 Elasticsearch 数据库以仅返回与用户名完全匹配的文档,但也不区分大小写。

我曾尝试lowercase为我的username财产指定一个分析器并使用match查询来实现此行为。虽然这解决了不区分大小写匹配的问题,但它在精确匹配时失败了。

我研究过使用lowercase规范化器,但这会使我所有的用户名在索引之前都小写,所以当我聚合用户名时,它们会以小写形式返回,这不是我想要的。我需要保留用户名中每个字母的原始大小写。

我想要的是以下行为:


插入用户

POST {elastic}/users/_doc

{
    "email": "random@email.com",
    "username": "UsErNaMe",
    "password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)

该文档将存储在一个索引中,users完全按照它的方式命名。

通过用户名获取用户

GET {frontend}/user/UsErNaMe
Run Code Online (Sandbox Code Playgroud)

应该回来

{
    "email": "random@email.com",
    "username": "UsErNaMe",
    "password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)

GET {frontend}/user/username
Run Code Online (Sandbox Code Playgroud)

应该回来

{
    "email": "random@email.com",
    "username": "UsErNaMe",
    "password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)

GET {frontend}/user/USERNAME
Run Code Online (Sandbox Code Playgroud)

应该回来

{
    "email": "random@email.com",
    "username": "UsErNaMe",
    "password": "1234567"
}
Run Code Online (Sandbox Code Playgroud)

GET {frontend}/user/UsErNaMe $RaNdoM LeTteRs
Run Code Online (Sandbox Code Playgroud)

应该返回任何东西。

谢谢你。

case-insensitive exact-match elasticsearch

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

代码只能在DispatchQueue.main.async块中运行,为什么?

我编写此代码以在用户开始编辑UITextField时选择所有文本:

@IBAction func onEditingBegin(_ sender: Any) {
    print("editing began")
    let textfield = sender as! UITextField
    textfield.selectAll(nil)
}
Run Code Online (Sandbox Code Playgroud)

但是直到我将textfield.selectAll(nil)一行包含在一个DispatchQueue.main.async块中它才会起作用:

DispatchQueue.main.async {
    textfield.selectAll(nil)
}
Run Code Online (Sandbox Code Playgroud)

这是为什么?

我还打印出了线程的名称,onEditingBegin()这是结果:

<NSThread: 0x60800006c880>{number = 1, name = main}

所以看起来它已经在主线程上被触发了,但代码仍然无法工作,除非textfield.selectAll()DispatchQueue.main.async块内部调用.

ios swift

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

使用 templateUrl 中的条件在移动或桌面模板之间切换(Angular 7)

我想根据屏幕宽度在桌面和移动模板之间切换,以确保我的应用程序具有响应性。我正在尝试执行以下操作:

@Component({
    selector: 'app-root',
    templateUrl: "./" + (window.innerWidth < 768) ? "app.component.html" : "app.component.mobile.html",
    styleUrls: ['./app.component.css']
})
Run Code Online (Sandbox Code Playgroud)

但是,这是行不通的。代替模板加载,字符串"app.component.html", 出现在屏幕上。

更有趣的是,如果我使用以下内容:

@Component({
    selector: 'app-root',
    templateUrl: "./" + (false) ? "app.component.html" : "app.component.mobile.html",
    styleUrls: ['./app.component.css']
})
Run Code Online (Sandbox Code Playgroud)

该页面仍然只显示字符串"app.component.html"

是否不支持使用条件语句作为装饰器中templateUrl字段的值@Component

如果不是,我可以使用什么替代解决方案来实现这种仍然是模块化的并遵循最佳实践的响应水平?

更新:我通过使用ng serve --aot而不仅仅是ng serve. 但是,我决定不考虑这个想法,因为它不会在窗口调整大小时切换模板。

responsive-design angular angular7

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