我有一个阵列..
[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我想要一个包含由换行符分隔的所有元素的字符串.
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时,[1,2,3,4].join("\n")我得到了
1\n2\n3\n4
Run Code Online (Sandbox Code Playgroud)
我觉得有一个明显的答案,但我找不到它!
我有一个Python脚本,我想用作另一个Python脚本的控制器.我有一个64位处理器的服务器,所以想要产生第二个Python脚本的64个子进程.子脚本被调用:
$ python create_graphs.py --name=NAME
Run Code Online (Sandbox Code Playgroud)
其中NAME是XYZ,ABC,NYU等.
在我的父控制器脚本中,我从列表中检索名称变量:
my_list = [ 'XYZ', 'ABC', 'NYU' ]
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,作为孩子产生这些过程的最佳方法是什么?我想一次将子项数限制为64,因此需要跟踪状态(如果子进程已完成或未完成),这样我就可以有效地保持整个代的运行.
我查看了使用子进程包,但拒绝它,因为它一次只生成一个子进程.我终于找到了多处理器包,但我承认被整个线程与子进程文档所淹没.
现在,我的脚本subprocess.call一次只生成一个孩子,看起来像这样:
#!/path/to/python
import subprocess, multiprocessing, Queue
from multiprocessing import Process
my_list = [ 'XYZ', 'ABC', 'NYU' ]
if __name__ == '__main__':
processors = multiprocessing.cpu_count()
for i in range(len(my_list)):
if( i < processors ):
cmd = ["python", "/path/to/create_graphs.py", "--name="+ my_list[i]]
child = subprocess.call( cmd, shell=False )
Run Code Online (Sandbox Code Playgroud)
我真的希望它一次产生64个孩子.在其他stackoverflow问题中,我看到人们使用Queue,但似乎这会产生性能损失?
我需要引用一个由a返回的变量BashOperator.我可能做错了所以请原谅我.在我task_archive_s3_file,我需要从中获取文件名get_s3_file.任务只是打印{{ ti.xcom_pull(task_ids=submit_file_to_spark) }}为字符串而不是值.
如果我使用bash_command,则值正确打印.
get_s3_file = PythonOperator(
task_id='get_s3_file',
python_callable=obj.func_get_s3_file,
trigger_rule=TriggerRule.ALL_SUCCESS,
dag=dag)
submit_file_to_spark = BashOperator(
task_id='submit_file_to_spark',
bash_command="echo 'hello world'",
trigger_rule="all_done",
xcom_push=True,
dag=dag)
task_archive_s3_file = PythonOperator(
task_id='archive_s3_file',
# bash_command="echo {{ ti.xcom_pull(task_ids='submit_file_to_spark') }}",
python_callable=obj.func_archive_s3_file,
params={'s3_path_filename': "{{ ti.xcom_pull(task_ids=submit_file_to_spark) }}" },
dag=dag)
get_s3_file >> submit_file_to_spark >> task_archive_s3_file
Run Code Online (Sandbox Code Playgroud) 我有一个时事通讯应用程序,其中一个时事通讯在每个问题中都有多篇文章.我想在线显示一个摘要页面,列出时事通讯年份,数量和标签,然后在无序列表中显示问题中的所有文章.我对Django很新,所以我想确定最好的方法.
我定义了模型(只是相关部分):
Models.py:
class Newsletter(models.Model):
volume = models.ForeignKey(Volume)
year = models.IntegerField()
season = models.CharField(max_length=6, choices=VOLUME_SEASON)
label = models.CharField(max_length=20)
number = models.IntegerField()
class Article(models.Model):
newsletter = models.ForeignKey(Newsletter)
section = models.ForeignKey(Section)
title = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
我想在网上看到的内容如下:
<h2>Spring 2012</h2>
<p>Volume 14, Number 1</p>
<ul>
<li>Foo</li>
<li>Bar</li>
<li>Baz</li>
</ul>
<h2>Winter 2011</h2>
<p>Volume 13, Number 4</p>
<ul>
<li>Boffo</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
很简单.但是,我对编写视图的最佳方式感到困惑.是否使用:
zip()在模板中迭代的两个列表select_related()查询集prefetch_related()查询集我使用第一个选项工作:
Views.py:
from django.shortcuts import render_to_response, get_object_or_404
from www.apps.newsletter.models import Newsletter, Article
def index(request):
article_group …Run Code Online (Sandbox Code Playgroud) 在我的模型中,我经常使用旨在包含大量纺织品格式输入的文本字段.我想自动模糊输入这些文本字段的任何电子邮件地址,这样当它们在模板中打印时,它们对蜘蛛是不可见的.
有一种聪明的方法吗?
更新:
根据lazerscience的答案,这是我最终使用的代码.我将文件命名为encode_mailto.py,并将其放在templatetags目录中,放在我安装到大多数django项目中的"实用程序"类型应用程序中.
import re
import random
from django.utils.safestring import mark_safe
from django import template
register = template.Library()
email_link_pat = re.compile(r'<a\s+href=("|\')?mailto:[^>]+>[^<]*</a>')
email_pat = re.compile(r'\b[-.\w]+@[-.\w]+\.[a-z]{2,4}\b')
def get_script(m):
code_list = []
for c in m.group(0):
d = ord(c)
x = random.randint(0, d)
code_list.append("%d+%d" % (x, d-x))
return '<script type="text/javascript">document.write(String.fromCharCode(%s))</script>' % \
",".join(code_list)
def encode_mailto(text):
text = email_link_pat.sub(get_script, text)
text = email_pat.sub(get_script, text)
return mark_safe(text)
register.filter('encode_mailto', encode_mailto)</pre>
Run Code Online (Sandbox Code Playgroud)
然后在模板中使用它,如下所示:
{% load encode_mailto %}
{{"A bunch of text with an email address emailaddress@host.com"|encode_mailto }}
Run Code Online (Sandbox Code Playgroud) 我正在使用jQueryMobile作为移动应用程序.显然我希望UI能够非常快速地加载,但是应用程序有多个工具,因此我只想在导航到的时候为"页面"加载相关的外部JS库.对于主应用程序(90%的页面),我只想要jQueryMobile核心文件(即来自Google AJAX库和jQueryMobile JS&CSS的最新jquery核心).但是,对于剩余的10%,我需要启用地理位置的Google Maps v3(因此Google Gears外部库)和MarkerClusterer库(我有400个标记,我只想在必要时绘制).
据我了解jQueryMobile是如何工作的(所有这些都是通过内部AJAX请求),您必须在应用程序初始化时加载整个应用程序的所有库.这使得我的应用程序在用户第一次请求移动站点时非常繁重(所有核心文件,以及所有map/gelocation/marker集群文件).我想避免这种情况发生,因为它会吓跑许多潜在用户(特别是只有我的用户的一部分需要地理定位的好处).
我尝试在相关页面的末尾(在页脚div之前)加载Google Maps组件,并尝试将它们放入相关页面的<head>标记中.但是这两个都无法初始化(使用附加到函数的console.log()输出进行检查).
是的,在你问之前,我正在使用"pagecreate"live()函数并且正在寻找正确的div(如果我将与谷歌地图相关的所有内容放入根页头标记中,一切正常就可以了)
我觉得这一定是一个非常常见的问题:使用jQueryMobile选择性加载页面组件.我在网上找不到任何东西 - 大多数jQueryMobile教程都是常见的花园'Hello World!' 多种多样,所以如果你有什么可以提供我的全部耳朵!有选择性加载教程的链接也欢迎!
提前致谢!
ajax jquery google-maps-api-3 google-maps-markers jquery-mobile
我有一个来自我最初的Django 服务问题的后续问题,即如何开发 Django 应用程序并从与我的主要基于 PHP 的站点相同的服务器为它们提供服务(所有这些都是我的网站从静态和 PHP 驱动的网站进行更大迁移的一部分)到一系列 Django 应用程序)。
我不能完全使用我提供的名称服务器解决方案,而是使用 mod_wsgi 将我的 Django 应用程序部署在不同的端口 (8000) 上。但是,现在我需要将 Django 应用程序实际集成到主站点中。在我的 Apache 2.0 配置文件(例如http://www.example.com)中,我添加了以下 ProxyPass 命令(在我的 mod_wsgi 初始化之后):
ProxyPass /app/newsletter http://www.example.com:8000/app/newsletter
ProxyPassReverse /app/newsletter http://www.example.com:8000/app/newsletter
Run Code Online (Sandbox Code Playgroud)
在这里,我希望任何请求:
http://www.example.com/app/newsletter
Run Code Online (Sandbox Code Playgroud)
将成功代理到:
http://www.example.com:8000/app/newsletter
Run Code Online (Sandbox Code Playgroud)
一切都会好起来的。
然而,这种情况并非如此。Apache 挂起 5 分钟左右(制作此问题所需的时间)然后吐出502 代理错误:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /app/newsletter/.
Reason: Error reading from remote server
Run Code Online (Sandbox Code Playgroud)
在此响应后查看我的 …
在目录视图中查看Quilt 数据包时,如何确保用户的相关信息和数据从 N 层文件夹/文件向上冒泡到数据包登陆视图?
我有一个可行的d3.js可视化,它将数据返回率显示为复合线和面积图(http://anf.ucsd.edu/tools/data_return_rates/).
x轴是时间,y轴是数据返回率百分比.您可以单击可视化顶部的各种按钮以在数据集之间切换(仅解析JSON文件).
除了原始数据图之外,我想添加一个简单的行来定义所需的最小数据返回率(85%).这纯粹是一种视觉辅助工具,可帮助用户确定数据返回率是否高于此最小值/阈值.我使用数据集上的d3.min()和d3.max()方法计算此"最小值"线(仅两个点)的x值(时间).y值只是整数(85):
var min_data_return = [
{
"readable_time": d3.min(data, function(d) { return d.readable_time; }),
"value": 85
},
{
"readable_time": d3.max(data, function(d) { return d.readable_time; }),
"value": 85
}
]
Run Code Online (Sandbox Code Playgroud)
(我做了一些其他的转换,以确保一切正常)
现在,在我想要将这个最小化线添加到可视化之前,我只是做了以下操作来创建区域和线图,其工作原理如下:
svg.select("path.area").data([data]);
svg.select("path.line").data([data]);
Run Code Online (Sandbox Code Playgroud)
稍后在脚本中还有一些其他绘图代码:
svg.select("path.area").attr("d", area);
svg.select("path.line").attr("d", line);
Run Code Online (Sandbox Code Playgroud)
我读过的所有d3.js例子都说要创建多行,你只需要让你的数据数组包含你想要绘制的所有数据集,所以在上面的例子中,这个:
svg.select("path.line").data([data]);
Run Code Online (Sandbox Code Playgroud)
变为:
svg.select("path.line").data([data, min_data_return]);
Run Code Online (Sandbox Code Playgroud)
这应该工作.但事实并非如此.我看到数据集线如前所示,但不是min_data_return行.
我有什么想法我做错了吗?
请点击这里:https://gist.github.com/2662793
在Gist中,查看第133-140行(搜索注释字符串OPTION).这些是与此相关的唯一线路.为了完整起见,我将整个脚本放入Gist中.
提前致谢!
我想加密我现有的rds实例.我正在使用Boto脚本来修改数据库实例.
modified_rds_attributes = rds_conn_boto3.modify_db_instance(
DBInstanceIdentifier=id,
StorageEncrypted=True
)
Run Code Online (Sandbox Code Playgroud)
是否可以加密现有的RDS数据库实例?如果是,那么我该如何实现这项任务呢?
django ×3
python ×3
airflow ×1
ajax ×1
apache ×1
automation ×1
boto3 ×1
d3.js ×1
email ×1
encryption ×1
exec ×1
javascript ×1
jquery ×1
json ×1
mod-proxy ×1
mod-wsgi ×1
obfuscation ×1
orm ×1
proxypass ×1
python-2.7 ×1
quiltdata ×1
rds ×1
ruby ×1
subprocess ×1
textile ×1