将maxmind geoip数据与金字塔web应用程序集成。

pyramid_geoip的Python项目详细描述


[金字塔geoip][]将[maxmind][]geoip数据库与[金字塔][]
/sqlalchemy web应用程序集成。您可以使用它通过其IP地址来定位传入请求:


data=request.geoip('89.16.224.130')


data['city',data['country_code']
->;'london','gb'


data['latitude',data['longitude']
->;51.5141999999988,-0.09309999999992633


geoip数据存储在一个*sql数据库*(而不是
将其存储在文件系统中),并在应用程序启动时将所有数据(许多MB)读入*内存*
。这很可能*不是*您想要的模式/设置,在
这种情况下,您可能会发现使用[pygeoip][]更好地集成您自己。

[alembic][]:


alembic-c$paste_-config-revision--autogenerate
alembic-c$paste_-config-upgrade head


覆盖数据源,使用
[pastedeploy配置文件][]:

geoip.cities_ip6_url=https://example.com/geolitectyv6.dat.gz

您还可以使用本地提供的数据文件,这些文件将覆盖从db machinery读取的url/
。默认查找的默认值为:



geoip.cititiip4\u-ipu-path=vendor/geolitecity.dat
geoip.citiip6.citiip6.dat







>使用“request.geoip”提供的实用工具按IP地址查找数据,例如在[view callable][]:







>默认情况下,默认情况下,这将按默认值查找数据,默认情况下,这将按默认值查找数据,这将按默认值使用传入请求的IP地址(从[wsgi environment][]中的“remote_addr”读取,或从[load balancer或proxy][]提供的“x-forwarded-for”头的值读取)。请注意
它也适用于IPv4和IPv6地址。


自己指定地址,例如:


data=request.geoip('89.16.224.130')

等:


data['country_code''''''gb''gb'
data['city''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''gb'>




data['>


注意,您可能需要:

1。在主
应用程序配置中“config.include”包之前运行此脚本(因为下载数据需要时间,并且
应用程序将挂起,直到数据可用)
1。计划每月运行一次测试,` pip安装nose coverage mock,例如:

$nosets pyramid撸geoip--with doctest--with coverage--cover tests--cover package pyramid撸geoip
……
name stmts miss cover missing
----------
pyramid撸geoip 10 0100%
金字塔geoip.interfaces 4 0 100%
金字塔geoip.lookup 69 0 100%
金字塔geoip.update 12 0 100%
总95 0 100%
——————————————————————————————————————————————————————---————
在0.041秒内运行了6个测试




[pyramid-geoip]:https://github.com/thruflo/pyramid-geoip
[maxmind]:http://www.maxmind.com/en/home
[pyramid]:http://pyramid.readthedocs.org
[pygeoip]:https://pypi.python.org/pypi/pygeoip
[pip]:http://www.pip-installer.org
[pyramid_-basemodel.blob.blob]:https://github.com/thruflo/pyramid_-basemodel/blob/master/src/pyramid_-basemodel/blob.py
[alembic]:http://alembic.readthedocs.org/en/latest/tutorial.html自动生成迁移
[配置应用程序]:http://pyramid.readthedocs.org/en/latest/narr/configuration.html
[视图可调用]:http://pyramid.readthedocs.org/en/latest/narr/views.html
[粘贴部署配置文件]:http://pyramid.readthedocs.org/en/latest/narr/paste.html
[wsgi环境]:http://en.wikipedia.org/wiki/web_服务器网关接口
[负载平衡器或代理]:http://en.wikipedia.org/wiki/x-forwarded-for

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java线程执行器服务   aspose如何通过java获得单词bookmark之前的所有文本内容?   一对一映射的java Hibernate合并问题   java SOAP XSD根元素问题   java如何保护我的Spring启动API   java使用GeoJson向google地图添加标记   java安卓:在SQLite中没有这样的列   java STS 2.8.0 StartExplorer/Legacy插件安装问题   java如何以编程方式获取AppBar高度?   在Java中将BigDecimal添加到BigDecimal   java不支持ntdll。dll是windows xp和windows vista的标准配置吗?   内容类型为application/xwwwformurlencoded的java Http Put请求在Spring中不起作用   java在数组中计算工资并返回答案   java数字/货币格式   elasticsearch java api中的弹性搜索查询