首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Tornado - Python全局变量

Tornado - Python全局变量
EN

Stack Overflow用户
提问于 2014-03-11 04:32:24
回答 2查看 1.8K关注 0票数 1

我正尝试在SqlAlchemy中使用Tornado,我需要在插入或更新操作中将当前用户从RequestHandler (tornado)传递给models (SqlAlchemy)。但我不想将值直接传递给模型,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#### RequestHandler POST method...
user = Session.query(User).get(1)
user.name = "bla, bla, bla..."
user.updated_by = self.current_user # don't use...
session.commit()

我在一个__ init__.py文件中使用一个全局变量,并在RequestHandler中设置当前用户值,然后使用SqlAlchemy在更新前事件中获取该值。

这个想法是为了知道哪个用户是创建者和更新者。为什么我不想像前面的例子那样直接将当前用户传递给模型呢?因为这将是其他开发人员的工具,我正在努力让他们感到舒适,同时,他们可以忘记它,这很重要。

这是个好主意,或者有没有其他更好的方法?

EN

回答 2

Stack Overflow用户

发布于 2014-03-12 19:17:23

如果您同时处理多个请求,则您的解决方案将会出现问题。Tornado是一个异步web框架,因此另一个请求可能会覆盖您的全局var,并将用户设置为其他人。将请求存储在self上是一个很好的做法,tornado将确保数据被其他同时请求更改。

一种可能对您有效的解决方案是将您的工具添加到基本处理程序中或创建一个装饰器。建议更多细节是很棘手的,如果您想获得更好的替代方案,请在您的问题中包含更多信息。

票数 0
EN

Stack Overflow用户

发布于 2016-10-05 18:40:29

当前用户在每个处理程序(和模板)中都可用。如何确定、验证和设置当前用户由您决定。

基本上,只需将tornado.web.RequestHandler子类化,并在新的/自己的BaseHandler中覆盖get_current_user方法。

这里引用了龙卷风文档中的话:

tornado User authentication

用户身份验证当前通过身份验证的用户在每个请求处理程序中都是self.current_user,在每个模板中都是current_user。默认情况下,current_user为None。

要在应用程序中实现用户身份验证,需要覆盖请求处理程序中的get_current_user()方法,以根据cookie的值确定当前用户。下面是一个示例,它允许用户通过指定昵称登录到应用程序,然后将昵称保存在cookie中。

您可以在官方tornado blog demo中看到一个完整的工作示例

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

https://stackoverflow.com/questions/22316522

复制
相关文章
div在div中垂直居中水平居中(css如何让div水平居中)
最近写网页经常需要将div在屏幕中居中显示,遂记录下几个常用的方法,都比较简单。 水平居中直接加上<center>标签即可,或者设置margin:auto;当然也可以用下面的方法
全栈程序员站长
2022/08/01
15K0
div在div中垂直居中水平居中(css如何让div水平居中)
DIV
<div style="width:80%; margin-left:auto; margin-right:auto;"> 滚动条 <div style="position:absolute; height:400px; overflow:auto"></div> div 设置滚动条显示:overflow :yes div 设置滚动条自适应显示:overflow :auto div 设置上下滚动条显示:overflow-y :yes div 设置上下滚动条自适应显示:overflow-y :auto 如果该
一朵灼灼华
2022/08/05
2.1K0
div:给div加滚动条 div的滚动条设置
<div style=” overflow:scroll; width:400px; height:400px;”></div>
全栈程序员站长
2022/09/14
6.1K0
div垂直居中的几种方式_div垂直水平居中
利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可。本文收集了六种利用css进行元素的垂直居中的方法,每一种适用于不同的情况,在实际的使用过程中选择某一种方法即可。
全栈程序员站长
2022/08/03
4.1K0
div垂直居中的几种方式_div垂直水平居中
div标签
div标签 使用频率非常高的标签,表示 “一块分区” div是换行的标签 div中可以写内容,也可以写其他标签或div标签 一、代码实战 新建 html 文件 06-div.html,编写下方程序,运行看看效果吧 <!DOCTYPE html> <htmllang="en"> <head> <metacharset="UTF-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <metanam
鹤川
2023/03/21
1.5K0
div 环形排列_三个div如何并排
红色点:为每个黄色DIV的坐标点;即绝对定位时的元素,left值 和 top值 ,设置的点;
全栈程序员站长
2022/09/19
2.8K0
div 环形排列_三个div如何并排
Codeforces Round 502(Div.1 + Div.2)
题目大意: 给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排; 开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。
Cell
2022/02/25
9930
单列div不包含里面div margin的解决方法
若一个大的div ,里面有2个小div,第一个小div有margin-top:20px; margin-bottom:20px;,第二个小divmargin-bottom:20px;
tianyawhl
2019/04/04
1.3K0
Python---获取div标签中的文字
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
K同学啊
2019/01/22
4.9K0
torch.div
torch.div(a, b) ,a和b的尺寸是广播一致的,而且a和b必须是类型一致的,就是如果a是FloatTensor那么b也必须是FloatTensor,可以使用tensor.to(torch.float64)进行转换。
狼啸风云
2021/03/03
1K0
div 水平排列
Flex 布局 最简单的一种方式 ,css3 新增。父级 div 直接使用 display: flex; 即可 html
草帽lufei
2022/07/29
2.2K0
div 水平排列
tf.div
警告:不推荐使用此函数。它将在未来的版本中被删除。更新说明:不支持操作符或tf.math.divide。注意:最好使用遵循Python 3除法运算符语义的张量除法运算符或tf.divide。这个函数除x和y,强制使用Python 2语义。也就是说,如果x和y都是整数,那么结果就是整数。这与Python 3形成了对比,Python 3中使用/的除法总是浮点数,而使用//的除法总是整数。
狼啸风云
2019/09/06
2.1K0
div构建table
1、Css display值与解释-(详细可见CSS手册的CSS display手册)参数: block :块对象的默认值。用该值为对象之后添加新行 none :隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间 inline :内联对象的默认值。用该值将从对象中删除行 compact :分配对象为块对象或基于内容之上的内联对象 marker :指定内容在容器对象之前或之后。要使用此参数,对象必须和:after及:before 伪元素一起使用 inline-table :将表格显示为无前后换行的内联对象或内联容器 list-item :将块对象指定为列表项目。并可以添加可选项目标志 run-in :分配对象为块对象或基于内容之上的内联对象 table :将对象作为块元素级的表格显示 table-caption :将对象作为表格标题显示 table-cell :将对象作为表格单元格显示 table-column :将对象作为表格列显示 table-column-group :将对象作为表格列组显示 table-header-group :将对象作为表格标题组显示 table-footer-group :将对象作为表格脚注组显示 table-row :将对象作为表格行显示 table-row-group :将对象作为表格行组显示
一笠风雨任生平
2019/08/02
1.2K0
div构建table
1、Css display值与解释-(详细可见CSS手册的CSS display手册)参数: block :块对象的默认值。用该值为对象之后添加新行 none :隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间 inline :内联对象的默认值。用该值将从对象中删除行 compact :分配对象为块对象或基于内容之上的内联对象 marker :指定内容在容器对象之前或之后。要使用此参数,对象必须和:after及:before 伪元素一起使用 inline-table :将表格显示为无前后换行的内联对象或内联容器 list-item :将块对象指定为列表项目。并可以添加可选项目标志 run-in :分配对象为块对象或基于内容之上的内联对象 table :将对象作为块元素级的表格显示 table-caption :将对象作为表格标题显示 table-cell :将对象作为表格单元格显示 table-column :将对象作为表格列显示 table-column-group :将对象作为表格列组显示 table-header-group :将对象作为表格标题组显示 table-footer-group :将对象作为表格脚注组显示 table-row :将对象作为表格行显示 table-row-group :将对象作为表格行组显示
一笠风雨任生平
2019/08/02
1.1K0
div包裹img时div高度高于img的解决办法
代码如下: <div> <img src=''" style="width: 36px; height: 36px;"> </div> 现象如下: image.png 可以看得出,红框里的圆形
飞奔去旅行
2019/06/13
3.9K0
div包裹img时div高度高于img的解决办法
html中div加滚动条
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158145.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
6.1K0
span不如div的地方
页面中产生格式化的效果,我一般比较喜欢用span,因为其本身就是inline的,但是,在进行精细控制时就不行了,比如我想要这个效果,每行由三个部分构成:时间,柱状图,数值,分布用span表示,用br换
用户1075292
2018/01/23
1.8K0
span不如div的地方
div垂直居中 css div盒子上下垂直居中
div垂直居中 css div盒子上下垂直居中,让DIV盒子在任何浏览器中任何分辨率的显示屏浏览器中处于水平居中和上下垂直居中。 div垂直居中常用于单个盒子,如一个页面里只有一个登录布局,使用div css让这个登录布局水平和css垂直居中。 这里介绍一种最简单兼容性最好的水平居中与上下垂直居中的方法。 第一种方法:具体实例代码如下
李维亮
2021/07/09
2.8K0
Element NavMenu 左侧菜单展开折叠Echart图表自适应父级Div
在NavMenu菜单切换展开折叠的时候,Div 是自适应的,但是如果页面含有Echart图表,需要特殊处理才能只适应父级Div的大小
tianyawhl
2020/03/17
2.3K0
点击加载更多

相似问题

为什么我的背景CSS图像没有出现在DIV中?

20

div未出现在父div容器中

11

为什么我的div图像没有填满整个div框?

13

子div出现在父div之外。

36

子div出现在父div外部

43
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文