【问题标题】:How to store singular dynamic values in a Django web application?如何在 Django Web 应用程序中存储奇异动态值?
【发布时间】:2017-03-09 13:14:21
【问题描述】:

Django 中,当我想存储用户、地点等模型时,我可能会使用 SQL 数据库,但当我想存储特定值(只有一个)时,我不知道该使用什么。

所以,我正在做一个网站,其中的一些信息每月都会发生变化。举个例子:

<meta name="description" content="This team is in {{ ranking }} in the world ranking"> 

我需要更改该值,最好是每月从 Django Admin 更改,并且带有一个对象的模型似乎太多(不是太多工作,而是太多)。

我从 this question 开始研究 NoSQL,我倾向于使用 Redis 或类似的键值数据库。

这是正确的方法还是我完全偏离了轨道?

【问题讨论】:

  • SQLite 为您提供了成长空间并且超轻量级(顾名思义)不过,这确实是一个很可能会吸引基于意见的答案的问题。
  • "一个有一个对象的模型看起来太多了(不是太多的工作,而是太多了)。"我不明白为什么会这样。您创建它,它会在您的数据库中存储一点点,仅此而已;它不会耗尽您的磁盘空间或任何东西。你想多了;保持简单并使用你所知道的。
  • 除了@Evert 的评论,我想补充一点,写一个简单的键值存储模型比写这个问题要快。
  • 一个key-value表,缓存在redis中就绰绰有余了!

标签: python django


【解决方案1】:

您可以将python's shelve 用于对象持久性的简单开箱即用解决方案。使用方便:

with shelve.open('my_store') as my_store:
    my_store['ranking'] = 10

然后:

with shelve.open('my_store') as my_store:
    ranking = my_store['ranking']

希望这会有所帮助!

【讨论】:

  • 感谢您的解决方案,但它仅适用于某些情况,因此我接受了其他答案。例如:它不适用于服务器的复制。
【解决方案2】:

我认为对于这种情况,最好使用Constance - Dynamic Django settings 等现有解决方案。它是通过 django 管理界面修改变量的通用解决方案。

这里是类似应用列表https://djangopackages.org/grids/g/live-setting/

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多