在我正在处理的Web应用程序中,用户可以单击指向CSV文件的链接.没有为mime类型设置标头,因此浏览器只是将其呈现为文本.我想将此文件作为.csv文件发送,因此用户可以使用calc,excel,gnumeric等直接打开它.
header('Content-Type: text/csv');
echo "cell 1, cell 2";
Run Code Online (Sandbox Code Playgroud)
此代码在我的计算机上按预期工作(不是它一直是这样吗?)但在另一台计算机上不起作用.
我的浏览器是每晚构建的FF 3.0.1(在Linux上).它不起作用的浏览器是IE 7和FF 3.0(在Windows上)
有没有我不知道的怪癖?
我正在尝试使用可以使用Google身份验证器应用程序生成的一次性密码.
基本上,Google身份验证器实现了两种类型的密码:
Google身份验证器也可在此处以开源形式提供:code.google.com/p/google-authenticator
我一直在寻找能够生成HOTP和TOTP密码的现有解决方案,但没有找到太多.我的代码是负责生成HOTP的以下代码段:
import hmac, base64, struct, hashlib, time
def get_token(secret, digest_mode=hashlib.sha1, intervals_no=None):
if intervals_no == None:
intervals_no = int(time.time()) // 30
key = base64.b32decode(secret)
msg = struct.pack(">Q", intervals_no)
h = hmac.new(key, msg, digest_mode).digest()
o = ord(h[19]) & 15
h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000
return h
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,我使用上述代码生成的密码与使用适用于Android的Google身份验证器应用生成的密码不同.即使我尝试了多个intervals_no
值(恰好是前10000个,开头intervals_no = 0
),与secret
GA应用程序中提供的密钥相等.
我的问题是:
总结一下:请给我任何有助于我在Python代码中实现Google身份验证器身份验证的线索.
python security authentication one-time-password google-authenticator
我的项目处于早期开发阶段.我经常删除数据库并运行manage.py syncdb
以从头开始设置我的应用程序.
不幸的是,这总是突然出现:
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):
Run Code Online (Sandbox Code Playgroud)
然后,您提供了用户名,有效的电子邮件地址和密码.这很乏味.我厌倦了打字test\nx@x.com\ntest\ntest\n
.
如何在运行时自动跳过此步骤并以编程方式创建用户manage.py syncdb
?
有许多方法可以在Python 2.x中包含Python 3.x功能,因此Python 2.x脚本的代码将来可以很容易地转换为Python 3.x. 其中一个例子是用函数替换print
语句print()
:
>>> from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)
是否有任何列表或资源可以提供一些想法如何使Python 2.x代码尽可能接近Python 3.x?
您能举例说明其他有用的导入或定义可以使Python 2.x的外观和行为更像Python 3.x吗?
让我们假设我们拥有最新的Python 2.x(目前为2.7.2,我相信).
鉴于以下模型,我想索引字段(序列,库存)
class QuoteModel(models.Model):
quotedate = models.DateField()
high = models.FloatField() #(9,2) DEFAULT NULL,
low = models.FloatField() #(9,2) DEFAULT NULL,
close = models.FloatField() #(9,2) DEFAULT NULL,
closeadj = models.FloatField() #(9,2) DEFAULT NULL,
volume = models.IntegerField() #(9,2) DEFAULT NULL,
stock = models.IntegerField(db_index=True) #(9,2) DEFAULT NULL,
open = models.FloatField() #(9,2) DEFAULT NULL,
sequence = models.IntegerField() #(9,2) DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)
这个索引应该是非唯一的 - 在mysql中它应该是这样的:
create index ndx_1 on model_quotemodel(sequence,stock);
Run Code Online (Sandbox Code Playgroud)
我所知道的唯一的Django解决方法是创建一个"sql"文件,该文件将在创建表时由django执行.所以,我创建了一个包含以下查询的"stockmodel.sql"(与上面相同:)
create index ndx_1 on model_quotemodel(sequence,stock);
Run Code Online (Sandbox Code Playgroud)
这样做有"更干净"的方法吗?
如何使用POST,GET,PUT,DELETE为电子邮件发送服务设计REST API?
send: POST - /email
retrieve: GET - /email/{id}
delete: DELETE - /email/{id}
Run Code Online (Sandbox Code Playgroud)
它是设计REST API的正确方法吗?我觉得将POST映射到动作"发送"是不直观的.
在Django过滤器语句中,如果我写的话有什么区别:
.filter(name__exact='Alex')
Run Code Online (Sandbox Code Playgroud)
和
.filter(name='Alex')
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一些任务需要解决,目前最重要的部分是使脚本尽可能节省时间.我试图优化的一个要素是其中一个函数中的memoization.
所以我的问题是:以下3-4种方法中哪一种是在Python中实现memoization的最有效/最快的方法?
我只提供了代码作为示例 - 如果其中一种方法更有效,但在我提到的情况下,请分享您所知道的内容.
此解决方案通常显示为示例memoization,但我不确定它的效率如何.我听说使用全局变量(在这种情况下,它是从外部变量而不是全局变量)效率较低.
def main():
memo = {}
def power_div(n):
try:
return memo[n]
except (KeyError):
memo[n] = (n ** 2) % 4 # example expression, should not matter
return memo[n]
# extensive usage of power_div() here
Run Code Online (Sandbox Code Playgroud)
我发现在过去使用默认的可变参数从外部作用域传递变量,当Python首先在本地作用域中搜索变量,然后在全局作用域中,跳过非局部作用域(在本例中为范围内)功能main()
).因为默认参数仅在定义函数时初始化,并且只能在内部函数内部访问,因此它可能更有效吗?
def main():
def power_div(n, memo={}):
try:
return memo[n]
except (KeyError):
memo[n] = (n ** 2) % 4 # example expression, should not matter
return memo[n]
# extensive usage of power_div() …
Run Code Online (Sandbox Code Playgroud) python performance memoization static-variables argument-passing
我们可以在C++中定义循环模板,以缩短编码:
#define fo(a,b,c) for( a = ( b ); a < ( c ); ++ a )
Run Code Online (Sandbox Code Playgroud)
有没有办法在PHP中做同样的事情?
django ×4
python ×3
php ×2
automation ×1
c++ ×1
csv ×1
django-apps ×1
django-orm ×1
http-headers ×1
indexing ×1
memoization ×1
mime ×1
mysql ×1
performance ×1
python-2.x ×1
python-3.x ×1
rest ×1
security ×1