Django介绍及安装流程

虚拟环境安装【Windows】 命令行

Django是基于Python的Web框架,依赖Python环境,所以需要安装Python解释器。

具体的Ptyhon安装过程省略

Django各版本对Python版本的依赖关系如下表所示:

Django 版本Python 版本
1.112.7, 3.4, 3.5, 3.6, 3.7 (1.11.17 添加)
2.03.4,3.5,3.6,3.7
2.13.5,3.6,3.7
2.23.5, 3.6, 3.7, 3.8 (2.2.8 添加)
3.03.6, 3.7, 3.8
3.13.6, 3.7, 3.8

Django本身的版本规划时间图如下所示:

未来版本的计划节点:

版本号预计发布时间主线维护结束时间扩展支持结束时间
3.2 LTS2021年4月2021年12月2024年4月
4.02021年12月2022年8月2023年4月
4.12022年8月2023年4月2023年12月
4.2 LTS2023年4月2023年12月2026年4月

从上表中可以看出Django的版本更新迭代非常快,大版本号几乎两年加一。实际上,对于非重度用户,Django的版本差别并没有你想象中那么大,完全不必为版本的问题头疼。

安装Python虚拟环境

安装Python虚拟环境需要在命令行终端输入以下命令:

<span style="background-color:#f8f8f8"><span style="color:#333333">pip install virtualenv</span></span>

然后等软件安装下载完成后开始安装配置。

安装好virtualenv后,输入下述命令创建一个虚拟环境

<span style="background-color:#f8f8f8"><span style="color:#333333">virtualenv env_dir</span></span>

env_dir是虚拟环境的目录,运行以上命令后,会在当前目录下生成一个env_dir目录。

虚拟环境创建好后,在命令行终端进入env_dir目录,再到Script文件夹下,运行activate程序激活虚拟环境

<span style="background-color:#f8f8f8"><span style="color:#333333">activate</span></span>

发现提示符改变为(env_dir) 盘符后成功。

Django安装

pip安装Django

首先通过pip list命令查看是否安装了Django。

如果你是通过升级的方式安装Django,那么你需要先运行命令 pip uninstall django 卸载旧的版本。

Django提供3种发行版本,推荐使用官方的稳定版本:

  • 你的操作系统提供的发行版本(Linux)

  • 官方稳定版本(推荐)

  • 开发测试版本

Django本质上是Python语言的一个类库,因此可以通过pip工具安装。

以windows系统中使用pip命令安装为例:

win+r,调出cmd,以管理员身份运行命令:pip install django,自动安装PyPi提供的最新版本。

如果要指定版本,可使用pip install django==3.0.6(版本号)这种形式。

在Linux操作系统中,也是一样,使用pip工具包安装Django。

验证安装

1)进入Python交互式环境(注意一定要进入刚才安装了Django的Python解释器),按下面所示查看安装版本:

<span style="background-color:#f8f8f8"><span style="color:#333333">>>> import django
>>> django.get_version()</span></span>

2)使用pip list命令,查看是否存在Django模块。

<span style="background-color:#f8f8f8"><span style="color:#333333">解决ModuleNotFoundError: No module named 'pip'问题
通过以下两条命令可以解决
#python -m ensure pip
#python -m pip install --upgrade pip</span></span>

3)可以通过在命令行输入以下命令

<span style="background-color:#f8f8f8"><span style="color:#333333">python -m django --version</span></span>

如果这行命令输出了一个版本号,证明你已经安装了此版本的 Django;如果你得到的是一个“No module named django”的错误提示,则表明你还未安装。

配置系统环境

安装Django成功后,在Python解释器目录下的Scripts文件夹中可找到一个django-admin.exe文件,这是Django的核心管理程序,将它加入环境变量中,方便之后调用。

进入环境变量设置界面,如下图所示,在Path变量中添加Scripts目录。

回到cmd界面,直接运行django-admin help,如果能看到下面的内容表示环境变量设置成功。

<span style="background-color:#f8f8f8"><span style="color:#333333">D:\test>django-admin help
​
Type 'django-admin help <subcommand>' for help on a specific subcommand.
​
Available subcommands:
​
[django]
    check
    compilemessages
    createcachetable
    dbshell
...以下省略</span></span>

对Windows操作系统环境变量path的编辑,是为了在命令行下操作命令时可以不带路径,执行程序后不会出现程序文件无法找到的错误。

创建项目

命令行环境下创建Django项目

打开命令行界面,输入以下命令:

<span style="background-color:#f8f8f8"><span style="color:#333333">django-admin startproject books(项目名称)</span></span>

程序会在当前目录下创建一个叫做books的Django项目

<span style="background-color:#f8f8f8"><span style="color:#333333">D:\test>django-admin startproject books
D:\test>dir
D:\test 的目录
<DIR>          .
<DIR>          ..
<DIR>          books</span></span>

Django会自动创建一个books文件夹,这是项目的根目录。在books根目录中,又有一个books目录,这是整个项目的配置文件目录(一定不要和同名的根目录混淆),还有一个manage.py文件,它是整个项目的管理脚本。

<span style="background-color:#f8f8f8"><span style="color:#333333">D:\test>cd books
D:\test\mysite>dir
D:\test\books 的目录
<DIR>          .
<DIR>          ..
               manage.py
<DIR>          books
D:\test\books>cd books
D:\test\books\books>dir
D:\test\books\books 的目录
<DIR>          .
<DIR>          ..
               settings.py
               urls.py
               wsgi.py
               __init__.py</span></span>

使用Pycharm创建Django工程

以下内容为在Pycharm中创建Django项目

首先打开Pycharm,点击file-->new project,选择左边的Django,出现下图对话框,注意下面的红框提示:

  • 在Location处选择工程目录

  • 使用此项目新建环境>处选择Virtualenv(这可能需要你提前使用pip install virtualenv命令安装虚拟工具virtualenv)。通常情况下,虚拟环境会以venv的名字,自动在工程目录下生成。

  • 在基本解释器处,选择你要使用的Python解释器

  • 两个单选框,根据需要自行选择

  • 如果想使用现成的解释器或者虚拟环境,请选择现有解释器

再点开下方的More Settings:

  • 模板语言: 选择使用的模板语言,默认Django就行。

  • 模板文件夹:template是目录的名字,可换成任何你喜欢的名字。这里我们不选择,因为可能出现os模块缺少的bug。

  • 应用程序名称: 自动帮你创建一个app,可选的功能

  • 开启管理站点: 用于开启后台管理admin功能,一般勾上。

  • 以上操作完成后,点击Create完成创建

等待一段时间,Pycharm会帮助我们自动创建虚拟环境,以及安装最新版本的Django。

创建完成之后,进入Pycharm的解释器设置菜单,可以看到当前Django版本。如果你要指定过去的版本,比如2.2、1.11等,需要在命令行下自己创建虚拟环境并安装django。或者在这里先删除Django,再安装你想要的指定版本。

看下我们当前的状态,注意venv虚拟环境目录。

注意,注意,注意!:从Django3.1开始,官方使用pathlib替代了os.path。在settings.py文件中,第一行就是from pathlib import Path,并且BASE_DIR是这么定义的:

BASE_DIR = Path(file).resolve(strict=True).parent.parent

如果你在创建项目的时候同时指定了template目录,那么可能在运行服务器的时候出现缺少os模块的错误。此时,只需要在settings.py文件顶部添加import os即可。

点击绿色的三角,启动默认的开发服务器,如果看到欢迎界面,说明一切OK!

注意:第一次启动服务器后,Django会默认创建一个db.sqlite3文件,这是SQLite3数据库。

如果希望汉化Pycharm的,可以在settings的plugins中搜索chinese简体包,安装即可

启动项目

回到项目根目录下,运行python manage.py runserver,Django会以127.0.0.1:8000这个默认配置启动开发服务器。

注意事项:Django默认使用的为8000端口,可以在启动时单独设置其他端口如 python manage.py runserver 8001,千万不要 将这个服务器用于和生产环境相关的任何地方,这个服务器只是为了开发而设计的。

<span style="background-color:#f8f8f8"><span style="color:#333333">D:\test\books>python manage.py runserver
​
Watching for file changes with StatReloader
Performing system checks...
​
System check identified no issues (0 silenced).
August 31, 2020 - 08:57:27
Django version 3.1, using settings 'django3_test.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.</span></span>

打开你的浏览器,在地址栏输入127.0.0.1:8000,如果看到如下的界面,说明Django一切正常。

创建应用

在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构。

app应用与project项目的区别:

  • 一个app实现某个具体功能,比如博客、公共档案数据库或者简单的投票系统;

  • 一个project是配置文件和多个app的集合,这些app组合成整个站点;

  • 一个project可以包含多个app;

  • 一个app可以属于多个project!

app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。

进入mysite项目根目录,确保与manage.py文件处于同一级,输入下述命令:

<span style="background-color:#f8f8f8"><span style="color:#333333">$ python manage.py startapp polls</span></span>

系统会自动生成 polls应用的目录,其结构如下:

<span style="background-color:#f8f8f8"><span style="color:#333333">polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py</span></span>

在Pycharm中,没有可以创建app的图形化按钮,需要在下方的Terminal终端中输入命令:

<span style="background-color:#f8f8f8"><span style="color:#333333">python manage.py startapp polls</span></span>

这样也能创建polls应用。

Django文件

默认文件的作用

最外层的 books/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。 manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin 和 manage.py 获取所有 manage.py 的细节。 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls). books/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。 books/settings.py:Django 项目的配置文件。 books/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。 books/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。 books/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

settings配置文件

<span style="background-color:#f8f8f8"><span style="color:#333333"># 项目根目录
BASE_DIR = Path(__file__).resolve().parent.parent
# 密钥
SECRET_KEY = 'django-insecure-8g3#e88i6&wudgfo53e_f!r4vc0fz=w1opk_ik#h28(0#&qa@('
# 是否开启 Debug,生产环境尽量关闭
DEBUG = True
# 允许调用的白名单
ALLOWED_HOSTS = []
# 项目内启用的 APP
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 根 URL 路径
ROOT_URLCONF = 'test.urls'
# 指定 html 模板目录
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],#在原有目录基础上加上templates
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
# WASI 应用
WSGI_APPLICATION = 'test.wsgi.application'
# 指定数据库相关参数
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
# 验证密码方式
AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    }
]
# 指定语言编码
LANGUAGE_CODE = 'en-us'
# 指定时区
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# 静态文件目录,CSS, JavaScript, Images
STATIC_URL = '/static/'
# 指定默认主键
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'</span></span>

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值