获取应用程序的Django版本。
获取应用程序的Django版本。
我正在开始一个新项目(其实非常古老),我知道它是在Django上构建的。我迷失在了知道它建立在哪个精确版本的Django上。有没有一种方法可以知道我的应用程序正在运行的Django版本?
admin 更改状态以发布 2023年5月21日
你可以根据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开发人员在给旧功能逐步迁移的过程中做得非常好,给予了充分的时间和警告。
唯一的方法是猜测。我会从查看settings.py文件(或其他基础项目文件)的创建日期开始。
版本的发布日期:
在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发行说明
[6]:多个数据库