我试图使用cURL从GitHub下载tarball ,但它似乎没有重定向:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2
<html><body>You are being <a href="https://nodeload.github.com/pinard/Pymacs/tarball/v0.24-beta2">redirected</a>.</body></html>
Run Code Online (Sandbox Code Playgroud)
注意:wget适合我:
$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2
Run Code Online (Sandbox Code Playgroud)
但是我想使用cURL,因为最终我想用以下内容解压缩内联:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
Run Code Online (Sandbox Code Playgroud)
我发现重定向后的URL原来是https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz,但我希望cURL足够聪明才能计算出来这个.
我知道Django不支持跨多个数据库的外键(最初是Django 1.3 docs)
但我正在寻找一种解决方法.
我在一个单独的数据库上有两个模型.
routers.py:
class NewsRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label == 'news_app':
return 'news_db'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'news_app':
return 'news_db'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'news_app' or obj2._meta.app_label == 'news_app':
return True
return None
def allow_syncdb(self, db, model):
if db == 'news_db':
return model._meta.app_label == 'news_app'
elif model._meta.app_label == 'news_app':
return False
return None
Run Code Online (Sandbox Code Playgroud)
fruit_app/models.py中的模型1:
from django.db import models
class Fruit(models.Model):
name …Run Code Online (Sandbox Code Playgroud) 我看到Nginx HttpRewriteModule文档有一个例子,用于将www前缀域重写为非www前缀域:
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
Run Code Online (Sandbox Code Playgroud)
如何反向 - 将非www前缀域重写为www前缀域?我想也许我可以做类似下面的事情,但Nginx不喜欢嵌套的if语句.
if ($host !~* ^www\.) { # check if host doesn't start with www.
if ($host ~* ([a-z0-9]+\.[a-z0-9]+)) { # check host is of the form xxx.xxx (i.e. no subdomain)
set $host_with_www www.$1;
rewrite ^(.*)$ http://$host_with_www$1 permanent;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,我希望这适用于任何域名,而无需明确告诉Nginx重写domain1.com - > www.domain1.com,domain2.com - > www.domain2.com等,因为我有大量的域要重写.
我想要sys.builtin_module_names除了标准库以外的东西.其他不起作用的东西:
sys.modules - 仅显示已加载的模块sys.prefix - 一个包含非标准库模块EDIT的路径:并且似乎不能在virtualenv中工作.我想要这个列表的原因是我可以将它传递给http://docs.python.org/library/trace.html的--ignore-module或--ignore-dir命令行选项trace
所以最终,我想知道如何在使用trace或时忽略所有标准库模块sys.settrace.
编辑:我希望它在virtualenv中工作.http://pypi.python.org/pypi/virtualenv
编辑2:我希望它适用于所有环境(即跨越操作系统,在virtualenv的内部和外部.)
我想用来git log显示与给定模式不匹配的所有提交.我知道我可以使用以下内容来显示与模式匹配的所有提交:
git log --grep=<pattern>
Run Code Online (Sandbox Code Playgroud)
如何反转匹配感?
我试图忽略消息中"碰到版本..."的提交.
编辑:我希望我的最终输出非常详细.例如git log --pretty --stat.所以输出git log --format=oneline对我来说不起作用.
我最近安装了Ropemacs的hg tip版本,我想在使用TRAMP编辑远程文件时使用它.有没有人这样做过?当我尝试使用M-/完成变量名称时,我被要求输入Rope project root folder并输入:/ssh:myhost:/path/to/myproject/它会给我以下错误:
Opening [/ssh:myhost:/path/to/myproject/] project ...
pymacs-report-error: Python: Traceback (most recent call last):
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/Pymacs/pymacs.py", line 147, in loop
value = eval(text)
File "<string>", line 1, in <module>
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/decorators.py", line 53, in newfunc
return func(*args, **kwds)
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 254, in code_assist
_CodeAssist(self, self.env).code_assist(prefix)
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 538, in code_assist
proposals = self._calculate_proposals()
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 597, in _calculate_proposals
self.interface._check_project()
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/interface.py", line 448, in _check_project
self.open_project()
File "/home/saltycrane/lib/python-environments/default/lib/python2.6/site-packages/ropemode/decorators.py", line …Run Code Online (Sandbox Code Playgroud) 我在运行Python脚本时看到了我认为的内存泄漏.这是我的脚本:
import sys
import time
class MyObj(object):
def __init__(self, filename):
with open(filename) as f:
self.att = f.read()
def myfunc(filename):
mylist = [MyObj(filename) for x in xrange(100)]
len(mylist)
return []
def main():
filename = sys.argv[1]
myfunc(filename)
time.sleep(3600)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
主函数调用myfunc()创建一个包含100个对象的列表,每个对象打开并读取一个文件.从返回后myfunc(),我期望从100项列表中读取内存并从读取文件中释放,因为它们不再被引用.但是,当我使用该ps命令检查内存使用情况时,Python进程使用的内存比从第12行和第13行注释掉的脚本运行的Python进程多大约10,000 KB.
奇怪的是,内存泄漏(如果它就是这样)似乎只发生在大小<128KB的文件中.我创建了一个bash脚本来运行此脚本,文件大小从1KB到200KB,当文件大小达到128KB时内存增加停止.这是bash脚本:
#!/bin/bash
echo "PID RSS S TTY TIME COMMAND" > output.txt
for i in `seq 1 200`;
do
python debug_memory.py "data/stuff_${i}K.txt" &
pid=$!
sleep 0.1
ps -e -O rss …Run Code Online (Sandbox Code Playgroud) 我正在使用django.contrib.auth并希望在登录后重定向到上一页.我想要类似以下内容:Django:登录后重定向到上一页, 但重定向到的URL可以包含查询字符串.
目前我的模板中有以下链接:
<a href="{% url user_login %}?next={{ request.get_full_path }}">Login</a>
Run Code Online (Sandbox Code Playgroud)
user_login 是我的登录视图的名称.
我想使用{{ request.get_full_path }}而不是{{ request.path }}获取当前路径,包括查询字符串,但这将创建一个带有查询字符串(例如/login/?next=/my/original/path/?with=other&fun=query&string=parameters)中的查询字符串的URL,但不起作用.
我还尝试redirect_to在我的登录视图中添加一个参数,并将带有查询字符串的url作为arument传递给url模板标记.但是这给了我一个NoReverseMatch错误.
Django的测试客户端返回一个测试Response对象,该对象包含用于呈现模板的模板上下文变量.https://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Response.context
在Flask中测试时如何访问模板上下文变量?
示例视图:
@pgt.route('/myview')
def myview():
context = {
'var1': 'value 1',
'var2': 'value 2',
'var3': 'value 3',
}
return render_template('mytemplate.html', **context)
Run Code Online (Sandbox Code Playgroud)
示例测试:
class MyViewTestCase(unittest.TestCase):
def setUp(self):
self.app = create_app()
self.client = self.app.test_client()
def test_get_success(self):
response = self.client.get('/pgt/myview')
# I don't want to do this
self.assertIn('value 1', response.data)
# I want to do something like this
self.assertEqual(response.template_context['var1'], 'value 1')
Run Code Online (Sandbox Code Playgroud) 我试图从类中的方法动态创建模块级函数.因此,对于类中的每个方法,我想创建一个具有相同名称的函数,该函数创建类的实例,然后调用该方法.
我想这样做的原因是我可以采用面向对象的方法来创建Fabric文件.由于Fabric将调用模块级函数而不是类的方法,因此这是我的解决方法.
我使用以下链接让我开始
我提出了以下代码
import inspect
import sys
import types
class TestClass(object):
def __init__(self):
pass
def method1(self, arg1):
print 'method 1 %s' % arg1
def method2(self):
print 'method 2'
def fabric_class_to_function_magic(module_name):
# get the module as an object
print module_name
module_obj = sys.modules[module_name]
print dir(module_obj)
# Iterate over the methods of the class and dynamically create a function
# for each method that calls the method and add it to the current module
for …Run Code Online (Sandbox Code Playgroud) 在Django中,我知道使用filter多个参数会被转换为SQL AND子句.来自Django书:
您可以将多个参数传递给filter()以进一步缩小范围:
Run Code Online (Sandbox Code Playgroud)>>> Publisher.objects.filter(country="U.S.A.", state_province="CA") [<Publisher: Apress>]这些多个参数被转换为SQL AND子句.因此,代码段中的示例转换为以下内容:
Run Code Online (Sandbox Code Playgroud)SELECT id, name, address, city, state_province, country, website FROM books_publisher WHERE country = 'U.S.A.' AND state_province = 'CA';
如何创建一个转换为SQL OR子句的Django查询集?例如:
SELECT id, name, address, city, state_province, country, website
FROM books_publisher
WHERE state_province = 'AZ'
OR state_province = 'CA';
Run Code Online (Sandbox Code Playgroud) 我正在将我的Mercurial存储库转换为Git.部分文件系统如下所示:
|-- .gitignore
|-- .hgignore
`-- var
|-- .dummy
|-- asdf
`-- log
|-- .dummy
`-- asdf
Run Code Online (Sandbox Code Playgroud)
我的.hgignore文件使用正则表达式.我的.hgignore文件的一部分如下:
^var/(?!\log|.dummy)
^var/log/(?!\.dummy)
Run Code Online (Sandbox Code Playgroud)
我想跟踪.dummy文件而不是asdf文件.hg status收益:
? var/.dummy
? var/log/.dummy
Run Code Online (Sandbox Code Playgroud)
如何在.gitignore中获得相同的效果?我尝试过以下方法:
/var/**/*
!/var/.dummy
!/var/log/.dummy
Run Code Online (Sandbox Code Playgroud)
但这不会忽视var/asdf所希望的.如何跟踪var/.dummy和var/log/.dummy而忽略var/asdf和var/log/asdf?