我希望文件名是随机的,因此我使用upload_to函数返回一个随机文件名,如下所示:
from uuid import uuid4
import os
def get_random_filename(instance, filename):
ext = filename.split('.')[-1]
filename = "%s.%s" % (str(uuid4()), ext)
return os.path.join('some/path/', filename)
# inside the model
class FooModel(models.Model):
file = models.FileField(upload_to=get_random_filename)
Run Code Online (Sandbox Code Playgroud)
但是我想将原始文件名保存到模型内的属性中.这样的东西不起作用:
def get_random_filename(instance, filename):
instance.filename = filename
ext = filename.split('.')[-1]
filename = "%s.%s" % (str(uuid4()), ext)
return os.path.join('some/path/', filename)
# inside the model
class FooModel(models.Model):
file = models.FileField(upload_to=get_random_filename)
filename = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
谢谢.
如何检测JPG是否为AdobeRGB以及是否将其在python中转换为sRGB JPG.
如果在PIL中可行,那就太好了.谢谢.
python jpeg image-processing color-profile python-imaging-library
我有以下型号:
class Foo(models.Model):
pass
class Bar(models.Model):
foo = models.ForeignKey(Foo)
is_successful = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我想获得的所有foo对象与注释如果所有的bar关联对象foo的对象有is_successful作为True
到目前为止,我的查询集是:
foos = Foo.objects.all().annotate(all_successful=Min('bar__is_successful'))
Run Code Online (Sandbox Code Playgroud)
all_successful注释的想法是,如果所有is_successful行的最小值都是1,那么所有行的最小值必须是True(假设0是False和1是True).所以知道我可以像这样使用查询集:
foo = foos[0]
if foo.all_successful == 1:
print 'All bars are successful'
else:
print 'Not all bars are successful'
Run Code Online (Sandbox Code Playgroud)
这在sqlite中效果很好但是它在PostgreSQL中失败,因为PostgreSQL无法MIN在布尔列上执行聚合.我想这适用于sqlite,因为sqlite将bools视为整数,因此它可以执行聚合.
我的问题是如何在不将我的is_successful字段转换为的情况下使这个查询集在PostgreSQL中工作IntegerField?
感谢名单
我需要从URL地址获取文件名.
以下是标准:
它需要""在以下场景中返回空字符串:
http://somedomain.com
http://www.somedomain.com
http://somedomain.com/
http://www.somedomain.com/
Run Code Online (Sandbox Code Playgroud)
并在以下场景中返回filename.php:
http://somedomain.com/filename.php?query
http://www.somedomain.com/filename.php?query
http://somedomain.com/filename.php#query
http://www.somedomain.com/filename.php#query
Run Code Online (Sandbox Code Playgroud)
我找到了这个正则表达式
[\w_.-]*?(?=[\?\#])|[\w_.-]*$从这里开始
但它会somedomain.com在输入时返回http://somedomain.com.我无法弄清楚如何修改它以忽略域,当它没有/结束时.
如果使用正则表达式很难,我也会欣赏JavaScript解决方案.
Thanx提前.
我使用SWFAddress深度链接我的站点(链接到SWFAddress).我喜欢将代码分解为类,因此我有一个类似于此的主结构:
function SomeClass() {
//this adds the this.handleChange() function to the
//SWFAddress event listener
this.initializeSWFA = function() {
//SWFAddress variable is instantiated in SWFAddress javascript file
//so I can use it here
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, this.handleChange);
}
//SWFAddress suppose to call this function
this.handleChange= function(evt) {
//some code here
}
}
//instantiate the SomeClass
var someVar = new SomeClass();
someVar.initializeSWFA();
Run Code Online (Sandbox Code Playgroud)
这条线在这里不起作用:
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, this.handleChange);
Run Code Online (Sandbox Code Playgroud)
我尝试将其更改为:
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, this.handleChange());
Run Code Online (Sandbox Code Playgroud)
要么
var self = this;
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, self.handleChange);
Run Code Online (Sandbox Code Playgroud)
而这些也不起作用.
那么如何在这样的情况下从类中引用javascript函数呢?如果函数handleChange在类之外,我可以编写函数的名称.
先感谢您
编辑
首先,谢谢你的所有答案.我仍然试图想象这一切在Javascript中是如何工作的.我不习惯像Javascript这样的面向对象模型. …
我正在尝试制作一个基本的商店应用程序.我已经建立了一个数据库,以便每个产品都与特定商店绑定:让我们称之为商店鞋子,玩具和书籍..我需要为应用程序设置子域名(它在分配规范中,没有选择)这样我就可以映射到shoes.myapp.com,toys.myapp.com和books.myapp.com.我认为我需要做的是以某种方式设置子域名(我已经用谷歌搜索了但是我很困惑:这是要走的路吗?)然后,我想,从子域中的信息过滤我的数据库,这样只有例如,商店名称为"Shoes"的商品会显示在页面上.我是在哪里接近正确的轨道还是有更好的方法来构建它?
我试图使用Docker部署我的应用程序,并遇到一个问题,重新启动命名容器为容器分配不同的IP.也许解释我在做什么会更好地解释这个问题:
"postgres"$ PG_ID=$(docker run --name postgres postgres/image) $ APP_ID=$(docker run --link postgres:postgres webapp/image)将postgres容器映像链接到webapp容器,在webapp容器中插入一个带有postgres容器IP的hosts文件条目.这允许我在我的webapp中指向postgres db postgres:5432(我正在使用Django btw).这一切都很好,除非由于某种原因postgres崩溃.
在我手动停止postgres进程以模拟postgres进程崩溃之前,我验证了postgres容器的IP:
$ docker inspect --format "{{.NetworkSettings.IPAddress}}" $PG_ID
172.17.0.73
Run Code Online (Sandbox Code Playgroud)
现在模拟崩溃我停止postgres容器:
$ docker stop $PG_ID
Run Code Online (Sandbox Code Playgroud)
如果现在我通过使用重启postgres
$ docker start $PG_ID
Run Code Online (Sandbox Code Playgroud)
容器的ip更改:
$ docker inspect --format "{{.NetworkSettings.IPAddress}}" $PG_ID
172.17.0.74
Run Code Online (Sandbox Code Playgroud)
因此,指向webapp容器中的postgres容器的IP不再正确.我通过命名容器docker为它指定一个名称,使用特定的配置,以便您可以可靠地链接容器(网络和卷).如果IP改变,这似乎打败了目的.
如果每次postgres重新启动时我都必须重新启动我的webapp进程,这似乎没有比使用单个容器来运行这两个进程更好的了.然后我可以使用supervisor或类似的东西来保持它们都运行并用于localhost在进程之间进行链接.
我还是Docker的新手,所以我做错了什么,或者这是docker中的一个bug?
我是计算机科学专业的学生.我知道有一种说法"不要重新发明轮子"然而我觉得真正学习东西的最好方法就是从头开始写东西.然而,当理解这个想法时,开始使用业内成熟的工具.
到目前为止,我的PHP Web应用程序从PHP的角度来看相对简单,所以我正在尝试学习安全和框架概念等新的前沿.我为初学者阅读了这本 PHP安全手册.关于在行业中学习更先进的安全方法的其他建议是什么?还有什么是关于学习更高级的PHP功能以及如何正确实现它们的建议,例如URL重写(自Apache负责实际重写以来重写的处理),以及PHP开发人员必须学习的任何其他主题(或Web开发人员 - PHP,Python,Ruby等)?
如果您曾在StackOverflow上编辑过一个问题,您可能已经注意到它会跟踪应用于问题的确切更改.它通过突出显示已删除的文本的红色部分以及在特定编辑时添加的绿色而以表格形式显示.我的问题是如何自己实现这样一个系统.我正在尝试使用MySQL在PHP中创建自定义CMS,这似乎是一个非常酷的功能来解决.
任何建议或者可能有开源库已经可以做到这一点我可以分析它们是如何做到的?
示范
在这里,我添加了一些文本,如果您单击编辑链接以查看更改,将显示绿色.
是否有SQLAPI++ 的免费(也可能是开源)替代品?这个库看起来很不错,但它不是免费的。
django ×3
python ×3
javascript ×2
php ×2
api ×1
c++ ×1
database ×1
deep-linking ×1
docker ×1
e-commerce ×1
filenames ×1
jpeg ×1
linux ×1
networking ×1
postgresql ×1
reference ×1
regex ×1
sqlite ×1
url ×1