获取Django的应用程序版本

Pra*_*tha 19 python django mod-python django-templates django-admin

我正在开始一个新的(实际上非​​常古老的)项目,我知道它是在Django中.我知道它已构建的Django的确切版本,我迷路了.有没有办法让我知道我的应用程序运行的Django版本?

Jam*_*ury 19

唯一的方法是猜测.我首先看一下settings.py文件(或其他基础项目文件)的创建日期

版本的发布日期:

  • 1.0:2008年9月.(?)
  • 1.1:2009年7月29日[ 1 ]
  • 1.2:2010年5月17日[ 2 ]
  • 1.3:2011年3月23日[ 3 ]

在你的urls.py:[ 4 ]

from django.conf.urls.defaults import *
from django.contrib import admin
Run Code Online (Sandbox Code Playgroud)

或者admin.py在应用程序中有一个文件[ 5 ]表明它是一个1.0+项目.

在你的urls.py:[ 6 ]

(r'^admin/', include(admin.site.urls)),
Run Code Online (Sandbox Code Playgroud)

建议1.1+.

在您的settings.py文件中:

DATABASES = {
    'default': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'postgres_user',
        'PASSWORD': 's3krit'
    },
    'users': {
        'NAME': 'user_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    }
}
Run Code Online (Sandbox Code Playgroud)

建议1.2+.

[1]:1.1发行说明

[2]:1.2发行说明

[3]:1.3发行说明

[4]:向后不兼容的更改0.96> 1.0

[5]:向后不兼容的更改0.96> 1.0

[6]:多个数据库

  • 这将告诉你当前*版本的Django,而不是项目的版本. (2认同)

jat*_*ism 11

您可以根据settings.py的布局方式进行猜测.您的第一个提示将来自数据库设置.Django 1.2之前的旧方法是:

DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = os.path.join(BASE_DIR, 'db')             # Or path to database file if using sqlite3.
#DATABASE_USER = ''             # Not used with sqlite3.
#DATABASE_PASSWORD = ''         # Not used with sqlite3.
#DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
#DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
Run Code Online (Sandbox Code Playgroud)

这个方法仍然支持1.3,但现在让Django大声抱怨它被弃用了.

从Django 1.2开始,使用以下格式:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(PROJECT_DIR, 'mycms.db'),
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这不是确定的,但它确实至少可以提示您的应用程序是在Django 1.2之前还是之后编写的.

请记住,针对较旧版本的Django编写的应用程序仍然可以正常工作,但如果您的代码引用了已弃用或只是移动的内容,您可能会在控制台上收到大量弃用警告.

通常可以在短期内安全地忽略这些警告,但是您应该花些时间通过更新代码来使它们静音,以引用新家/格式的功能.Django开发人员在做正确的事情方面做得很好,因为随着时间的推移,为旧功能提供充足的时间和警告.


aez*_*ell 7

我看到上面接受的答案,我认为这更容易.也许我错过了什么,但这就是我要做的.

打开一个在其路径上有Django项目的python终端.

$ python
>>> import django
>>> print django.get_version()
0.97-pre-SVN-7668
Run Code Online (Sandbox Code Playgroud)

该版本号仅供参考.你希望,你的可能会有所不同.

  • 你得到的django版本安装你发布的那个更容易.但这不是我需要的.我想知道我的项目创建的django的版本. (4认同)
  • 或者您可以只使用`django-admin.py --version`来获取当前安装的django版本的版本 (2认同)