Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >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

复制
相关文章
Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象
Django 2.1.7 视图 Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据 Django 2.1.7 视图 - 自定义404错误、500错误
Devops海洋的渔夫
2019/06/18
1.5K0
Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象
五、Django基于对象的跨表查询
关系属性(字段)写在哪个类(表)里面,从当前类(表)的数据去查询它关联类(表)的数据叫做正向查询,反之叫做反向查询
Dreamy.TZK
2020/04/09
1.3K0
MySQL视图,存储过程和触发器的使用
在视图创建后,可以用表的基本操作来使用视图,进行SELECT,WHERE,ORDER BY,联结等操作。视图仅仅是用来查看存储在别处的数据的一种工具而不是一个表,本身存储数据。
小末快跑
2019/07/03
1.1K0
多维存储的SQL和对象使用(二)
持久化类可以定义一个或多个索引;其他数据结构用于提高操作(如排序或条件搜索)的效率。InterSystems SQL在执行查询时使用这些索引。InterSystems IRIS对象和SQL在执行INSERT、UPDATE和DELETE操作时自动维护索引内的正确值。
用户7741497
2022/06/09
7460
Django 视图和模板1.4
视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf-8 from django.http import HttpResponse def index(request): return HttpResponse("index") def detail(request,id): return HttpResponse("detail %s" % id)
Lansonli
2021/10/09
6050
多维存储的SQL和对象使用(一)
本章介绍InterSystems IRIS®对象和SQL引擎如何利用多维存储(全局变量)来存储持久对象、关系表和索引。
用户7741497
2022/06/09
8420
VisualState“视图状态”使用心得
在编辑silverlight中button控件模板的时候,能看到左侧的“Status”状态栏里多了很多状态,这些就是控件的“视图状态”。 其中这里的视图状态又分为了两个组“VisualStateGroup”。 先 以Button控件做个分析,Button共六个视图,分两个组。当Button被Pressed后,Button才会出现焦点,所以 FocusStates组中的状态由Unfcused转换到Focused。而这个两个焦点状态并不和Button的鼠标移入移出的状态相冲突所以是能共 存的。 这里我后先
用户1172164
2018/03/01
6990
Django装饰器的使用 (类视图)
为了理解方便,我们先来定义一个为函数视图准备的装饰器(在设计装饰器时基本都以函数视图作为考虑的被装饰对象),及一个要被装饰的类视图。
kirin
2021/02/04
1.1K0
有状态和无状态对象
这个概念在多线程中一直被提及,实际上很简单。 1.有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。
潇洒
2019/07/02
1.2K0
传统存储和对象存储的区别
近几年是大数据的时代,其中有一个对象存储比较火,有一款“对象存储”的产品。对象存储到底是什么东西?它与传统存储方式,有什么区别呢?下面的文章就将为您分析对象存储和传统存储的区别。
Kami米雅
2021/12/15
15.2K1
传统存储和对象存储的区别
Django—视图
视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者。
py3study
2020/01/16
4.5K0
Django—视图
Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect
视图在接收请求并处理后,必须返回HttpResponse对象或子对象。在django.http模块中定义了HttpResponse对象的API。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。
Devops海洋的渔夫
2019/06/19
1.4K0
Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect
Django 教程 --- Django中的视图
Django视图是Django M V T结构的重要参与者之一。视图是用户界面,即您呈现网站时在浏览器中看到的内容。它由HTML / CSS / Javascript和Jinja文件表示。根据Django文档,视图函数是一个Python函数,它接受Web请求并返回Web响应。此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像(Web浏览器可以显示的任何内容)
公众号---人生代码
2020/05/26
3.1K0
Django 教程 --- Django中的视图
mybatis调用视图和存储过程
    现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。它可利用简单的XML或注解用语配置和原始映射,将接口和java中的POJO映射成数据库中的纪录。 一.调用视图 如下就是调用视图来查询收益明细,sql部分如下: <!-- 获取明细 --> <select id ="getContactEarnsDetail" resultType= "java.util.Map
猿人谷
2018/01/17
3.2K0
对象存储COS跨域CORS问题小结
CORS(Cross-origin resource sharing) 中文名称"跨域资源共享",由于安全原因,Web 应用程序默认情况只能在同源(协议、域名和端口)的情况下向服务器获取数据。
吴硕卫
2020/11/19
9.5K0
对象存储COS跨域CORS问题小结
django 视图中使用多线程
如果你需要在django视图中使用多线程执行其他任务,然后发现执行完后并没有达到你逾期的执行结果,
kirin
2021/04/09
2K0
Django 视图函数
定义视图 本质就是一个函数 视图的参数 一个HttpRequest实例 通过正则表达式组获取的位置参数 通过正则表达式组获得的关键字参数 在应用目录下默认有views.py文件,一般视图都定义在这个文件中 如果处理功能过多,可以将函数定义到不同的py文件中 新建views1.py #coding:utf-8 from django.http import HttpResponse def index(request): return HttpResponse("你好") 在urls.py中
Lansonli
2021/10/09
5880
Django 视图层
PyCharm可以使用virtualenv中的功能来创建虚拟环境。PyCharm紧密集成了virtualenv,所以只需要在setting中配置即可创建虚拟环境。而且PyCharm捆绑了virtualenv,我们不需要单独安装,一般创建过程如下:
py3study
2020/01/19
1.8K0
Django 学习笔记 1.3 视图和模板
前一节是后端的内容,这一节则是前端的内容,我们将继续编写投票应用,并且专注于如何创建公用界面——也被称为“视图”。
twowinter
2020/04/17
1.3K0
点击加载更多

相似问题

django -跨多个模板过滤对象?

12

跨多个视图控制器使用对象

10

跨多个页面响应本机redux存储状态

11

跨多个回发存储对象的方法

1317

Play Framework -跨多个调用保存对象状态

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档