Python Django:如何在数据库中存储我在随机函数中生成的变量?
我的web应用程序在django中,每当用户按下“下一步”按钮时,它都会显示随机图像。我尝试存储名称,或者更好地存储连接到名称上的图像的编号。例如,如果名称为“image4.jpg”,则我希望将数字4存储为数字或文本 首先,我在models.py文件中有一个类Python Django:如何在数据库中存储我在随机函数中生成的变量?,python,django,random,Python,Django,Random,我的web应用程序在django中,每当用户按下“下一步”按钮时,它都会显示随机图像。我尝试存储名称,或者更好地存储连接到名称上的图像的编号。例如,如果名称为“image4.jpg”,则我希望将数字4存储为数字或文本 首先,我在models.py文件中有一个类 class Session(User): image_number = models.IntegerField() 变量的类型可能是错误的,因为我不想从表单中获取它。我在views.py文件中生成该编号。所以,我只想储存它 正如
class Session(User):
image_number = models.IntegerField()
变量的类型可能是错误的,因为我不想从表单中获取它。我在views.py文件中生成该编号。所以,我只想储存它
正如我所说,views.py文件中有一个函数,用于生成随机数
def func_random(self):
random_im_list = random.sample(xrange(1,20),5)
return {1v: random_im_list[0],
2v: random_im_list[1],
... etc}
所以,这里我生成了一个5个数字的列表,因为我想在每个会话中显示5个图像。用户按下“下一步”按钮5次,每次都可以看到一个新的随机图像
我还在views.py中为这五页设置了五个类
class Image1(Page):
class Image2(Page):
class Image3(Page):
class Image4(Page):
class Image5(Page):
这里我需要一些帮助,因为我不等待用户的任何输入。我已经用随机数生成了列表。那么,如何将它们存储在数据库中呢?
第一次会话后的数据库必须有5列,每列中有一个数字
然后我有了模板文件:
{% if Page == 1 %}
<div>
<im src="{{static_url}}images/image{{ 1v }}.jpg" />
<div>
{% elif Page == 2 %}
<div>
<im src="{{static_url}}images/image{{ 2v }}.jpg" />
<div>
etc....
{%if Page==1%}
{%elif Page==2%}
等
使用一个以图像编号为参数的视图可能更有意义。然后,您可以检查它是否是第一个图像,如果是,则生成一个随机图像列表供用户查看。此外,你应该考虑使用你想要做的事情。如果使用会话,您可以这样编写视图:
from django.shortcuts import render
def image_view(request, image_number): # image_number is from 1 to 5
if image_number == 1:
request.session['image_list'] = list(random.sample(xrange(1,20),5))
image = request.session['image_list'][image_number - 1]
return render(request, "yourtemplate.html", {"image_number": image_number, "image": image})
<div>
<img src="{{static_url}}images/image{{ image }}.jpg" />
</div>
您的模板可以如下所示:
from django.shortcuts import render
def image_view(request, image_number): # image_number is from 1 to 5
if image_number == 1:
request.session['image_list'] = list(random.sample(xrange(1,20),5))
image = request.session['image_list'][image_number - 1]
return render(request, "yourtemplate.html", {"image_number": image_number, "image": image})
<div>
<img src="{{static_url}}images/image{{ image }}.jpg" />
</div>
你好,谢谢你的回答。如果我不想使用sessions,它是models.py文件中变量的类型。我是django的noob,我不太了解它。在models.py文件中创建类时,该类的属性将成为数据库中的列,对吗?可以使用。然后图像编号将像“5,7,1,14,11”一样存储,因此您必须将它们放入字符串中。您还可以使用,它可以将python对象直接存储到数据库中