好的,所以这似乎是一个非常愚蠢的问题,而且我确定我在某处遗漏了某些东西.
你如何在Django上使用South进行向后迁移?
所以我已经调整了我的模型,创建了一个迁移schemamigration,运行迁移migrate,现在我意识到这不是我想要的,我想要它回到以前的方式.
如果没有手动编辑数据库表并删除迁移文件,我应该如何进行迁移?我发现使用South通过谷歌进行向后迁移的参考,但还没有找到一个可靠的代码示例.
有人可以帮忙吗?
在我写的python脚本中,我正在尝试使用日志记录模块记录事件.我有以下代码来配置我的记录器:
ERROR_FORMAT = "%(levelname)s at %(asctime)s in %(funcName)s in %(filename) at line %(lineno)d: %(message)s"
DEBUG_FORMAT = "%(lineno)d in %(filename)s at %(asctime)s: %(message)s"
LOG_CONFIG = {'version':1,
'formatters':{'error':{'format':ERROR_FORMAT},
'debug':{'format':DEBUG_FORMAT}},
'handlers':{'console':{'class':'logging.StreamHandler',
'formatter':'debug',
'level':logging.DEBUG},
'file':{'class':'logging.FileHandler',
'filename':'/usr/local/logs/DatabaseUpdate.log',
'formatter':'error',
'level':logging.ERROR}},
'root':{'handlers':('console', 'file')}}
logging.config.dictConfig(LOG_CONFIG)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时logging.debug("Some string"),我没有输出到控制台,即使文档中的这个页面说logging.debug应该让根记录器输出消息.为什么我的程序没有输出任何内容,我该如何解决?
我在Python中有一段代码似乎在概率上导致错误,因为它正在访问服务器,有时该服务器有500内部服务器错误.我想继续尝试,直到我没有得到错误.我的解决方案是:
while True:
try:
#code with possible error
except:
continue
else:
#the rest of the code
break
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是个黑客.是否有更多的Pythonic方法来做到这一点?
什么之间的区别UserDict,dict并ABC和建议哪一种?文档似乎已经弃用了UserDict?
似乎UserDict update()会使用我的setitem方法,而dict不是?在我想要自定义setitem和getitem功能的情况下,哪些方法是非常重要的?
使用ABCs我必须实现绝对所有方法,因为它没有提供默认实现?
我想做一dict件事做两件事:
intern() 所有键和值所以其中UserDict,dict并ABC能最好地让我做到这一点?
我想在互联网上找到图像的尺寸.我试过用
from PIL import Image
import urllib2 as urllib
fd = urllib.urlopen("http://a/b/c")
im = Image.open(fd)
im.size
Run Code Online (Sandbox Code Playgroud)
正如在这个答案中所建议的那样,但是我收到了错误消息
addinfourl instance has no attribute 'seek'
Run Code Online (Sandbox Code Playgroud)
我检查过并且返回的对象urllib2.urlopen(url)似乎没有根据的搜索方法dir.
那么,我需要做些什么才能将图像从Internet加载到PIL中?
我有一个Django项目,在一个页面上,有多个表单(在不同的标签中),可以提交具有不同的效果.在所有情况下,我都希望将用户重定向回同一页面,因此我在视图中使用提交表单然后重定向到原始页面的模式.在至少一种情况下,两个表单之间的唯一区别是提交按钮的值.
在我看来,我有代码(这是我的第一次访问视图功能request.POST):
if request.POST['submit']=='Add':
#code to deal with the "Add" form
Run Code Online (Sandbox Code Playgroud)
在模板中,第一个表单有一个提交按钮
<input type="submit" value="Add">
Run Code Online (Sandbox Code Playgroud)
我认为这会有效,但是当我提交该表单时,我从上面看到的行中出现错误:
密钥'提交'未找到
<QueryDict: {u'clientyear': [u'2012'], u'csrfmiddlewaretoken': [u'be1f2f051f09f6ab0375fdf76cf6a4d7'], u'ben': [u'123405']}>
显然,这没有一个'submit'键或任何键,其值与我单击的提交按钮相对应.因此,由于这不起作用,如何访问提交按钮的值或告诉哪些表单已提交?
我是一个相对较新的雇员,我开始一个小的,相当简单的项目.该项目将实施的语言仍有待确定.问题基本上归结为 - Java或Python?
这就是困境:我的经理宁愿用Python完成它.我不反对,但我没有Python经验.我真的很喜欢学习Python,并认为我可以很快地管理它(特别是因为它是一个小项目).但该项目将于3月底到期,届时必须做好准备.所以他们宁愿用Java和时间比在Python中使用它更晚,如果我认为我不能按时完成它们,他们不想让我用Python做压力.
抱歉背景 - 但我的问题基本上是,平均需要多长时间才能适应新语言?我知道这是主观的和个性化的,取决于特定程序员的速度......但是谈论一个普通的程序员,或者甚至是一个快速掌握事物的程序员,非编程的增加百分比原生语言(但有相似的概念)导致?就像在,如果这个项目需要我用Java或.NET语言大约2周,那么我需要多长时间使用Python?我可以假设有一倍的时间(即一种新的,不熟悉的语言导致编程时间增加50%)就足够了吗?
并且包含在这个问题中 - 从我所听到的情况来看,从Java切换到Python似乎非常简单/直观.这是真的...?
谢谢大家的所有答案!我没有意识到这个问题有这么多方面......我会尽快选择一个答案 - 每个答案都让我以不同的方式看待它,很难选择一个答案.
我有一个Django项目,最初是作为遗留数据库的导入.因此,存在具有复合主键的模型.只要我只使用遗留数据,这就有效,但现在我想添加新数据,我创建的表单告诉我我正在尝试插入重复数据,大概是因为它只是查看其中一个字段作为首要的关键.
现在我想更改模型以使用自动增量主键,就像Django会自动添加一样.我尝试从字段中删除主键属性,并将它们放在Meta内部类中的unique_together中.当我schemamigration和South一起跑时,它想id按预期添加一个字段,但它要求一个默认值.
如何指定South应以某种方式为自动增量字段分配唯一键?(即将序列[1 ... n]分配给记录的某些任意顺序)
如果这不可能有另一种方法来完成同样的事情,最好使用Django和South?
我有一个MySQL数据库,其中表A与表B有一对多的关系,我想选择表B中表A中没有子项的所有行.我试过使用
SELECT id FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE B.id=A.id)
Run Code Online (Sandbox Code Playgroud)
和
SELECT id FROM A LEFT JOIN B ON A.id=B.id WHERE B.id IS NULL
Run Code Online (Sandbox Code Playgroud)
这两个似乎都很慢.是否有更快的查询来实现同样的事情?
如果这是相关的,在我的数据库表A中有大约500,000行,而表B有大约3到4百万行.
编辑:对于我数据库中的实际表,解释给了我:
+----+--------------------+------------------+-------+---------------+---------------------------+---------+------+---------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+------------------+-------+---------------+---------------------------+---------+------+---------+--------------------------+
| 1 | PRIMARY | frontend_form471 | index | NULL | frontend_form471_61a633e8 | 32 | NULL | 671927 | Using where; Using index |
| …Run Code Online (Sandbox Code Playgroud) 我正在用C编写PHP扩展,我想将我在类中创建的类,函数和变量放在命名空间中.我无法在扩展文档中找到有关命名空间的任何内容.要清楚,我想要相当于
namespace MyNamespace{
class MyClass{
}
}
Run Code Online (Sandbox Code Playgroud)
但在C扩展名中.更具体地说,我正在寻找Zend C API中的函数或宏,它允许我将PHP命名空间分配给我用C编写的类或函数.这可能吗?