网站上的实时时钟

2024-09-28 20:59:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个带有烧瓶的网站,想显示不同城市的实时时钟。 我在数据库中存储了每个城市的经度和纬度。 使用geonames插件,我可以通过坐标获得timezoneid。在

示例:

import geonames
geonames_client = geonames.GeonamesClient('demo')
geonames_result = geonames_client.find_timezone({'lat': 48.871236, 'lng': 2.77928})
print geonames_result['timezoneId']

输出:

'欧洲/巴黎'

如何在页面上显示实时时钟?在

示例:

本市当前时间:12:59

升级版: 感谢@Matt,我知道如何用javascript显示实时时区:

^{pr2}$

现在,我遇到了另一个问题-我无法通过坐标。直线"geonames.GeonamesClient('username')”由于某些原因无法工作。我从数据库中读取result['Lat']和result['Lng']。在

import geonames
try:
    location = {}
    location['lat'] = result['Lat']
    location['lng'] = result['Lng']
    geonames_client = geonames.GeonamesClient('username')
    print "test"
    geonames_result = geonames_client.find_timezone(location)
    print geonames_result['timezoneId']
    result['Timezone'] = geonames_result['timezoneId']
except:
    result['Timezone'] = 'America/Los_Angeles'

所以,我不断地得到except值。在

我用的是Flask+virtualenv+uwsgi+Nginx

UPD2: 我设法做到了。我正在从mysql数据库中读取城市和城市时区的lat和lng,如果没有指定时区-我会向地理名称.org从long和lat获取时区id并将其写入数据库,这样下次就不需要请求了。然后我将时区id发送到Jinja2模板。使用力矩.js时刻时区显示城市的当前时间。您可以看到更新的页面(首先清除缓存):[链接]范塔齐亚测试-svit.com.ua/city/9在

为了从geonames获取时区,我使用以下函数:

import urllib
import json
try:
    url = "http://api.geonames.org/timezoneJSON?lat=%s&lng=%s&username=%s" % (Lat, Lng, username)
    response = urllib.urlopen(url);
    data = json.loads(response.read())
    Timezone = data['timezoneId']
except:
    Timezone = ''

其中Lat=纬度,Lng=经度,username=用户名基因组.org在


Tags: importclient数据库usernamelocationresultgeonamesprint
1条回答
网友
1楼 · 发布于 2024-09-28 20:59:40

感谢@Matt,我知道如何用javascript显示实时时区:

<script src="moment.js"></script>
<script src="moment-timezone-with-data-2010-2020.js"></script>
<script type='text/javascript'>
    function update() {
      $('#clock').html(moment().tz("{{timezone}}").format('H:mm:ss'));
    }
    setInterval(update, 1000);
</script>

用于后端。我正在从mysql数据库中读取城市和城市时区的lat和lng,如果没有指定时区-我会向地理名称.org从long和lat获取时区id并将其写入数据库,这样下次就不需要请求了。然后我将时区id发送到Jinja2模板。使用力矩.js时刻时区显示城市的当前时间。您可以看到更新的页面(首先清除缓存):http://test.fantazia-svit.com.ua/city/9

为了从geonames获取时区,我使用以下函数:

^{pr2}$

其中Lat=纬度,Lng=经度,username=用户名gonames.org网站时区-是您在前端插入的时区id

相关问题 更多 >