小编kir*_*ril的帖子

在Heroku上获取客户端的真实IP地址

在Heroku Cedar上,我想获得客户端的IP.第一次尝试:

ENV['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为所有请求都通过代理传递.所以替代方案是使用:

ENV['HTTP_X_FORWARDED_FOR']
Run Code Online (Sandbox Code Playgroud)

但这不太安全,是吗?

如果它只包含一个值,我就拿这个.如果它包含多个值(以逗号分隔),我可以选择第一个值.

但是,如果有人操纵这个价值呢?我不能相信ENV['HTTP_X_FORWARDED_FOR'],我可以用ENV['REMOTE_ADDR'].并且我也没有可以使用的可信代理列表.

但总是必须有一些方法来可靠地获取客户端的IP地址.你知道吗?

他们的文档中,Heroku描述了X-Forwarded-For"连接到Heroku路由器的客户端的原始IP地址".

听起来好像Heroku可能会X-Forwarded-For用原始的远程IP 覆盖它.这样可以防止欺骗,对吧?有人可以验证吗?

http ip-address heroku

31
推荐指数
2
解决办法
2万
查看次数

如何在 django rest 框架中定义多个油门

django_Rest_framework 的文档指出:

如果您想同时施加突发节流率和持续节流率,也可以使用多个节流。例如,您可能希望将用户限制为每分钟最多 60 个请求,每天最多 1000 个请求

但是,没有解释如何实现类似的情况。

我试过这样的事情,但没有用

REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': (
        'rest_framework.throttling.AnonRateThrottle',
        'rest_framework.throttling.UserRateThrottle'
    ),
    'DEFAULT_THROTTLE_RATES': {
        'anon': '100/day',
        'user': ['30/minute', '1000/day']
    }
}
Run Code Online (Sandbox Code Playgroud)

django-rest-framework

7
推荐指数
2
解决办法
3056
查看次数

使用scrapy以多种格式导出抓取数据

我正在抓取一个网站将数据导出为语义格式(n3).但是,我还想对该数据进行一些数据分析,因此以csv格式使用它更方便.

要获得两种格式的数据,我都可以

scrapy spider -t n3 -o data.n3
scrapy spider -t csv -o data.csv
Run Code Online (Sandbox Code Playgroud)

但是,这会刮掉数据两次,我无法承受大量数据.

有没有办法将相同的数据导出为多种格式?(不多次下载数据)

我觉得有趣的是有一个可以导出成不同格式的抓取数据的中间表示.但似乎没有办法用scrapy做到这一点.

python exporter scrapy web-scraping

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

在 django `.po` 文件中标记为 #~ 的那些翻译是什么意思?

我正在使用 django i18n,并且makemessages在开发我的应用程序时,我被多次执行以包含我标记为翻译的新短语。

最近,我意识到有一些翻译(不是很多)标记为:

#~ msgid "Location:"
#~ msgstr "Lugar:"

#~ msgid "Sector:"
#~ msgstr "Sector:"
Run Code Online (Sandbox Code Playgroud)

我发现这些条目是重复的,因为在文件中也有正确的翻译:

#: templates/userprofile.html:63
msgid "Location"
msgstr "Lugar:"

#: tiesport/userprofile.html:69
msgid "Sector"
msgstr "Sector:"
Run Code Online (Sandbox Code Playgroud)

这个'#~'是什么意思?

django internationalization po

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

合并两个添加相应值的pandas数据帧

我有两个这样的数据帧:

df1 = pd.DataFrame({'A': [1,0,3], 'B':[0,0,1], 'C':[0,2,2]}, index =['a','b','c'])
df2 = pd.DataFrame({'A': [0,0], 'B':[2,1]}, index =['a','c'])
Run Code Online (Sandbox Code Playgroud)

df1和df2:

   | A | B | C |          | A | B |    
---|---|---|---|       ---|---|---|
 a | 1 | 0 | 0 |        a | 0 | 2 |   
 b | 0 | 0 | 2 |        c | 0 | 1 |
 c | 3 | 1 | 2 |
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

   | A | B | C |
---|---|---|---|
 a | 1 | …
Run Code Online (Sandbox Code Playgroud)

python data-analysis pandas

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

使用 testpaths 配置 pytest 在测试文件夹中搜索测试

我试图通过在 pytest.ini 文件中包含 testpaths 选项来提高测试收集速度。

在每个应用程序文件夹中,我都有一个tests放置测试的文件,因此我将其包含如下:

[pytest]
testpaths = tests
Run Code Online (Sandbox Code Playgroud)

但是,没有收集任何测试。它返回错误:ERROR: file or directory not found: tests

我缺少什么?

python testing django pytest pytest-django

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