草庐IT

python - 使用 South AND django 1.7 迁移的可重用应用程序的升级路径

或者:Django1.7用户还能使用South吗?我是可重用应用程序的维护者。我们的政策是始终支持最新的两个版本的Django。我们有大量的南方迁移,我们希望支持新的Django1.7迁移系统。我感到困惑的是如何让开发人员将我的应用程序与Django1.6(和South)和Django1.7(新迁移)一起使用。Django文档推荐justdeletingallthepre-existingSouthmigrations.但这不是一个选择,因为我需要为我的Django1.6用户保留它们。我能想到的最接近升级路径的方法是,在我的应用程序中放弃对Djangopythonmanage.pymi

python - 您如何判断上下文管理器是可重用的还是可重入的?

Pythoncontextlib文档指出上下文管理器可以是一次性的、可重用的或可重入的。可重入的可以在多个with语句中使用,包括嵌套的;可重用但不可重入的可以在多个with语句中使用但不能嵌套。提到了几个例子。https://docs.python.org/3/library/contextlib.html#reentrant-context-managers不过,其他上下文管理器的文档并不总是提及它们是什么。例如,unittest.mock中的patch上下文管理器的文档根本没有提到这一点。一般来说,您会在源代码中查看什么来确定上下文管理器是一次性使用、可重用还是可重入?

python - 如何为可重用的 Django 应用程序进行迁移?

我正在制作一个没有项目的可重用Django应用程序。这是目录结构://myapp//myapp/models.py/myapp/migrations//myapp/migrations/__init__.py当我运行django-adminmakemigrations时,出现以下错误:django.core.exceptions.ImproperlyConfigured:RequestedsettingDEFAULT_INDEX_TABLESPACE,butsettingsarenotconfigured.Youmusteitherdefinetheenvironmentvariabl

python - pytest:针对同一接口(interface)的不同实现的可重用测试

假设我实现了一个名为Bar的实用程序(可能是一个类)在模块中foo,并为其编写了以下测试。test_foo.py:fromfooimportBarasImplementationfrompytestimportmark@mark.parametrize(,)deftest_one():@mark.parametrize(,)deftest_two():现在想象一下,将来我希望编写同一接口(interface)的不同实现。我希望这些实现能够重用为上述测试套件编写的测试:唯一需要更改的是导入Implementation,等所以我正在寻找一种以可重用的方式编写上述测试的方法,这将允许接口(i

python - 将现有对象重用于不可变对象(immutable对象)?

在Python中,如何重用现有的相等不可变对象(immutable对象)(就像对str所做的那样)?这是否可以通过定义一个__hash__方法来完成,还是需要更复杂的措施? 最佳答案 如果你想通过类构造函数创建并让它返回一个以前创建的对象,那么你需要提供一个__new__方法(因为当你到达__init__对象已经被创建)。这是一个简单的例子——如果用于初始化的值之前已经被看到,那么返回一个以前创建的对象而不是一个新创建的对象:classCached(object):"""Simpleexampleofimmutableobjectr

python - 您实际上如何在项目中使用可重用的 Django 应用程序?

这个问题困扰我好几天了,我试过很多地方请教,但似乎没有人能清楚地回答这个问题,甚至没有人提供答案的引用。我也试过搜索教程,但我找不到任何类型的教程来解释如何使用可重用的第三方django应用程序(大多数教程解释了如何编写它们,没有解释如何使用它们).另外,我在这里看过:Howtore-useareusableappinDjango-它没有解释如何在项目本身中实际使用它这里:HowtobindmultiplereusableDjangoappstogether?-aquaplanet的回答有点道理,但我想我会问这个问题来解决我在试图理解这个问题时面临的心理障碍。为了最好地解释这一点,让我

python - 创建可重用的 Django 应用程序?

我有点像Django初学者,一直在尝试尽可能多地解耦我的应用程序,并将其构建为尽可能小的可重用部分。试图遵循JamesBennett的构建策略re-usableapps.考虑到这一点,我遇到了这个问题。假设我有一个存储电影信息的应用程序:代码看起来像这样:classMovie(models.Model):name=models.CharField(max_length=255)...现在,如果我想添加评级,我可以使用django-rating并简单地向我的模型添加一个字段:classMovie(models.Model):name=models.CharField(max_length

python - 重用游标与创建新游标的权衡是什么?

在cx_Oracle(或一般的Oracle)中,是否可以为每个查询分配一个游标,或者在多个查询中重用一个游标。defgetSomeData(curs):#case1:passinacursor,whichisgenerallycurs.execute('select...')#reusedacrossqueriesreturncurs.fetchall()defgetSomeData(conn):#case2:passinaconnection,allocatecurs=conn.cursor()#acursorforthisquerycurs.execute('select...')

python - 如何在可重用的 Django 应用程序中建模外键?

在我的Django站点中,我有两个应用程序、博客和链接。blog有一个模型blogpost,而links有一个模型链接。这两件事之间应该是一对多的关系。每篇博文有很多链接,但每个链接只有一篇博文。简单的答案是在链接模型中放置一个指向博客文章的外键。这一切都很好,但是有一个问题。我想让链接应用程序可重用。我不希望它依赖于博客应用程序。我希望能够在其他站点中再次使用它,并可能将链接与其他非博客应用程序和模型相关联。通用外键似乎可以解决问题,但实际上并非如此。我不希望链接能够与我站点中的任何模型相关联。只是我明确指定的那个。我从以前的经验中知道,在数据库使用方面使用通用外键可能会出现问题,因

具有相同名称的 Python 模块(即,在包中重用标准模块名称)

假设我有一个包含模块的包:SWS/__init.py__foo.pybar.pytime.py并且模块需要引用彼此包含的函数。我的time.py模块似乎遇到了问题,因为有一个同名的标准模块。例如,如果我的foo.py模块需要我的SWS.time和标准的pythontime模块,我遇到麻烦,因为解释器会查看包内部并在遇到标准time模块之前找到我的time.py模块。有什么办法解决这个问题吗?这是一个禁忌的情况吗?模块名称是否应该不被重用?任何关于包哲学的解决方案和意见在这里都会有用。 最佳答案 重用标准函数/类/模块/包的名称从来都