springboot怎么把数据传给前端:springboot 如何引入前端 bootstrap?
这种问题网上一搜一大堆,你可以具体找一篇文章试试,遇到问题可以针对相关问题去提问。springboot通过jar包方式引入bootstrap_个人文章 - SegmentFault 思否 这不是查查就
顺晟科技
2022-10-19 12:13:06
157
我正在Django上开发一个视频游戏网络商店,目前正在购物车上。
这是系统的基本组件:
一个视频游戏模型,包含视频游戏的基本信息(名称、图像、价格、股票等)
购物车模型中的项,包含一个整数字段(金额)和一个一对一的视频游戏字段。这样做的目的是建立一个模型,说明特定客户机将视频游戏添加到购物车的次数
访问客户端模型,包含访问者的IP作为ID和购物车模型
中项的多对多字段型号:
class Videogame(models.Model):
name = models.CharField(max_length=50, blank=False, unique=True)
image = models.ImageField(upload_to='products_images/', blank=False)
category = models.ManyToManyField(Category)
description = models.TextField(blank=True)
stock = models.DecimalField(blank=True, null=True, max_digits=3, decimal_places=0, default=0)
price = models.DecimalField(blank=False, max_digits=6, decimal_places=2, default=0.00)
visible = models.BooleanField(blank=False, default=True)
class Meta:
verbose_name_plural = 'Videogames'
def __str__(self):
return self.name
class ItemInCart(models.Model):
amount = models.PositiveIntegerField(default=1)
product = models.OneToOneField(to=Videogame, on_delete=CASCADE)
id = models.TextField(primary_key=True)
class Meta:
verbose_name_plural = 'Items In Cart'
def __str__(self):
return self.id
class VisitingClient(models.Model):
id = models.GenericIPAddressField(primary_key=True)
amount_of_visits = models.IntegerField(default=1)
first_visit = models.DateTimeField(auto_now_add=True)
last_visit = models.DateTimeField(auto_now=True)
items_in_cart = models.ManyToManyField(ItemInCart)
def __init__(self,*args,**kwargs):
super(VisitingClient, self).__init__(*args, **kwargs)
if self.amount_of_visits is None:
self.amount_of_visits = self.amount_of_visits
def __str__(self):
return self.id
现在,在我的目录部分的html中,我有以下内容:
class Videogame(models.Model):
name = models.CharField(max_length=50, blank=False, unique=True)
image = models.ImageField(upload_to='products_images/', blank=False)
category = models.ManyToManyField(Category)
description = models.TextField(blank=True)
stock = models.DecimalField(blank=True, null=True, max_digits=3, decimal_places=0, default=0)
price = models.DecimalField(blank=False, max_digits=6, decimal_places=2, default=0.00)
visible = models.BooleanField(blank=False, default=True)
class Meta:
verbose_name_plural = 'Videogames'
def __str__(self):
return self.name
class ItemInCart(models.Model):
amount = models.PositiveIntegerField(default=1)
product = models.OneToOneField(to=Videogame, on_delete=CASCADE)
id = models.TextField(primary_key=True)
class Meta:
verbose_name_plural = 'Items In Cart'
def __str__(self):
return self.id
class VisitingClient(models.Model):
id = models.GenericIPAddressField(primary_key=True)
amount_of_visits = models.IntegerField(default=1)
first_visit = models.DateTimeField(auto_now_add=True)
last_visit = models.DateTimeField(auto_now=True)
items_in_cart = models.ManyToManyField(ItemInCart)
def __init__(self,*args,**kwargs):
super(VisitingClient, self).__init__(*args, **kwargs)
if self.amount_of_visits is None:
self.amount_of_visits = self.amount_of_visits
def __str__(self):
return self.id
如果用户触摸add to cart客户端,则在js中会发生这种情况:
class Videogame(models.Model):
name = models.CharField(max_length=50, blank=False, unique=True)
image = models.ImageField(upload_to='products_images/', blank=False)
category = models.ManyToManyField(Category)
description = models.TextField(blank=True)
stock = models.DecimalField(blank=True, null=True, max_digits=3, decimal_places=0, default=0)
price = models.DecimalField(blank=False, max_digits=6, decimal_places=2, default=0.00)
visible = models.BooleanField(blank=False, default=True)
class Meta:
verbose_name_plural = 'Videogames'
def __str__(self):
return self.name
class ItemInCart(models.Model):
amount = models.PositiveIntegerField(default=1)
product = models.OneToOneField(to=Videogame, on_delete=CASCADE)
id = models.TextField(primary_key=True)
class Meta:
verbose_name_plural = 'Items In Cart'
def __str__(self):
return self.id
class VisitingClient(models.Model):
id = models.GenericIPAddressField(primary_key=True)
amount_of_visits = models.IntegerField(default=1)
first_visit = models.DateTimeField(auto_now_add=True)
last_visit = models.DateTimeField(auto_now=True)
items_in_cart = models.ManyToManyField(ItemInCart)
def __init__(self,*args,**kwargs):
super(VisitingClient, self).__init__(*args, **kwargs)
if self.amount_of_visits is None:
self.amount_of_visits = self.amount_of_visits
def __str__(self):
return self.id
这就是我的视图的样子
class Videogame(models.Model):
name = models.CharField(max_length=50, blank=False, unique=True)
image = models.ImageField(upload_to='products_images/', blank=False)
category = models.ManyToManyField(Category)
description = models.TextField(blank=True)
stock = models.DecimalField(blank=True, null=True, max_digits=3, decimal_places=0, default=0)
price = models.DecimalField(blank=False, max_digits=6, decimal_places=2, default=0.00)
visible = models.BooleanField(blank=False, default=True)
class Meta:
verbose_name_plural = 'Videogames'
def __str__(self):
return self.name
class ItemInCart(models.Model):
amount = models.PositiveIntegerField(default=1)
product = models.OneToOneField(to=Videogame, on_delete=CASCADE)
id = models.TextField(primary_key=True)
class Meta:
verbose_name_plural = 'Items In Cart'
def __str__(self):
return self.id
class VisitingClient(models.Model):
id = models.GenericIPAddressField(primary_key=True)
amount_of_visits = models.IntegerField(default=1)
first_visit = models.DateTimeField(auto_now_add=True)
last_visit = models.DateTimeField(auto_now=True)
items_in_cart = models.ManyToManyField(ItemInCart)
def __init__(self,*args,**kwargs):
super(VisitingClient, self).__init__(*args, **kwargs)
if self.amount_of_visits is None:
self.amount_of_visits = self.amount_of_visits
def __str__(self):
return self.id
这里,我基本上为客户机的存在做准备,在必要时创建它,然后等待AJAX发布,然后用Cart中的新项更新客户机对象,并向AJAX发送成功标志,在AJAX中重新加载页面,以便用新项更新HTML。
显然,在项目出现之前,我必须重新加载两次。有事吗?为什么不一次重载就行呢?谢谢!
顺晟科技:
将调用(大概是)函数来刷新页面。
然后声明,一旦有了它,您将再次刷新页面()。
class Videogame(models.Model):
name = models.CharField(max_length=50, blank=False, unique=True)
image = models.ImageField(upload_to='products_images/', blank=False)
category = models.ManyToManyField(Category)
description = models.TextField(blank=True)
stock = models.DecimalField(blank=True, null=True, max_digits=3, decimal_places=0, default=0)
price = models.DecimalField(blank=False, max_digits=6, decimal_places=2, default=0.00)
visible = models.BooleanField(blank=False, default=True)
class Meta:
verbose_name_plural = 'Videogames'
def __str__(self):
return self.name
class ItemInCart(models.Model):
amount = models.PositiveIntegerField(default=1)
product = models.OneToOneField(to=Videogame, on_delete=CASCADE)
id = models.TextField(primary_key=True)
class Meta:
verbose_name_plural = 'Items In Cart'
def __str__(self):
return self.id
class VisitingClient(models.Model):
id = models.GenericIPAddressField(primary_key=True)
amount_of_visits = models.IntegerField(default=1)
first_visit = models.DateTimeField(auto_now_add=True)
last_visit = models.DateTimeField(auto_now=True)
items_in_cart = models.ManyToManyField(ItemInCart)
def __init__(self,*args,**kwargs):
super(VisitingClient, self).__init__(*args, **kwargs)
if self.amount_of_visits is None:
self.amount_of_visits = self.amount_of_visits
def __str__(self):
return self.id
因此向服务器调用两个GET请求并“重新加载”两次。
05
2022-12
02
2022-12
02
2022-12
29
2022-11
29
2022-11
24
2022-11