我试图在python中以编程方式获取mercurial修订号/ id(它是一个哈希而不是一个数字).
原因是我想将它添加到我们网站上的css/js文件中,如下所示:
<link rel="stylesheet" href="example.css?{% mercurial_revision "example.css" %}" />
Run Code Online (Sandbox Code Playgroud)
因此,无论何时对样式表进行更改,它都将获得新的URL并且不再使用旧的缓存版本.
或者如果你知道在哪里可以找到mercurial python模块的好文档,那也会有所帮助.我似乎无法在任何地方找到它.
我最终使用子进程来运行获取hg节点的命令.我选择这个解决方案是因为api不能保证保持不变,但是bash接口可能会:
import subprocess
def get_hg_rev(file_path):
pipe = subprocess.Popen(
["hg", "log", "-l", "1", "--template", "{node}", file_path],
stdout=subprocess.PIPE
)
return pipe.stdout.read()
Run Code Online (Sandbox Code Playgroud)
示例使用:
> path_to_file = "/home/jim/workspace/lgr/pinax/projects/lgr/site_media/base.css"
> get_hg_rev(path_to_file)
'0ed525cf38a7b7f4f1321763d964a39327db97c4'
Run Code Online (Sandbox Code Playgroud) 我希望这个问题不是太晦涩的交叉手指
我正在为netsuite脚本和api 寻找一个不错的参考(两者都基于ASP)
有谁知道在哪里找到这些东西?netsuite帮助页面充其量只是平庸,论坛不是很活跃.(我想这两件事情已经很糟糕了,但值得一试吗?)
我在python中编写了一个快速程序,为一个cli程序添加一个gtk GUI.我想知道如何使用distutils创建安装程序.因为它只是一个命令行应用程序的GUI前端,所以它只适用于*nix,所以我并不担心它是跨平台的.
我的主要目标是为debian/ubuntu用户创建一个.deb包,但我不懂make/configure文件.到目前为止,我主要是一名网络开发人员.
编辑:有没有人知道一个使用distutils的项目,所以我可以看到它在行动,你知道,实际上尝试构建它?
本指南非常有用.我不知道在最初的淘汰赛中我是如何错过的.它甚至会引导您完成现有python应用程序的打包
这是ubuntu的官方包维护项目.任何人都可以加入,并且有很多关于创建所有类型的包的教程和信息,其中包括上面的"python包装指南".
"Python会让人厌烦吗?" - Ars Technica论坛讨论
根据这个对话,你不能只使用distutils.它不遵循debian包装格式(或类似的东西).我想这就是你需要dh_make的原因,如Ubuntu Packaging指南中所示
这个有一些有趣的讨论(它也是我如何找到ubuntu指南)关于连接zip文件和shell脚本来创建某种通用可执行文件(任何使用python和bash的东西).奇怪的.如果有人发现有关此练习的更多信息,请告诉我,因为我从未听说过.
如何保存模型,以便不发送信号.(post_save和pre_save)
我有一个文本输入,搜索按钮绝对位于它...为按钮腾出空间我使用了一些填充来保持文本不在按钮下,这很好,它适用于Firefox,但不适用于IE.
实际上......在IE中,文本输入上的填充似乎不起作用.
他们有以下代码
<style type="text/css">
#mainPageSearch input {
width: 162px;
padding: 2px 20px 2px 2px;
margin: 0;
font-size: 12px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background:#F3F3F3 url(form-shadow.png) repeat-x scroll left top;
border-color:#C6C6C6 #C6C6C6 #E3E3E3;
border-style:solid;
border-width:1px;
color:#666666;
}
#mainPageSearch {
margin-bottom: 10px;
position: relative; /* Lets me absolute position the button */
}
#mainPageSearchButton {
display: block;
position: absolute;
top:0px;
right: -2px;
text-indent: -2000em;
height: 22px;
width: 22px;
background: transparent url('images/searchBtn.png') top center no-repeat;
}
</style>
<form id="mainPageSearch" action="">
<input type="text"/>
<a …Run Code Online (Sandbox Code Playgroud) 我对django的电子邮件发送能力非常熟悉,但我从未见过有关它接收和处理来自用户的电子邮件的任何信息.这个功能可用吗?
一些谷歌搜索没有出现非常有希望的结果.虽然我找到了这个:在python中接收和发送电子邮件
我是否必须自己动手?如果是这样,我会比你说的更快地发布那个应用程序......不管你说什么.
谢谢,吉姆
更新:我不是要创建一个电子邮件服务器,我只需要添加一些功能,您可以将图像通过电子邮件发送到网站并将其弹出到您的帐户中.
当我更新我的网站上的代码时,我(自然地)重启我的apache实例,以便更改生效.
不幸的是,每个apache实例所服务的第一个页面非常慢,而它首次将所有内容加载到RAM中(此特定站点为5-7秒).
后续请求只需0.5到1.5秒,所以我想为我的用户消除这种影响.
是否有更好的方法将所有内容加载到RAM而不是执行wget x次(其中x是我的http.conf中ServerLimit定义的apache实例的数量)
编写一个重新启动apache并运行wget 5次的重启脚本对我来说似乎有些不好意思.
谢谢!
我在将SQLite数据库迁移到mysql时发现了这个Perl脚本
我想知道(因为我不知道Perl)如何在Python中重写这个?
最短(代码)答案的奖励积分:)
编辑:对不起我的意思是最短的代码,而不是严格的最短答案
#! /usr/bin/perl
while ($line = <>){
if (($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){
if ($line =~ /CREATE TABLE \"([a-z_]*)\"(.*)/){
$name = $1;
$sub = $2;
$sub =~ s/\"//g; #"
$line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n";
}
elsif ($line =~ /INSERT INTO \"([a-z_]*)\"(.*)/){
$line = "INSERT INTO $1$2\n";
$line =~ s/\"/\\\"/g; #"
$line =~ s/\"/\'/g; #" …Run Code Online (Sandbox Code Playgroud) 我正在构建一个django应用程序,我无法获取模板以查看CSS文件...我的settings.py文件如下所示:
MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
我在/ mysite/media/css /中有CSS文件,模板代码包含:
<link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />`
Run Code Online (Sandbox Code Playgroud)
然后,在我的url.py文件中:
# DEVELOPMENT ONLY
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/media'}),
Run Code Online (Sandbox Code Playgroud)
但是开发服务器提供普通的html(没有样式).我究竟做错了什么?
-
好的 - 我根据你们所说的话让它发挥作用.答案是:
settings.py:
MEDIA_ROOT = 'd://web//mysite//media//' #absolute path to media
MEDIA_URL = '/mymedia/' #because admin already using /media
Run Code Online (Sandbox Code Playgroud)
site_base.html:
<link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" />
Run Code Online (Sandbox Code Playgroud)
urls.py
from mysite import settings
if settings.DEBUG:
urlpatterns += patterns('',
(r'^mymedia/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)
Run Code Online (Sandbox Code Playgroud)
瞧!有用.
是否可以使用django表单拥有可变数量的字段?
具体应用如下:
用户可以在图像上载表单上上载任意数量的图片.上传图片后,他们会被带到一个页面,在那里他们可以给图片命名和描述.图片数量取决于用户选择上传的数量.
那么如何让django使用可变数量的输入字段生成表单(如果需要可以作为参数传递)?
编辑:自从杰夫鲍尔的回答中提到的那篇文章以来,有些事情发生了变化.
即这行代码似乎不起作用:
# BAD CODE DO NOT USE!!!
return type('ContactForm', [forms.BaseForm], { 'base_fields': fields })
Run Code Online (Sandbox Code Playgroud)
所以这就是我想出来的......
from tagging.forms import TagField
from django import forms
def make_tagPhotos_form(photoIdList):
"Expects a LIST of photo objects (ie. photo_sharing.models.photo)"
fields = {}
for id in photoIdList:
id = str(id)
fields[id+'_name'] = forms.CharField()
fields[id+'_tags'] = TagField()
fields[id+'_description'] = forms.CharField(widget=forms.Textarea)
return type('tagPhotos', (forms.BaseForm,), { 'base_fields': fields })
Run Code Online (Sandbox Code Playgroud)
note标记不是django的一部分,但它是免费的,非常有用.看看:django-tagging