【问题标题】:Read a value from the URL in django从 django 中的 URL 读取一个值
【发布时间】:2022-01-22 04:38:33
【问题描述】:

我正在尝试读取 url 的值并将其添加到 django 中的模型中。

基本上如果我有以下链接

my_site.com/special_event/123

我如何能够捕获链接的最后一部分 (123) 并将其保存为我的模型的条目。对于上下文,我正在尝试在我的网站上进行抽奖,当有人扫描 QR 码时,它会将他们发送到我的网站,并且链接的末尾将是我将用来抽奖的随机数。所以在这种情况下,一个人的抽奖券将是 123。

到目前为止,我有这个代码: 型号:

class RaffleEntry(models.Model):
entry_number = models.IntegerField(blank=False)

def __str__(self):
    return self.entry_number

我尝试这样做的视图:

def add_entry(request, entry_number):
    entry_number = RaffleEntry.objects.create()
    return render(request, 'front/entry_success')

我还尝试向 URL 添加一个 INT 参数,如下所示:

    path('special_events/add_entry/<int:entry_number>', views.add_entry, name='special_events/add_entry>'),

任何帮助,甚至只是指出我正确的方向,将不胜感激。谢谢。

【问题讨论】:

标签: python django django-models django-views django-forms


【解决方案1】:

因此,我只需要更改我的 Views.py,代码如下:

def add_entry(request, entry_number):
RaffleEntry.instance = RaffleEntry.objects.create(entry_number=entry_number)
return render(request, 'front/entry_success.html', {'entry_number': entry_number})

这样就解决了。

【讨论】:

    【解决方案2】:
    from random import randint
    generated=[]
    
    def generate_random_number(seed):
        random_number=(randint(0,seed))
        return str(random_number)
    
    
    for i in range(0,10):
            random_number=generate_random_number(9999)
            if not random_number in generated:
            url="my_site.com/special_event/"+random_number
            url1=url
            url=(url.split("/"))
            print(url[len(url)-1], url1)
            generated.append(random_number)
    
    print(generated)
    

    4887 my_site.com/special_event/4887

    682 my_site.com/special_event/682

    3755 my_site.com/special_event/3755

    7953 my_site.com/special_event/7953

    8867 my_site.com/special_event/8867

    5238 my_site.com/special_event/5238

    9309 my_site.com/special_event/9309

    2424 my_site.com/special_event/2424

    3930 my_site.com/special_event/3930

    8064 my_site.com/special_event/8064

    ['4887', '682', '3755', '7953', '8867', '5238', '9309', '2424', '3930', '8064']

    【讨论】:

    • 不是每个人都有相同的链接,这就是问题所在。每个二维码都有自己的链接变体
    • 如果最后一个数字是随机生成的,不知道每个人都会有相同的链接
    • 我的意思是不是*每个人都有相同的链接,我生成了一整张二维码来分发给客人,每个二维码都会将您链接到 my_site.com/special_event/8064 或任何数字是随机生成的。我需要获取最后的数字并将它们保存在数据库中,这样我就可以将它们用作抽奖券。
    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2021-05-29
    • 2011-11-26
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多