前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开始进入 django 开发之旅

开始进入 django 开发之旅

作者头像
HelloGitHub
发布于 2021-05-14 03:17:34
发布于 2021-05-14 03:17:34
83500
代码可运行
举报
文章被收录于专栏:HelloGitHubHelloGitHub
运行总次数:0
代码可运行

开发环境说明

本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.6.4 (64 位),django 版本为 2.2.3。

建议尽可能地与教程的开发环境保持一致(尤其是 Python 与 django 版本),避免不必要的麻烦。Python 版本必须为 Python 3.4 或以上,django 版本号必须为 django 2.2.x。

注意: django 2.0 以上版本不再支持 Python 2。

安装 Python

Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可。

安装完后检测 Python 是否可以正常运行。在命令行输入 python -V ,如果输出了 Python 的版本号,说明 Python 已安装成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> python -V
Python 3.6.4

提示: 如果提示命令未找到,而你又确定已经安装了 Python,多半是因为没有把 Python 添加到环境变量。可搜索如何把 Python 添加到环境变量的相关教程,将安装的Python 添加到环境变量即可。

使用虚拟环境

强烈推荐在虚拟环境下进行 django 的开发。

虚拟环境是一种 Python 工具,使用它可以创建一个独立的 Python 环境。

为什么要使用虚拟环境呢?举个例子,假设你已经在系统中安装了 Python,并且在阅读此教程前你已经进行过一些 django 的学习,但那时候安装的 django 还是 1.x 的老版本。我们教程使用的是最新版的 django 2.2.x 版本,你可能不愿意删除掉旧版的 django 1.x,因为那可能导致你以前的项目无法运行。既想让原来的项目在 django 1.x 环境下运行,又想再安装 django 2.2.x 来开启本教程的项目,怎么办呢?使用虚拟环境就能够完美解决这个问题。

虚拟环境帮我们从系统的 Python 环境中克隆一个全新的 Python 环境出来,这个环境独立于原来的 Python 环境。我们可以在这个新克隆的环境下安装 django 2.2.x,并且在这个新环境下运行我们的新项目。

有多种方式创建和使用虚拟环境,此前我个人习惯使用 virtualenv 配合 virtualenvwrapper 两个 Python 库来使用和管理虚拟环境,现在我比较喜欢使用 Pipenv 代替上面两个工具。此外 Python 3.3 以后的发行版,自带一个 venv 供开箱即用。为了简单起见,这里介绍两种方式,一种是我之前用的 virtualenv,还有一种就是我现在在用的 Pipenv。virtualenvwrapper 和 venv 的使用,可以在学完这个教程后自行探索。

鉴于 Pipenv 可以完美替代 virtualenv 和 virtualenvwrapper,而且对项目依赖的管理做的更好,所以后续教程如果用到虚拟环境,都会使用 Pipenv 进行管理。

virtualenv 创建和管理虚拟环境

virtualenv 的使用非常简单,首先安装 virtualenv,打开命令行工具,输入下面的命令即可安装 virtualenv:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pip install virtualenv

安装成功后就可以开始创建虚拟环境,指定一个你喜欢的目录,virtualenv 会把这个新的虚拟环境装到你指定目录下。例如我把它装到 C:\Users\yangxg\.virtualenvs 目录下,并将虚拟环境命名为 blogproject_virtualenv(也可以取任何你喜欢的名字)。在命令栏运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> virtualenv C:\Users\yangxg\.virtualenvs\blogproject_virtualenv

虚拟环境已经创建好了,我们需要激活这个环境,进入到刚才创建的虚拟环境的根目录,运行 Scripts 目录下的 activate 程序激活它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> cd C:\Users\yangxg\.virtualenvs\blogproject_virtualenv
> .\Scripts\activate
(blogproject_virtualenv) >

注意

Linux 下没有 Scripts\ 这个目录,取而代之的是 bin/ 目录。且激活命令为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ source ./bin/activate

可以看到命令提示符前面多了 (blogproject_virtualenv),说明我们已经成功激活了虚拟环境,接下来就可以开始安装 django 了。

注意:

如果使用 PowerShell,微软默认不允许执行 ps1 脚本,如果你得到如下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+CategoryInfo          : SecurityError:(:) [],PSSecurityException
+FullyQualifiedErrorId : UnauthorizedAccess

需要修改 PowerShell 的脚本执行策略以允许 ps1 脚本运行,命令为 Set-ExecutionPolicy RemoteSigned:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> Set-ExecutionPolicy RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] (Y)  [A] 全是(A)  [N] (N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N): Y

即将执行策略修改为允许执行被信任的且由发布者签名的下载自 Internet 的脚本。

Pipenv 创建和管理虚拟环境

首先通过命令 pip install pipenv 安装 Pipenv。

然后创建一个文件夹,作为我们将要开发的博客项目的根目录,例如我在个人的工作目录 C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\ 下新建一个名为 HelloDjango-blog-tutorial 的目录,作为项目根目录。

然后进入这个目录,在这个目录下执行 pipenv install,Pipenv 将会为我们做好一切工作。具体来说,Pipenv会根据项目文件夹的名称创建一个虚拟环境,并且会在项目根目录下生成 Pipfile 和 Pipfile.lock 用于管理项目依赖(以后使用 Pipenv 安装的依赖会自动写入 Pipfile 文件,无需再手动维护 requirements.txt 文件,类似于 node.js 的 package.json,简直爽歪歪)。

此外,Pipenv 还非常贴心地输出下列信息,告诉你如何使用创建的虚拟环境:

To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.

即,要激活虚拟环境,在项目根目录下运行 pipenv shell 命令。

或者,没有激活虚拟环境的情况下,运行 pipenv run + 命令,也可以在虚拟环境中执行指定的命令。

考虑到 Pipenv 可以非常方便地帮我们管理虚拟环境以及项目依赖,后续我们将始终使用 Pipenv 作为虚拟环境管理工具。

提示:

你可能想知道 pipenv 创建的虚拟环境在哪里?默认情况下,Pipenv 会将虚拟环境创建在 ~/.virtualenvs 目录下,在项目根目录下使用 pipenv --venv 可以查看到项目对应的虚拟环境的具体位置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pipenv --venv
C:\Users\yangxg\.virtualenvs\HelloDjango-blog-tutorial-VDQF8f6V

安装 Django

django 的官方文档对 如何安装 django[1] 给出了详细且明确的指导,不过我们目前用不上这些,只需使用 pipenv 命令就可以解决问题。进入项目根目录,运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pipenv install django==2.2.3

我们用 django==2.2.3 来安装指定的 django 版本以保证和教程中的一致。如果你直接 pipenv install django 的话有可能安装最新的 django 发行版本,而不是 django 2.2.3,有可能带来不兼容性,为后续教程的顺利进行带来麻烦。

测试一下安装是否成功,先在命令行输入 pipenv run python 启动虚拟环境中的 Python 解释器交互界面)。然后输入 import django,如果没有报错就说明 django 安装成功。通过运行 print(django.get_version()) 打印出 django 的版本号,确保安装了正确版本的 django。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pipenv run python
(HelloDjango-blog-tutorial-VDQF8f6V) > python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD6Type "help", "copyright", "credits" or "license" for more information.

>>> import django
>>> print(django.get_version())
2.2.3

建立 Django 工程

万事已经具备了,让我们来建立 django 项目工程。

django 工程(Project)是我们项目代码的容器,例如我们博客项目中所有的代码(包括 django 为我们自动生成的以及我们自己写的)都包含在这个工程里。其实说通俗一点就是用一个文件夹把一系列 Python 代码文件和 django 配置文件包裹起来,这个文件夹就可以看做一个 django 工程。我们不必亲自动手新建这个文件夹和代码文件,django 的内置命令已经帮我们做了这些事情。例如我把博客工程的代码放在C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial 目录下,工程名我把它叫做 blogproject,那么在项目根目录运行如下命令创建工程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pipenv run django-admin startproject blogproject C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial

django-admin startproject 命令用来初始化一个 django 项目,它接收两个参数,第一个是项目名 blogproject,第二个指定项目生成的位置,因为之前我们为了使用 Pipenv 创建了项目根目录,所以将项目位置指定为此前创建的位置。

进入工程所在目录 C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial(你可能设置在其它路径),会发现多了一个 blogproject\ 的目录,整个项目的文件结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HelloDjango-blog-tutorial\
    Pipfile
    Pipfile.lock
    manage.py
    blogproject\
        __init__.py
        settings.py
        urls.py
        wsgi.py

最顶层的 HelloDjango-blog-tutorial\ 目录是我们刚刚指定的项目根目录。HelloDjango-blog-tutorial\ 目录下面有一个 manage.py 文件,manage 是管理的意思,顾名思义 manage.py 就是 django 为我们生成的管理这个项目的 Python 脚本文件,以后用到时会再次介绍。与 manage.py 同级的还有一个 blogproject\ 的目录,这里面存放了一些 django 的配置文件,例如 settings.py、urls.py 等等,以后用到时会详细介绍。

Hello Django

网站需要运行在一个 Web 服务器上,django 已经为我们提供了一个用于本地开发的 Web 服务器。在命令行工具里进入到 manage.py 所在目录,即 HelloDjango-blog-tutorial\ 目录下。运行 pipenv run python manage.py runserver 命令就可以在本机上开启一个 Web 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> pipenv run python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 05, 2019 - 21:05:37
django version 2.2.3, using settings 'blogproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

看到这样的信息表明我们的服务器开启成功。

在浏览器输入 http://127.0.0.1:8000/ ,看到如下的页面:

It worked! django 工作了!

注意: 如果在浏览器输入 http://127.0.0.1:8000/ 后显示无法访问该网站,请检查是不是浏览器代理的问题。比如开启了某些 VPN 代理服务等,将它们全部关闭即可。

这是 manage.py 的第一个用法,运行它的 runserver 命令开启本地开发服务器,以后我们还会遇到更多的命令。

命令栏工具下按 Ctrl + c 可以退出开发服务器(按一次没用的话连续多按几次)。重新开启则再次运行 python manage.py runserver

django 默认的语言是英语,所以显示给我们的欢迎页面是英文的。我们在 django 的配置文件里稍作修改,让它支持中文。用任何一个文本编辑器打开 settings.py 文件,找到如下的两行代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HelloDjango-blog-tutorial/blogproject/settings.py

## 其它配置代码...

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

## 其它配置代码...

LANGUAGE_CODE 的值改为 zh-hansTIME_ZONE 的值改为 Asia/Shanghai

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HelloDjango-blog-tutorial/blogproject/settings.py

## 其它配置代码...

# 把英文改为中文
LANGUAGE_CODE = 'zh-hans'

# 把国际时区改为中国时区(东八区)
TIME_ZONE = 'Asia/Shanghai'

## 其它配置代码...

保存更改后关闭 settings.py 文件。

再次运行开发服务器,并在浏览器打开 http://127.0.0.1:8000/,可以看到 django 已经支持中文了。

一切准备就绪,开始进入我们的 django 博客开发之旅吧!

References

[1] 如何安装 django: https://docs.djangoproject.com/en/2.2/intro/install/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HelloGitHub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 Fabric 自动化部署 Django 项目
在上一篇教程中,我们通过手工方式将代码部署到了服务器。整个过程涉及到十几条命令,输了 N 个字符。一旦我们本地的代码有更新,整个过程又得重复来一遍,这将变得非常繁琐。
HelloGitHub
2021/05/14
1.2K0
是时候让大家看看你用django写出来
博客的基础功能已经开发的差不多了,虽然还有很多地方可以完善,但我们还是希望早点把博客部署到服务器上,让他人可以通过外网访问。至于有待完善的地方,可以等部署完后一点点地迭代和改进。现在就让我们来把博客部署到服务器上吧!
py3study
2020/01/02
1.1K0
使用 Docker 让部署 Django 项目更加轻松
那么我们有没有办法,让本地开发环境和线上环境保持一致?这样我们在部署上线前,就可以在本地进行验证,只要验证没问题,我们就有 99% 的把握保证部署上线后也没有问题(1%保留给程序玄学)。
HelloGitHub
2021/05/14
1.5K0
​第二篇:"空空如也"的博客应用
我们已经建立了 django 博客的项目工程,并且成功地运行了它。不过到目前为止这一切都还只是 django 为我们创建的项目初始内容,django 不可能为我们初始化生成博客代码,这些功能性代码都得由我们自己编写。
HelloGitHub
2021/05/14
2950
搭建开发环境
本教程使用的开发环境 本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.5.2 (64 位),Django 版本为 1.10.6。 建议尽可能地与教程的开发环境保持一致(尤其是 Python 与 Django 版本),避免不必要的麻烦。推荐的 Python 版本为 Python 3.4 或以上,Django 版本号必须为 Django 1.10.x。 注意:本教程将尽量保证兼容 Python 2,但不会在 Python 2 环境下做测试。如果你因为某种原因必须使
追梦人物
2018/04/17
2.1K0
搭建开发环境
初始化 RESTful API 风格的博客系统
在 HelloDjango 全栈系列教程的第一步——Django博客教程(第二版)中,我们一步步地开发了一个功能完善的个人博客系统。
HelloGitHub
2021/05/14
7130
统计 Django 项目的测试覆盖率
我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试。现在我们想知道的是究竟测试效果怎么样呢?测试充分吗?测试全面吗?还有没有没有测到的地方呢?
HelloGitHub
2021/05/14
9730
建立 Django 博客应用
建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它。不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Django 不可能为我们初始化生成博客代码,这些功能性代码都得由我们自己编写。 Django 鼓励我们把自己编写的代码组织到应用(Application)里,并且最好是一个应用只提供一种功能。例如我们要开发的 Django 博客,相关的代码都放在 blog 这个应用里。其实应用也没什么复杂的,不过是把功能相关的代码组织到一个文件夹里,这个文件夹就成了一个应用
追梦人物
2018/04/17
6340
Django 博客教程:建立django工程(连载二)
專 欄 ❈追梦人物,电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使用 django 开发网站系统。Django开源论坛作者。 博客地址:http://www.jianshu.com/u/f0c09f959299 ❈ 建立 django 工程 万事已经具备了,让我们来建立我们的 django 工程。 django 工程(project)是我们项目代码的容器。例如我们博客项目中所有的代码(包括 django 为我们自动生成的以及我们自己写的)都包含在
Python中文社区
2018/01/31
9410
Centos7 安装python虚拟环境+Django
鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。
py3study
2018/08/03
1.6K0
让 Django 完成翻译:迁移数据库
我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。 迁移数据库 为了让 Django 完成翻译,创建好这些数据库表,我们再一次请出我的工程管理助手 manage.py。激活虚拟环境,切换到 manage.py 文件所在的目录下,分别运行 python manage.py makemigrations 和 python manage.py migrate 命令: C:\WINDOWS\system
追梦人物
2018/04/17
1.3K0
Django学习-第一讲(上) 虚拟环境
pip install virtualenv pip3 install virtualenv
小海怪的互联网
2019/08/23
9400
Django学习-第一讲(上) 虚拟环境
Django Haystack 全文检索与关键词高亮
博客提供 RSS 订阅应该是标配,这样读者就可以通过一些聚合阅读工具订阅你的博客,时时查看是否有文章更新,而不必每次都跳转到博客上来查看。现在我们就来为博客添加 RSS 订阅功能。
HelloGitHub
2021/05/14
1K0
Django环境搭建和开发初体验
开发中, 使用如上命令安装, 会将包安装到/usr/local/lib/python3.6/dist-packages/下
菜菜cc
2022/11/15
3910
Django环境搭建和开发初体验
Django博客开发教程-Python零基础开发网站<一>
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
梦溪
2021/08/09
1.1K0
Django开发快速入门
首先,我们需要在计算机上有一个专用目录来存储代码。 它可以放置在任何地方,但为了方便起见,如果您使用的是Mac,我们可以将其放在“桌面”文件夹中。 位置真的没关系; 它只需要易于访问。
宇宙之一粟
2020/10/26
2.4K0
Django开发快速入门
[232]requests库作者另一神器Pipenv的用法
我们在运行 Python 项目的时候经常会遇到一些版本问题,例如 A 项目依赖于 Django 1.5,而 B 项目又依赖 Django 2.0,而我们的系统却只有一个 Python 解释器,我们所有的包都被装在了 Python 安装目录的 site-packages 目录下,所以 Django 只能是某个特定的版本,所以这样就会导致运行的时候导致 A 或 B 项目出现兼容问题。为了解决这个问题,我们可能会使用 virtualenv 来为项目创建一套独立的 Python 运行环境,或者我们可能会使用 Docker 容器来实现不同项目的隔离运行,但总的来说,它们使用起来其实并没有那么方便。另外在进行 Python 包管理时,requirements.txt 这样的包依赖标识文件也显得很鸡肋,在某些情况下可能会带来一些麻烦。为了解决这些问题,一个更加使用方便的包管理工具诞生了,叫做 Pipenv,接下来就让我们一起来了解一下它的用法。
周小董
2022/04/12
8790
Python web项目Django部署
Mac直接在bash中输入ssh root@你的主机ip Windows请下载ssh远程连接工具例如Putty 腾讯云默认不能以root身份登录,请使用以下方式登录
py3study
2020/01/16
2.9K0
Python web项目Django部署
Django博客教程(搭建开发环境)
本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.6(64 位),Django 版本为 2.0。
戈贝尔光和热
2018/12/27
1.2K0
【Python全栈100天学习笔记】Day41 Django快速上手
Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种方式就变得极度糟糕。为了解决这个问题,开发人员想到了用外部程序来为Web服务器生成动态内容,也就是说HTML页面以及页面中的动态内容不再通过手动编写而是通过程序自动生成。最早的时候,这项技术被称为CGI(公共网关接口),当然随着时间的推移,CGI暴露出的问题也越来越多,例如大量重复的样板代码,总体性能较为低下等,因此在时代呼唤新英雄的背景下,PHP、ASP、JSP这类Web应用开发技术在上世纪90年代中后期如雨后春笋般涌现。通常我们说的Web应用是指通过浏览器来访问网络资源的应用程序,因为浏览器的普及性以及易用性,Web应用使用起来方便简单,免除了安装和更新应用程序带来的麻烦,而且也不用关心用户到底用的是什么操作系统,甚至不用区分是PC端还是移动端。
天道Vax的时间宝藏
2022/04/02
6680
【Python全栈100天学习笔记】Day41 Django快速上手
相关推荐
使用 Fabric 自动化部署 Django 项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验