广受好评的Django教程现已更新至3.1版本,进行了全面细致的修订,添加了重要内容,更深入更丰富,恳请大家继续支持,衷心感谢!

Django环境安装

阅读: 119596     评论:23

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

关于Python的安装,请参考https://www.liujiangblog.com站点中Python教程的相关部分,这里不再赘述。

建议安装最新版本的Python!

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的版本差别并没有你想象中那么大,完全不必为版本的问题头疼。

一、安装Django

1. 通过pip安装Django

如果你是通过升级的方式安装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。

2. 验证安装

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

>>> import django
>>> django.get_version()
3.1

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

3. 配置系统环境

成功安装Django后,以windows为例,在Python解释器目录下的Scripts文件夹中可找到一个django-admin.exe文件,这是Django的核心管理程序,最好将它加入操作系统的环境变量中,这样在以后的调用会比较方便。

如何进入环境变量设置界面,请参考Python教程中的相关部分。如下图所示,在Path变量中添加Scripts目录。

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

D:\test>django-admin help

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
...以下省略

实际上,对Windows操作系统环境变量path的编辑,只是为了在命令行下可以无需带路径,直接执行一些程序,而不会出现程序文件无法找到的错误。

二、 创建项目

1. 在cmd或Linux命令行环境下创建Django项目

在windows的cmd环境中(Linux类同),输入下面的命令:

django-admin startproject mysite

这样就会在当前目录下创建一个叫做mysite的Django项目。

D:\test>django-admin startproject mysite
D:\test>dir

 D:\test 的目录

<DIR>          .
<DIR>          ..
<DIR>          mysite

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

D:\test>cd mysite

D:\test\mysite>dir

 D:\test\mysite 的目录

<DIR>          .
<DIR>          ..
               manage.py
<DIR>          mysite


D:\test\mysite>cd mysite

D:\test\mysite\mysite>dir

 D:\test\mysite\mysite 的目录

<DIR>          .
<DIR>          ..
               settings.py
               urls.py
               wsgi.py
               __init__.py

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

D:\test\mysite>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之旅了!


2. 在windows下使用Pycharm创建Django工程

事实上,我们一般不使用命令行,而是直接在Pycharm中创建Django项目。

Pycharm是进行Django开发的最佳IDE,请大家自行安装,建议使用最新专业版本。(非专业版的Pycharm不提供Django开发模块,非最新版的Pycharm可能对最新的Python或者Django支持不好。比如Pycharm2018对Python3.8的支持就不好,并且这些坑不好填。)

2018以后的Pycharm版本都支持同时创建虚拟环境和Django项目。

下面以Pycharm 2020.1专业版为例。(可以安装中文插件)

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

  • 在Location处选择工程目录
  • 使用此项目新建环境处选择Virtualenv(这可能需要你提前使用pip install virtualenv命令安装虚拟工具virtualenv)。通常情况下,虚拟环境会以venv的名字,自动在工程目录下生成。
  • 在基本解释器处,选择你要使用的Python解释器
  • 两个单选框,根据需要自行选择
  • 如果想使用现成的解释器或者虚拟环境,请选择现有解释器

再点开下方的More Settings

  • 模板语言: 选择使用的模板语言,默认Django就行。
  • 模板文件夹:这是Pycharm安利给我们的功能,用于额外创建一个工程级别的模板文件的保存目录,可以不设置,让它空着。template是目录的名字,可换成任何你喜欢的名字。这里我们不选择,因为可能出现os模块缺少的bug。
  • 应用程序名称: 自动帮你创建一个app,可选的功能
  • 开启管理站点: 用于开启后台管理admin功能,一般勾上。

没什么问题了,就点击Create吧。

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

创建完成之后,进入Pycharm的解释器设置菜单,可以看到当前Django版本是3.1版本。如果你要指定过去的版本,比如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

但是在Pycharm的早期版本中(包括教程中使用的2020.1版本),依然使用的是os.path,如果你在创建项目的时候同时指定了template目录,那么可能在运行服务器的时候出现缺少os模块的错误。此时,只需要在settings.py文件顶部添加import os即可。

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

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

如果没有特别说明,教程将在Pycharm中开发Django项目。

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


 Django简介 第一个Django应用 

评论总数: 23


点击登录后方可评论

user_image

用了两天的时间,终于把基础操作和虚拟环境这类东西整明白了。感觉好爽



user_image

千万别去搞什么虚拟环境 浪费时间 出了问题



user_image

不要因噎废食哦



user_image

请问从命令行运行`python manage.py runserver`,确定是在根目录下,运行后没有反应,这是什么情况呢?



user_image

信息太少,无法回答,sorry



user_image

最后 点击create后一直卡在这样一个对话框这里:installing Django downloading https://files.pythonhosted.org/packages/



user_image

检查内容填写和选择框。检查pycharm的设置。检查网络链接。



user_image

我的也这样,你最后咋解决的



user_image

你的可能是因为Python下载源的问题卡住,换成豆瓣的源应该就可以了



user_image

最好的django中文教程,寻找了很久



user_image

创建虚拟环境并安装django的时候一直不成功,总是超时报错唉:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.



user_image

检查网络。这个不是Django的锅。



user_image

真的太棒了,认真学习中



user_image

参考:https://www.cnblogs.com/wcwnina/p/9136398.html



user_image

写的很棒,正在努力学习中。要是侧边目录固定就好了,浏览起来会变得很方便。



user_image

我的点击运行后报错的,有时候直接报python 已停止工作。我的urls.py和你的内容不知道一不一样,我的只有 """mysite URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.10/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ]



user_image

不过我点击了mysite旁边的绿色箭头,可以直接启动服务器,也能成功好像.



user_image

我输入“pip install django-1.11.6”,好像不是“=”,我输入等于就不行。 错误位于第一大标题下的第1小标题。 新手,错了勿怪



user_image

不是‘-’



user_image

已经修改过来,谢谢指出!



user_image

123



user_image

从入门到真正入门,谢谢刘哥



user_image

千万不要放弃!哈哈!