首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django存储用于跨多个视图使用的“状态”和对象

Django存储用于跨多个视图使用的“状态”和对象
EN

Stack Overflow用户
提问于 2020-01-10 04:13:14
回答 1查看 425关注 0票数 2

我是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框架来管理状态。也许这就是我产生这个想法的原因。

这似乎是一个简单的基本概念,但很难找到我想要做什么,通过谷歌它。大多数事情都是关于使用模型的。不管怎样,这已经够乱的了。提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-01-10 04:50:31

您可以使用来实现这一点。例如:

代码语言:javascript
运行
AI代码解释
复制
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

代码语言:javascript
运行
AI代码解释
复制
def show_meta_data(request):
    data = request.session.get('meta_data')
    return render(request, 'template', data)

此外,您还可以从会话中删除该元数据:

代码语言:javascript
运行
AI代码解释
复制
 del request.session['meta_data']

或者django.contrib.auth.logout()它将被清除,因为它使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59675436

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文