我知道自动设置是有你在www. example中定义的任何模型 www.example.com 成为数据库表。
我试图定义的模型将不会是表。它们需要存储动态数据(我们从API中获取和配置),每次用户搜索某个内容时。这些数据需要被组装,然后当用户完成时,丢弃。
以前我使用的是数据库表。它允许我做一些事情,比如“旅行”。all”,并将其传递给任何模板,因为它们都来自一个数据源。我听说你可以不“保存”模型示例化,然后它不会保存到数据库,但是我需要在多个其他视图中访问这些数据(我已经在一个视图中组装),以操纵它并显示它。. .如果我不保存我不能访问它,如果我保存,那么它在一个数据库中(这将有多个用户的并发问题)
我真的不想把字典/列表传来传去,我甚至不知道如果我不得不这样做的话我是怎么做的。
想法?
谢谢!
8条答案
按热度按时间gwbalxhn1#
另一个选项可以是用途:
防止Django创建数据库表。
https://docs.djangoproject.com/en/2.2/ref/models/options/#managed
muk1a3rh2#
听起来就像一个普通的
Class
。如果愿意,可以把它放到
models.py
中,只是不要在django.db.models.Model
上子类化它。或者你可以把它放在任何你想使用它的python文件中。当请求进来时,可能使用the middleware来示例化它,当请求完成时丢弃它。一种访问策略可能是将其附加到请求对象本身,而不是ymmv。
mccptt673#
与SQLAlchemy不同,django的ORM不支持在没有数据库后端的情况下查询模型。
您的选择仅限于使用SQLite内存数据库,或者使用dqms等第三方应用程序,这些应用程序为django的ORM提供了纯内存后端。
rur96b6h4#
使用Django的cache framework存储数据并在视图之间共享。
p4tfgftt5#
尝试使用基于数据库或文件的sessions。
chhqkbe16#
你需要缓存,这将存储在内存中的数据,将是单独的应用程序。
使用Django,你可以使用各种缓存后端,如memcache,database-backend,redis等。由于您需要一些基本的查询和排序功能,我推荐使用Redis。Redis具有高性能(不高于memcache),支持数据结构(string/hash/lists/sets/sorted-set)。
Redis不会取代数据库,但将适合作为键值数据库模型,在这种模型中,你必须准备键来有效地查询数据,因为Redis只支持对键的查询。
Redis命令在http://redis.io/commands上可用
Django Redis缓存后端:https://github.com/sebleier/django-redis-cache/
h6my8fg27#
这是11年前的事了,但我遇到了和原始海报完全相同的问题,并想出了一个聪明的解决方案,我想我会分享:
models.py:
序列化程序。py:
views.py:
uqzxnwby8#
我使用MongoDB或其他nosql;持久化和删除数据非常快,你可以使用django-norel(mongodb)。
http://django-mongodb.org/