我正在尝试捕获传感器的温度输出,为此我有以下相关线:
temp1: +39.5 C (crit = +105.0 C)
Core 0: +40.0 C (high = +100.0 C, crit = +100.0 C)
Core 1: +40.0 C (high = +100.0 C, crit = +100.0 C)
Run Code Online (Sandbox Code Playgroud)
我只需要每行的第一个温度(39.5,40.0,40.0).问题当然是因为在"Core 0"/"Core 1"中有一个额外的空间,所以我不能真正使用单词编号.
我已经提出了以下正则表达式,但是我被告知使用.*对于正则表达式来说是一种有点懒惰和肮脏的方法.
$core_data =~ s/^.*\+(.*)C\ .*$/$1/g;
Run Code Online (Sandbox Code Playgroud)
我想知道,有没有更严格或更好的方法来实现这一目标,还是我做得好?
我有一个具有动态选择的模型,如果我能保证在发出django-admin.py migrate / makemigrations命令时运行代码以防止它创建或警告无用的选择更改,我想返回一个空的选择列表.
码:
from artist.models import Performance
from location.models import Location
def lazy_discover_foreign_id_choices():
choices = []
performances = Performance.objects.all()
choices += {performance.id: str(performance) for performance in performances}.items()
locations = Location.objects.all()
choices += {location.id: str(location) for location in locations}.items()
return choices
lazy_discover_foreign_id_choices = lazy(lazy_discover_foreign_id_choices, list)
class DiscoverEntry(Model):
foreign_id = models.PositiveIntegerField('Foreign Reference', choices=lazy_discover_foreign_id_choices(), )
Run Code Online (Sandbox Code Playgroud)
所以我想如果我能检测到运行上下文,lazy_discover_foreign_id_choices那么我可以选择输出一个空的选择列表.我正在考虑测试sys.argv,__main__.__name__但我希望有可能更可靠的方式或API?
我有一个包含大量长文本字段 (18) 以及许多其他各种整数和 varchar 字段的表。最近添加了一些额外的长文本字段,突然迫使我了解有关 8K 行大小限制的所有信息。数据库运行的是 Mysql 5.6.34,有问题的表当前是 Antelope / ROW_FORMAT=COMPACT。
我的理解是,在这种格式中,每列每行最多占用 768 个字节,直到溢出到单独的存储中。当太多的各种长文本获取大量数据时,这会导致我出现此错误:
行大小太大 (> 8126)。将某些列更改为 TEXT 或 BLOB 或使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 可能会有所帮助。在当前行格式中,768 字节的 BLOB 前缀是内联存储的。忽略表中的其余字段,如果所有 18 个长文本均为 768 字节,则主索引将为所有字段存储 13,824 字节。
我尝试将表更新为 ROW_FORMAT=DYNAMIC,期望这会将长文本的溢出阈值从 768 字节降低到仅 20 字节,因此应将所有长文本字段的最大主索引存储要求降低到 18 * 20 = 360 字节。我尝试按照以下方式进行更新:
ALTER TABLE mytable ROW_FORMAT=DYNAMIC;
OPTIMIZE TABLE mytable;
Run Code Online (Sandbox Code Playgroud)
没有错误并输出以下内容:
mydb.mytable 优化注意表不支持优化,改为重新创建+分析 mydb.mytable 优化状态 OK
如果我查看表的 CREATE TABLE 语法,我可以看到设置了 ROW_FORMAT=DYNAMIC。
然后,我尝试编写一行来填充所有长文本列,每个列大约 5.7kb,但是在阻止保存该行之前我只能填充其中的 10 个,并且 10 * 768 = 7,680 字节,在计算时其他非长文本必填字段非常接近 8kb 限制,表明 ROW_FORMAT=DYNAMIC 指令不适用于现有行。
我并不是特别希望通过转储/导入来重新创建数据库,但是因为它特别大,并且会代表延长的服务停机时间,我不确定在用尽其他选项之前是否可以证明这一点。
我正在尝试将perl变量传递给系统命令,然后捕获输出以供以后使用,这是我当前的代码:
my $updatedCmd = "|svn diff --summarize $svnOldFull $svnNewFull";
my $updatedUrls = '';
open UPDATES, $updatedCmd or die "Can't get updates";
while(<UPDATES>) {
print $_;
}
print "THIS_SHOULD_OUTPUT_AT_THE_END\n";
Run Code Online (Sandbox Code Playgroud)
这个问题是我得到了输出:
THIS_SHOULD_OUTPUT_AT_THE_END
A /test
A /test2
A /deployment.txt
Run Code Online (Sandbox Code Playgroud)
我希望能够在允许我的perl脚本更进一步之前捕获所有命令输出.
基本上我有一个名为' promo ' 的视图,它建立在Nodequeue上.它被限制为1行,并按Global:Random排序
视图本身用于网站上的块.
另外,视图相同的视图用于节点引用字段' field_promo '.
我想要做的是从促销视图中获取最近的2行,并使用这些行作为field_promo的默认值.
这需要的是我:
...
写完所有这些并确保我不是白痴,我已经收集了我可能会在下面发布的解决方案,因为我花了这么长时间才找到它!(将在8小时后发布解决方案,如果你在发布之前解决问题,我会给出分数:P)
我有一个带有大量方法的类,其中大多数方法要求首先运行一个方法才能填充该类中的列表。但是,我还想使用延迟加载,以便我可以创建实例而无需初始加载,直到调用需要繁重加载的方法为止。因此,我想创建一个类,假定所有方法都需要运行给定方法,除非有选择地排除该方法。这是我的伪代码:
@all_methods_run_load
class myClass
things = []
params = []
@dont_run_load
def __init__(self, params):
self.params = params
@dont_run_load
def load(self):
self.things = do_a_ton_stuff()
def get_things():
return self.things
def get_some_things():
return apply_a_filter(self.things)
def get_first_thing():
return self.things[0]
def get_last_thing():
return self.things[-1]
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的。我对于装饰者本人还很陌生,并且仍然会记住它们,所以我担心答案可能会令我震惊,但是这种想法横扫了我,我不禁进一步调查:)
一些基本要求和愿望:
我提出了一些不可能的事情吗?Python 能胜任这项任务吗?我会在使用 Windows 终端时遇到问题吗?
我不一定一心要使用 Python,但我一直在为其他目的学习它,所以如果可能的话,我想“把它留在家里”。
感谢您的任何见解。
我的大部分GET请求都是由Angular触发的,这样可以很容易地在头文件中设置CSRF令牌.这已经开箱即用于POST请求,但是我想知道我是否也可以对GET请求使用CSRF保护.
我最初的直觉是@csrf_protect在View的get方法之前添加,例如:
class ProjectView(View):
@csrf_protect
def get(self, request, *args, **kwargs):
...
Run Code Online (Sandbox Code Playgroud)
但是这会产生错误:
AttributeError at /project
'ProjectView' object has no attribute 'COOKIES'
File "c:\Apps\msysgit\simpletask\lib\site-packages\django\middleware\csrf.py" in process_view
95. request.COOKIES[settings.CSRF_COOKIE_NAME])
Run Code Online (Sandbox Code Playgroud)
所以我猜测有一些POST请求提供了哪些GET请求没有.有一个更好的方法吗?
此外,在任何人提到应该通过POST请求提取所有敏感信息之前(我最近已经看过几次),我试图坚持使用GET的原因是我正在尝试根据RESTful指南构建,这意味着GET请求用于提取数据,POST用于新记录,PUT用于更新,DELETE用于删除数据.
编辑:
由于似乎有一种情绪我不应该尝试上述内容,而我现在确实有点同意,我试图阻止的漏洞在这三个链接中讨论:
例如,给出以下数组:
[{}, {}, {}, {}, {}, {}, {}]
Run Code Online (Sandbox Code Playgroud)
我想测试是否有任何非空的dicts并返回True,如果是这样,例如:
[{}, {}, {}, {}, {}, {}, {}] == False
[{}, {}, {}, {}, {}, {}, {'key': 'val'}] == True
Run Code Online (Sandbox Code Playgroud) 我试图从亚马逊FPS捕获付款结果信息,它有两种形式:
我无法保证哪个请求会首先到达服务器,所以我将第一个请求存储在数据库中,通过序列化request.GET或request.POST使用json.dumps,然后尝试在以后加载它以json.loads用于与其他请求进行比较:
初步要求:
type = request.META['REQUEST_METHOD']
sub_req = SubscriptionRequest()
params = getattr(request, type)
serialized_params = json.dumps(params)
if type == 'GET': sub_req.client_params = serialized_params
if type == 'POST': sub_req.server_params = serialized_params
sub_req.save()
Run Code Online (Sandbox Code Playgroud)
跟进请求:
stored_params = json.load(sub_req.server_params if type == "GET" else sub_req.client_params)
Run Code Online (Sandbox Code Playgroud)
错误:
File "/var/www/test.com/htdocs/apps/subscription/services.py", line 147, in subscription_request_check_or_store
stored_params = json.load(sub_req.server_params if type == "GET" else sub_req.client_params)
File "/usr/lib/python2.7/json/__init__.py", line 274, in load
return loads(fp.read(),
AttributeError: 'unicode' object has no …Run Code Online (Sandbox Code Playgroud) 是否可以使用您自己的原始 SQL 进行编辑或覆盖 ORM 生成的 SQL?或者 ORM 是否足够灵活,可以构建几乎任何我能想象到的查询?
具体来说,这是我试图进行的查询,也许通过 ORM 构建并不太难,尽管我看不到任何明显的构建路径。这是模型:
class AllocationStatus(Base):
STATUS_RESERVED = 1
STATUS_RELEASED = 2
STATUS_CHOICES = (
(STATUS_RESERVED, "Reserved"),
(STATUS_RELEASED, "Released"),
)
__tablename__ = 'allocation_status'
id = Column(Integer, primary_key=True)
allocation_id = Column(Integer, ForeignKey('allocation.id'))
allocation = relationship('Allocation')
status = Column(Integer())
Run Code Online (Sandbox Code Playgroud)
这个想法是,对于给定的外键 ID allocation_id,我想知道 中的最新记录allocation_status。
为了在原始 SQL 中实现这一点,我的目标是以下查询:
SELECT allocation_status.*
FROM allocation_status
LEFT JOIN allocation_status allocation_status2
ON allocation_status.allocation_id = allocation_status2.allocation_id
AND allocation_status.id < allocation_status2.id
WHERE allocation_status2.id IS NULL;
Run Code Online (Sandbox Code Playgroud) views.js
controllers = require '../../modules/fixture/controllers.js'
exports.custom = (db) ->
(req, res) ->
controllers.custom req.body
, (result) ->
res.json result : result
, (error) ->
res.json 400, error : error
Run Code Online (Sandbox Code Playgroud)
test.js
mockery = require "mockery"
exports.tests = (app, db, config) ->
describe '#routes', ->
describe '/fixture/custom', ->
it 'should return status 400 if no request body was provided', (done) ->
request app
.post '/fixture/custom'
.send
body :
players : []
.expect 400, done
describe '#views', ->
describe '#custom', ->
controller = …Run Code Online (Sandbox Code Playgroud) python ×6
django ×3
python-2.7 ×3
perl ×2
coffeescript ×1
default ×1
django-1.5 ×1
django-1.8 ×1
django-csrf ×1
django-views ×1
drupal ×1
drupal-views ×1
innodb ×1
longtext ×1
mocking ×1
mysql ×1
node.js ×1
regex ×1
sqlalchemy ×1
stdout ×1
terminal ×1