我们有一个Python应用程序User
S IN Transaction
S作Commission
S,Fee
S,等,具有Contact
接收小号EmailMessage
S,和Activity
s充分的(地方Document
小号上传,Status
修改等).
我们为客户生成电子表格报告,详细说明上传到交易的文档数量,各种佣金类型,收费,活动等.这些报告在某些情况下提供客户帐户的统计信息,给定年份中的每个月(电子表格中每个月都在其自己的行中).
我们已经通过我们的网络应用程序达到了一个目的,我们生成的某些电子表格报告需要花费几分钟才能生成(所有等待Postgres),尽管我们努力优化查询,添加索引,尽管我们只使用SSD并且有足够的RAM来使数据库适合内存.从本质上讲,我们已经达到了一个规模,在这个规模中,一些基本报告变得过于昂贵而无法对我们的生产数据库进
我已经在一定程度上使用上面的选项1-4,但我想探索更多选项.另外,如果可能的话,我想完全停止使用选项4,而且我不太热衷于实现选项5(仅仅使用像Redshift这样的东西).在某些情况下,选项6是一个很好的选择,但这不是我们现在准备采取的措施.
我开始真正开始研究Redshift,但今天早上让我感到厌倦的是阅读(这里) " 它不是一个实时分析引擎. "这是否也意味着" 它对于在一个单一内生成报告没有用网页请求 ",或者这个博客更有可能说它对实时应用程序(在线游戏等)没用?
我也看过Quicksight,但它似乎更适合为我们自己构建业务仪表板,而不是为我们的用户生成报告.
鉴于上述信息,您将如何解决这个问题?Redshift是一个明显的答案,我上面关于实时不利的担忧是没有意义的吗?在这样的情况下,是否有其他服务或工具或方法对您更有意义?
我正在寻找一种在发出 CORS 请求时查看 CORS 飞行前选项请求的方法。我想查看服务器的响应标头以帮助我调试遇到的 CORS 问题,但我无法在 Chrome 或 Firefox 的“网络”选项卡或控制台中找到执行此操作的方法。
我还安装了HTTP Header Live插件,但没有帮助。
我用来jQuery.get(url);
触发我的 CORS 请求,其中url
是不同域的 URL。
我试过了:
__all__ = ['SpamPublicClass']
Run Code Online (Sandbox Code Playgroud)
但是,当然这只是为了:
from spammodule import *
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止导入类.我担心我的代码的API级别会出现混淆,有人会写:
from spammodule import SimilarSpamClass
Run Code Online (Sandbox Code Playgroud)
它会导致调试混乱.
我认为,如果我理解正确,a <> b
在功能上是完全相同的a != b
,并且在Python中not a == b
,但有理由使用<>
其他版本吗?我知道Python新手的一个常见错误就是认为它not a is b
与a != b
or 相同not a == b
.
<>
,或者在功能上是否完全相同?我已经很难坐在UML面前并从中获取价值,因为它几乎和编程一样多(如果你使用富有表现力的语言).我发现写自然语言告诉我更多关于软件项目而不是创建复杂的图表.我是UML的新手,我对其他熟悉UML的人表示不满:
读完后: http: //docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it
我得出的结论是,除非您信任使用该页面的人,否则使用它是无效的。它是否正确?
我想我真的不明白什么时候可以安全地使用它,因为这个声明:
对于针对外部 URL 的 POST 表单,不应执行此操作,因为这会导致 CSRF 令牌泄露,从而导致漏洞。
令人困惑的原因是;对我来说,“外部 URL”将是不属于我的域的页面(即,我拥有 www.example.com 并放置一个发布到 www.spamfoo.com 的表单。显然情况并非如此因为人们不会使用 Django 来生成发布到其他人网站的表单,但是你怎么可能不能在公共表单(例如登录表单)上使用 CSRF 保护呢?
我有两个型号:
class Client(models.Model):
some_field = models.CharField()
class Ticket(models.Model):
client = models.ForeignKey(Client)
Run Code Online (Sandbox Code Playgroud)
Ticket
s 在我的系统中是永远的,但我希望用户能够删除他们不再需要的客户端.目前它将删除由该创建的所有票证Client
.
not_needed
或者其他东西?delete()
为每个执行此操作的模型覆盖,但是如果必须的话(如果这是唯一的方法,那么最好的方法是什么).在以下示例中,cached_attr
用于related_spam
在调用数据库昂贵的属性(在示例中)时获取或设置模型实例上的属性.在示例中,我cached_spam
用来保存查询.我在设置和获取值时放置了print语句,以便我可以测试它.我通过将Egg
实例传递到视图和视图中来测试它,并使用模型{{ egg.cached_spam }}
上的其他方法Egg
调用cached_spam
他们自己.当我完成并测试它时,Django的开发服务器中的shell输出显示属性缓存被错过了好几次,并成功获得了几次.这似乎是不一致的.使用相同的数据,当我进行小的更改(只需更改print语句的字符串)并刷新(使用所有相同的数据)时,会发生不同数量的未命中/成功.这是怎么发生的?这段代码不正确或有问题吗?
class Egg(models.Model):
... fields
@property
def related_spam(self):
# Each time this property is called the database is queried (expected).
return Spam.objects.filter(egg=self).all() # Spam has foreign key to Egg.
@property
def cached_spam(self):
# This should call self.related_spam the first time, and then return
# cached results every time after that.
return self.cached_attr('related_spam')
def cached_attr(self, attr):
"""This method (normally attached via an abstract base class, …
Run Code Online (Sandbox Code Playgroud) 在http://alx3apps.appspot.com/jsonrpc_example/的示例中,当我单击提交按钮时,我注意到(通过使用 Firebug)我的浏览器提交了源代码:
{"params":["Hello ","Python!"],"method":"concat","id":1}
Run Code Online (Sandbox Code Playgroud)
它不是发布参数(例如json=[encoded string from above]
),而是发布具有上述值的原始字符串。
是否有一种广泛接受的方法可以通过 GET 请求复制它,或者我是否只需要对相同的字符串进行 urlencode 并将其包含为http://www.example.com/?json=%7b%22params%22%3a%5b%22Hello+%22%2c%22Python!%22%5d%2c%22method%22%3a%22concat%22%2c%22id%22%3a1%7d
?我知道一些较旧的浏览器无法处理超过 250 个字符的 URI,但我对此表示同意。
我无法理解为什么TypeError
当你提供不属于方法签名的参数时 Python 会引发 a 。
例子:
>>> def funky():
... pass
...
>>> funky(500)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: funky() takes no arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
我想,如果这是因为*args
预期是None
或[]
在无参数函数的范围内,那就是一个泄漏的抽象,所以我查了一下。
在PEP-3102TypeError
上进行的页面搜索发现,似乎是在其中提出的一种上下文的合理性,但我不明白其合理性。PEP 的示例本质上是在说明该功能基本上是. 在这种情况下是一个非空列表,而不是一个空列表......它们都是相同的类型。如果我没记错的话,这确实是合理的,也许 a会更合适。然而,这仍然是一种有漏洞的抽象,因为该示例是用 Python 编写的,这使其更多地是特定用例的实现细节,而不是语言功能。类似的东西对我来说听起来更合适,这让我相信有一些明显的解释我错过了为什么有意义。TypeError
if args: raise TypeError()
args
ValueError
ArgumentError
TypeError
python ×5
django ×3
api-design ×1
attributes ×1
caching ×1
cors ×1
csrf ×1
django-csrf ×1
firefox ×1
get ×1
http ×1
http-headers ×1
import ×1
operators ×1
optimization ×1
post ×1
properties ×1
reporting ×1
security ×1
star-schema ×1
uml ×1
urlencode ×1