Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:如何在数据库中存储我在随机函数中生成的变量?_Python_Django_Random - Fatal编程技术网

Python Django:如何在数据库中存储我在随机函数中生成的变量?

Python Django:如何在数据库中存储我在随机函数中生成的变量?,python,django,random,Python,Django,Random,我的web应用程序在django中,每当用户按下“下一步”按钮时,它都会显示随机图像。我尝试存储名称,或者更好地存储连接到名称上的图像的编号。例如,如果名称为“image4.jpg”,则我希望将数字4存储为数字或文本 首先,我在models.py文件中有一个类 class Session(User): image_number = models.IntegerField() 变量的类型可能是错误的,因为我不想从表单中获取它。我在views.py文件中生成该编号。所以,我只想储存它 正如

我的web应用程序在django中,每当用户按下“下一步”按钮时,它都会显示随机图像。我尝试存储名称,或者更好地存储连接到名称上的图像的编号。例如,如果名称为“image4.jpg”,则我希望将数字4存储为数字或文本

首先,我在models.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对象直接存储到数据库中