我在使用XPTemplate vim插件时遇到了一些问题.有时它会产生错误,并且无法编辑文件.我通过以下步骤来治愈它:
如何自动完成此过程?
因此,为了避免"没有人最好的答案"问题,我将问,不是最好的方式,而是使用Tornado框架时处理会话的标准或最常用的方法.也就是说,如果我们不使用第三方认证(OAuth等),而是我们希望在浏览器中拥有我们自己的带有安全cookie的Users表,但是大多数会话信息存储在服务器上,那么最常见的做法是什么?我见过一些人使用Redis,有些人使用他们的普通数据库(MySQL或Postgres或其他),有些人使用memcached.
我正在处理的应用程序一次不会有数百万用户,甚至可能有数千个用户.但是,最终需要获得一些中等复杂的授权方案.我正在寻找的是确保我们不会做一些与一般Tornado社区不同的"奇怪"的事情,因为认证和授权虽然是我们需要的,但不是在我们产品的核心并不是我们应该区分自己的地方.所以,我们正在寻找大多数人(使用龙卷风)在这方面所做的事情,因此我认为这是一个(在理论上)客观真实答案的问题.
当然,理想的答案将指向示例代码.
有哪些方法可以使用python和oauth2.0导入谷歌联系人?
我们成功获得了凭据,我们的应用程序请求访问联系人,但在获得凭据后,我找不到发现联系人api的方法.
所以像:
from apiclient.discover import build
import httplib2
http = httplib2.Http()
#Authorization
service = build("contacts", "v3", http=http)
Run Code Online (Sandbox Code Playgroud)
给我们UnknownApiNameOrVersion例外.看起来联系人API不在apiclient支持的API列表中.
我正在寻找替代方法.
python google-api contacts oauth-2.0 google-api-python-client
我在使用Tibco RV的Linux服务器上运行Java应用程序,我收到以下错误:
TibrvException[error=901,message=Library not found: tibrvj]
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个问题?
我已经添加了含有库路径*.so进入LD_LIBRARY_PATH,但仍是同样的结果.
更新:
目前,我已<MyApp>/libs/tibrvj.jar加入classpath.tibrvj.jar从Windows环境复制到我正在运行我的应用程序的Linux机器.我从类路径中删除了这个并添加了另一个引用<TibcoDirectory>/libs/tibrvj.jar,它修复了问题.它们与前一个文件的大小不同,从Windows复制的那个和当前在Linux框中的一个可能有区别.有人可以解释为什么会这样吗?
有没有办法在django定制属性设置器这样做?
class MyModel(models.Model):
myfield = models.CharField(length = 250)
@myfield.setter
def set_password(self, value):
self.password = encrypt(value)
Run Code Online (Sandbox Code Playgroud) 也许你可以帮助我解决以下问题,这可以帮助我加速我正在考虑的内存管理器(我不确定是否存在解决方案 - 我没有找到一个).
我有一个32位寄存器,我需要找到它中是否有n个连续的设置位,如果是,那么它们的偏移量是多少.例如,如果寄存器保持以下值111100000000000000000001111111000且n等于4 - 接受以下任何答案(偏移量从0开始):
3,4,5,6,28
我所拥有的原子操作都是常规的按位运算(&,|,〜,...),并且还找到最低有效位偏移(上面的寄存器中为3).该算法(假设存在一个) - 应该不超过5个原子操作.
如何找到慢django测试?如何定位测试,测试运行器可以"卡住"?你知道任何好的定制django测试跑步者,可以提供更详细的测试性能信息吗?
我们有代码,适用于python 2.
@password.setter
def password(self, value):
self.salt = bcrypt.gensalt()
self.passwd = bcrypt.hashpw(value.encode('utf-8'), self.salt)
def check_password(self, value):
return bcrypt.hashpw(value.encode('utf-8'), self.salt.encode('utf-8')) == self.passwd
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其转换为python3时,我们遇到以下问题:
在cassandra驱动程序级别发生错误:
cassandra.cqlengine.ValidationError: passwd <class 'bytes'> is not a string
Run Code Online (Sandbox Code Playgroud)
好.将salt和passwd转换为字符串:
@password.setter
def password(self, value):
salt = bcrypt.gensalt()
self.salt = str(salt)
self.passwd = str(bcrypt.hashpw(value.encode('utf-8'), salt))
Run Code Online (Sandbox Code Playgroud)
现在盐节省了.但是check_password我们得到了ValueError: Invalid salt.如果我们将检查密码更改为:
def check_password(self, value):
return bcrypt.hashpw(value, self.salt) == self.passwd
Run Code Online (Sandbox Code Playgroud)
我们得到错误TypeError: Unicode-objects must be encoded before hashing.
在哪里挖?
密码和检查密码中的UPD Salt值看起来相同,例如:
b'$2b$12$cb03angGsu91KLj7xoh3Zu'
b'$2b$12$cb03angGsu91KLj7xoh3Zu'
Run Code Online (Sandbox Code Playgroud) 我们可以通过test_client以下方式获取样品申请:
class MyTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
my_app.app.config['TESTING'] = True
cls.client = my_app.app.test_client()
Run Code Online (Sandbox Code Playgroud)
但是,如果我们用app包装DispatcherMiddleware- 我们会得到错误
AttributeError: 'DispatcherMiddleware' object has no attribute 'test_client'.
有没有办法测试烧瓶应用的组成?
我们希望能够做到这样的事情:
cls.client = my_app.all_apps.test_client()
Run Code Online (Sandbox Code Playgroud)
什么all_apps是中间件像:
all_apps = DispatcherMiddleware(my_app, {
'/backend': backend_app,
})
Run Code Online (Sandbox Code Playgroud) 我喜欢django单元测试,因为他们在运行时创建并删除测试数据库.
有什么方法可以为龙卷风创建测试数据库?
UPD:我对测试运行中的postgresql测试数据库创建感兴趣.
python ×7
django ×3
tornado ×2
unit-testing ×2
algorithm ×1
bcrypt ×1
contacts ×1
flask ×1
google-api ×1
java ×1
oauth-2.0 ×1
python-2.7 ×1
python-3.x ×1
testing ×1
tibco ×1
tibco-rv ×1
vim ×1
werkzeug ×1