Django介绍及安装流程

117 阅读9分钟

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

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

具体的Ptyhon安装过程省略

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

Django 版本 Python 版本 1.11 2.7, 3.4, 3.5, 3.6, 3.7 (1.11.17 添加) 2.0 3.4,3.5,3.6,3.7 2.1 3.5,3.6,3.7 2.2 3.5, 3.6, 3.7, 3.8 (2.2.8 添加) 3.0 3.6, 3.7, 3.8 3.1 3.6, 3.7, 3.8 Django本身的版本规划时间图如下所示:

未来版本的计划节点:

版本号 预计发布时间 主线维护结束时间 扩展支持结束时间 3.2 LTS 2021年4月 2021年12月 2024年4月 4.0 2021年12月 2022年8月 2023年4月 4.1 2022年8月 2023年4月 2023年12月 4.2 LTS 2023年4月 2023年12月 2026年4月 从上表中可以看出Django的版本更新迭代非常快,大版本号几乎两年加一。实际上,对于非重度用户,Django的版本差别并没有你想象中那么大,完全不必为版本的问题头疼。

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

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

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

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

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

activate 发现提示符改变为(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解释器),按下面所示查看安装版本:

>>> import django

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

解决ModuleNotFoundError: No module named 'pip'问题 通过以下两条命令可以解决 #python -m ensure pip #python -m pip install --upgrade pip 3)可以通过在命令行输入以下命令

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

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

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

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

D:\test>django-admin help ​ Type 'django-admin help ' for help on a specific subcommand. ​ Available subcommands: ​ [django] check compilemessages createcachetable dbshell ...以下省略 对Windows操作系统环境变量path的编辑,是为了在命令行下操作命令时可以不带路径,执行程序后不会出现程序文件无法找到的错误。

创建项目 命令行环境下创建Django项目 打开命令行界面,输入以下命令:

django-admin startproject books(项目名称) 程序会在当前目录下创建一个叫做books的Django项目

D:\test>django-admin startproject books D:\test>dir D:\test 的目录

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

D:\test>cd books D:\test\mysite>dir D:\test\books 的目录

. .. manage.py books D:\test\books>cd books D:\test\books\books>dir D:\test\books\books 的目录 . .. settings.py urls.py wsgi.py __init__.py

使用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,千万不要 将这个服务器用于和生产环境相关的任何地方,这个服务器只是为了开发而设计的。

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. 打开你的浏览器,在地址栏输入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文件处于同一级,输入下述命令:

$ python manage.py startapp polls 系统会自动生成 polls应用的目录,其结构如下:

polls/ init.py admin.py apps.py migrations/ init.py models.py tests.py views.py 在Pycharm中,没有可以创建app的图形化按钮,需要在下方的Terminal终端中输入命令:

python manage.py startapp polls 这样也能创建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配置文件 # 项目根目录 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' ————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                    

原文链接:blog.csdn.net/m0_73523460…