获取应用程序的Django版本。

12 浏览
0 Comments

获取应用程序的Django版本。

我正在开始一个新项目(其实非常古老),我知道它是在Django上构建的。我迷失在了知道它建立在哪个精确版本的Django上。有没有一种方法可以知道我的应用程序正在运行的Django版本?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以根据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.

这种方法仍然在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开发人员在给旧功能逐步迁移的过程中做得非常好,给予了充分的时间和警告。

0
0 Comments

唯一的方法是猜测。我会从查看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

或者在应用程序中有一个admin.py文件[5]表明这是一个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发行说明

[2]:1.2发行说明

[3]:1.3发行说明

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

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

[6]:多个数据库

0