我是OOP和web开发的新手,并且正在习惯于定义对象和类似的对象来保存数据。我在创建基本的html网站和使用React和JS做一些状态管理方面也有一些经验。然而,目前我正在创建一个Django网站来练习我的OOP技能和Django技能,但我遇到了一些障碍。
当我的网站的主页加载时,会对API进行一次提取,该API从服务器获取JSON,其中包含标题、作者和发布日期等详细信息。我遍历了JSON并创建了一系列包含该信息的Post()对象。Post对象(此时包含在列表中)随后被传递到我的views.py中函数的render方法中,然后迭代遍历,title属性作为链接显示在html页面上。我想以某种方式在后台将其他属性(作者和发布日期)存储为元数据。信息总是来自API,我不想把它存储在数据库的模型中。我希望在其他视图中使用这些元数据信息(我希望它至少在用户在主页上时可用,并且当他单击由对象创建的链接时,我希望将整个帖子对象信息转移到新页面)。但是,现在,一旦呈现页面,对象就不再存在,因为创建它们的方法已经完成运行。
为了在我的Django站点上拥有某种“状态”,我没有掌握Django、OOP或web开发的什么最重要的基本概念?特别是,我希望能够从一个视图到另一个视图“传递”临时信息。我正在考虑创建一个类(类似于ContentManager)来管理所有的状态,但我不知道它将位于何处。就视图而言,一切似乎都是静态的。我使用过像React这样的web框架来管理状态。也许这就是我产生这个想法的原因。
这似乎是一个简单的基本概念,但很难找到我想要做什么,通过谷歌它。大多数事情都是关于使用模型的。不管怎样,这已经够乱的了。提前感谢您的帮助!
发布于 2020-01-10 04:50:31
您可以使用来实现这一点。例如:
def load_api(request):
data = requests.get('/your/api')
# handle your API response some how
meta_data = data.get('meta_data')
request.session['meta_data'] = meta_data
return HttpResponse('Your View')
在另一个视图中显示meta_data
:
def show_meta_data(request):
data = request.session.get('meta_data')
return render(request, 'template', data)
此外,您还可以从会话中删除该元数据:
del request.session['meta_data']
或者django.contrib.auth.logout()
它将被清除,因为它使用。
https://stackoverflow.com/questions/59675436
复制相似问题