1

我创建了一个带有常用组件的 Django 应用程序:应用程序、模型视图、模板等。

Django 应用程序的架构是这样的,它基本上只是坐在那里并且什么都不做,直到您通过点击 REST 端点调用其中一个视图。然后它提供一个页面(或者在我的情况下是一些 JSON)并等待下一个 REST 请求。

我想在这个应用程序中插入一些自动推文。为此,我将使用python-twitter库。我的推文将包含一个 URL。Twitter 的网站称,任何插入推文的 URL 都会被 Twitter 本身缩短为 23 个字符。因此,其余字符可用于推文的非 URL 部分。但是 23 个字符的大小可能会改变。因此 Twitter 建议在加载应用程序时检查当前缩短 URL 的大小,但每天不超过一次。这就是我可以使用 python-twitter 检查当前缩短 URL 大小的方法:

>>> import twitter

>>> twitter_keys = {
    "CONSUMER_KEY": "BlahBlahBlah1",
    "CONSUMER_SECRET": "BlahBlahBlah2",
    "ACCESS_TOKEN_KEY": "BlahBlahBlah3",
    "ACCESS_TOKEN_SECRET": "BlahBlahBlah4",
}

>>> api = twitter.Api(
    consumer_key=twitter_keys['CONSUMER_KEY'],
    consumer_secret=twitter_keys['CONSUMER_SECRET'],
    access_token_key=twitter_keys['ACCESS_TOKEN_KEY'],
    access_token_secret=twitter_keys['ACCESS_TOKEN_SECRET'],
)

>>> api.GetShortUrlLength()
23

我应该在哪里以及如何保存此值 23 以便在应用程序启动时仅从 Twitter 检索一次,但在我的应用程序执行期间始终可供我的 Django 模型使用?我应该把它放在settings.py文件中吗?或者别的地方?如有必要,请包含一个代码示例,以使其绝对清晰明确。

4

1 回答 1

1

很多不同的方式,这主要是一个意见问题。当然,最简单的方法是将这些数据保存在连接到 twitter 的模块的源文件中。这看起来像您现有的系统。只要这不是提交到公共 VCS 存储库的应用程序,它就可以正常工作。

如果代码进入公共存储库,您有两个选择。使用“app_settings”文件或将其保存在数据库中。此处描述了这两种方法:https ://stackoverflow.com/a/372​​66007/267540

于 2016-06-07T10:11:35.567 回答