获取Django的应用程序版本

时间:2011-06-30 05:17:42

标签: python django django-admin django-templates mod-python

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

6 个答案:

答案 0 :(得分: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

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

进入你的urls.py:[6]

(r'^admin/', include(admin.site.urls)),

建议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'
    }
}

会建议1.2 +。

[1]:1.1 release notes

[2]:1.2 release notes

[3]:1.3 release notes

[4]:Backwards Incompatible changes 0.96 > 1.0

[5]:Backwards Incompatible changes 0.96 > 1.0

[6]:Multiple databases

答案 1 :(得分:11)

您可以根据settings.py的布局方式进行猜测。您的第一个提示来自database settings。 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.

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

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

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

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

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

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

答案 2 :(得分:7)

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

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

$ python
>>> import django
>>> print django.get_version()
0.97-pre-SVN-7668

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

答案 3 :(得分:0)

这适用于Django 1.7:

import django
django.VERSION

...产生(在我的机器上):

(1, 7, 0, 'rc', 3)

答案 4 :(得分:0)

https://docs.djangoproject.com/en/1.7/intro/tutorial01/

python -c "import django; print(django.get_version())"

让我得到以下信息:

1.7.1

答案 5 :(得分:0)

Django settings for ********** project.

Generated by 'django-admin startproject' using Django 2.0.9.

For more information on this file, see
https://docs.djangoproject.com/en/2.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/

打开settings.py文件时,您会看到上面的Django版本。