【问题标题】:Get the version of Django for application获取应用程序的 Django 版本
【发布时间】:2011-09-25 16:36:26
【问题描述】:

我正在开始一个新的(实际上很老的)项目,我知道它是在 Django 中。知道它所构建的 Django 的确切版本,我迷失了方向。有没有办法知道我的应用程序正在运行的 Django 版本?

【问题讨论】:

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


    【解决方案1】:

    唯一的办法就是猜测。我将首先查看 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 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

    【讨论】:

    • 这将告诉你 Django 的 当前 版本,而不是构建项目的版本。
    • @jJames Khoury 实际上我正在尝试运行该项目,但迷失了使用哪个版本的 Django。它不是一个正在运行的项目。我的意思是这是一个正在运行的项目,现在我正在调试一些功能。
    • @prabech 那么我的回答将无济于事。在这种情况下,您必须查看您的 settings.py 文件及其创建日期。从中你或许能猜出最近更新的变化。
    • @prabesh 我已经更新了我的答案,我会继续寻找能告诉你哪个版本的东西。
    • 哈哈!您刚刚编辑了您的答案,因为我正在撰写我的答案以包含数据库设置作为一个很好的提示!打得好,先生!
    【解决方案2】:

    您可以根据 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 开发人员在做正确的事情方面做得很好,只要有足够的时间并警告旧功能随着时间的推移正确迁移。

    【讨论】:

    • +1 表示已折旧的警告。这是找出答案的好方法。
    【解决方案3】:

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

    打开一个 Python 终端,其路径上有 Django 项目。

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

    该版本号仅用于说明。我希望你的可能会有所不同。

    【讨论】:

    • 你要安装你发布的 django 版本要容易得多。但这不是我需要的。我想知道我的项目是为哪个 django 版本创建的。
    • 我在 Rails 方面有一些经验,要获得应用程序使用的版本,您只需检查 gemfile 或使用早期版本,您必须检查一些配置文件。实际上,以上两个答案都对我有很大帮助,因为我是 django 的新手。无论如何谢谢你。
    • 或者你可以通过django-admin.py --version获取当前安装的django版本
    【解决方案4】:

    这适用于Django 1.7:

    import django
    django.VERSION
    

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

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

    注意:重要的是,您需要确保在运行之前在 python 虚拟环境中运行,否则您将导入系统范围的 django,而不是在项目级别。

    【讨论】:

    【解决方案5】:

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

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

    这让我得到以下信息:

    1.7.1
    

    【讨论】:

    • 这不只会告诉你安装的版本,而不是应用所依赖的版本吗?
    【解决方案6】:
    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 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2013-01-13
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多