我有一些(数百条)消息,其类型为:
Type Message
1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1 Maecenas eu risus a arcu rutrum vehicula vel in neque.
1 Curabitur ante sapien, cursus nec diam non, porttitor sagittis leo.
2 Nunc et nisi nec ligula placerat accumsan.
2 In lacinia, neque rutrum aliquet luctus, odio ligula accumsan risus.
3 ...
3 ...
... ...
我想从类型1消息中选择随机消息,或者输入2条消息等。我想构建一种有效的方法。所以我的问题是:
我应该如何存储这些消息?使用列表,字典,txt或DB表(我也使用Django)。消息将是静态的。我不会定期更改或编辑它们。可能在将来购买我需要使用其他语言的翻译。
如何根据类型选择RANDOM消息?即“带有类型1的随机消息”。
全心全意,
答案 0 :(得分:2)
将您的消息存储在Django模型中,然后使用random order:
选择您的消息from django.db import models
class Message(models.Model):
type = models.IntegerField(default=1)
message_text = models.CharField(max_length=500)
@classmethod
def random_by_type(cls, type_number):
return cls.objects.filter(type=type_number).order_by('?').first()
我已将其设为类方法,因此您可以选择随机消息:
random_message = Message.random_by_type(1)
您当然可以使用静态设置执行此操作:
import random
messages = {
1: ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Maecenas eu risus a arcu rutrum vehicula vel in neque.'
'Curabitur ante sapien, cursus nec diam non, porttitor sagittis leo.',
],
2: ['Nunc et nisi nec ligula placerat accumsan.',
'In lacinia, neque rutrum aliquet luctus, odio ligula accumsan risus.',
],
3: ['....'],
# ...
}
def random_by_type(type_number):
return random.choice(messages[type_number])
但为什么忽略使用Django管理界面来管理消息的可能性呢?