1.django 开发环境搭建

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本教程使用的开发环境

本教程写作时开发环境的系统平台为 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 环境下做测试。如果你因为某种原因必须使用 Python 2,你可以在 Python 2 环境下尝试运行教程里的代码,应该能够顺利运行。

安装 Python

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

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

C:\WINDOWS\system32>python -V
Python 3.5.2

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

使用虚拟环境 Virtualenv

强烈推荐在 Virtualenv 下进行 Django 的开发。Virtualenv 是一个 Python 工具,使用它可以创建一个独立的 Python 环境。

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

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

Virtualenv 的使用非常简单,首先安装 Virtualenv,打开命令行工具,输入 pip install virtualenv 命令即可安装 Virtualenv。

C:\WINDOWS\system32>pip install virtualenv

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

C:\WINDOWS\system32>virtualenv C:\Users\yangxg\Envs\blogproject_env

虚拟环境已经创建好了,我们需要激活这个环境,运行 blogproject_env\Scripts\ 目录下的 activate 程序激活它:

C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate
(blogproject_env) C:\WINDOWS\system32>

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

$ source blogproject_env/bin/activate

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

安装 Django

Django 的官方文档对 如何安装 Django 给出了详细且明确的指导,不过我们目前用不上这些,只需使用 pip 命令就可以解决问题。

(blogproject_env) C:\WINDOWS\system32>pip install django==1.10.6

我们用 django==1.10.6 来安装指定的 Django 版本以保证和教程中的一致。如果直接 pip install django 的话有可能安装最新的 Django 发行版本,而不是 Django 1.10.6。

注意命名提示符前的 (blogproject_env) 以确保你始终处在虚拟环境中,如果不小心退出了虚拟环境,先按上面的步骤重新进入再安装 Django。

测试一下安装是否成功,先在命令行输入 python 以打开 Python 自带的命令栏,然后输入 import django,如果没有报错就说明 Django 安装成功。通过运行 print(django.get_version()) 打印出 Django 的版本号,确保安装了正确版本的 Django。

(blogproject_env) C:\WINDOWS\system32>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.get_version())
1.10.6
>>>

建立 Django 工程

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

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

首先在命令行进入到 C:\Users\yangxg\Workspace 这个目录(如果你还停留在 Python 的命令栏里,先多按几次 Ctrl + c 键跳出来):

(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace

然后运行如下命令创建工程:

(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject

再次申明一定要在虚拟环境下运行这些命令,虚拟环境的标志就是命令提示符前有 (blogproject_env) 这样的标记。以后几乎所有和 Django 有关的命令都是在虚拟环境下运行,因此在运行前一定确保先开启了虚拟环境。

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

blogproject\manage.pyblogproject\__init__.pysettings.pyurls.pywsgi.py

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

Hello Django

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

(blogproject_env) C:\Users\yangxg\Workspace>cd C:\Users\yangxg\Workspace\blogproject(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver
Performing system checks...System check identified no issues (0 silenced).You have 13 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.
December 21, 2016 - 20:23:07
Django version 1.10.4, 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/ ,看到如下的页面提示信息:

Welcome to Django

It worked! Django 工作了!

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

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

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

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

blogproject/blogproject/settings.py## 其它配置代码...LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'## 其它配置代码...

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

blogproject/blogproject/settings.py## 其它配置代码...# 把英文改为中文
LANGUAGE_CODE = 'zh-hans'# 把国际时区改为中国时区
TIME_ZONE = 'Asia/Shanghai'## 其它配置代码...

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

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

欢迎认识 Django

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

总结

本章节的代码位于:Step1: build development environment。

如果遇到问题,请通过下面的方式寻求帮助。

  • 在下方评论区留言。
  • 将问题的详细描述通过邮件发送到 djangostudyteam@163.com,一般会在 24 小时内回复。
  • 加入 Django 学习小组 QQ 群,扫描下方二维码加入。

转载于:https://my.oschina.net/zhiyonghe/blog/918620

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

改jpg_|我来改第04期|—人物海报设计

【我来改第04期】人物海报文案内容-Ad copyhttps://pan.baidu.com/s/16pz9_rcLXTGZ3xzKFjKN9g 密码: r57t设计要求-Requirement尺寸:1080(高)*650(宽)像素,大小不大于5m设计要求:以目前的蓝色为主要颜色(R:47,G:87,B:130),画面体…

Java即时类| plus()方法与示例

即时类plus()方法 (Instant Class plus() method) Syntax: 句法: public Instant plus(TemporalAmount t_amt);public Instant plus(long amt, TemporalUnit t_unit);plus() method is available in java.time package. plus()方法在java.time包中可用。 plus(Temp…

计算机领域中dns是什么意思,dns错误是什么意思?dns错误要如何解决?

随着网络的普及,电脑已经成为我们生活中必不可少的物品,它可以帮助我们工作和学习以及娱乐。不过电脑在使用的过程中,常常会出现一些问题,小编觉得最常见也最让人心生烦躁的就是输入网址打开之后出现网页打不开,提示dn…

Launch Instruments

Launch Instruments 该仪器应用在Xcode应用程序,所以推出是在Xcode的最直接的方式。你也可以启动它间接地通过码头,启动,或命令行。The Instruments app lives inside the Xcode app, so the most direct way to launch it is from within Xc…

java clock计时_Java Clock类| offset()方法与示例

java clock计时Clock Class offset()方法 (Clock Class offset() method) offset() method is available in java.time package. offset()方法在java.time包中可用。 offset() method is used to generate a new Clock from the given base clock with added the given Duratio…

dataframe数据标准化处理_数据处理中的标准化、归一化究竟是什么?

关注上方“Python数据科学”,选择星标,精彩文章不会错过!今天说一个比较重要的内容,无论是在算法建模还是在数据分析都比较常见:数据归一化和标准化。开始之前,请你先把网上看到的所有相关的博客、帖子都忘…

北航计算机学院博士机试考试题,北航2015考博真题回忆及全套资料 - 考博 - 小木虫 - 学术 科研 互动社区...

我是2015年毕业的应届硕士,报考了北航经管院的博士。想写这篇文很久了,现在复试完等最后结果中,把自己一路走来的经验分享给大家。1.报名报名之前很重要的一点就是联系导师。我是研二下,快放暑假了才开始联系导师。北航一般是11月…

用了Redis里面的map和set

map的操作用 hset,hget等 set的操作有 sadd sismember等 参考下面: http://blog.csdn.net/kwsy2008/article/details/48467441

java输出不同颜色_Java设计模式-策略模式、状态模式

推荐阅读:一只Tom猫:都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”!java喵:6大面试技能树:JAVA基础JVM算法数据库计算机网络操作系统前言当代码中出现多重if-else语句或者switch语…

c++stl和std_std :: rotate()函数以及C ++ STL中的示例

cstl和stdC STL std :: rotate()函数 (C STL std::rotate() function) rotate() function is a library function of algorithm header, it is used to rotate left the elements of a sequence within a given range, it accepts the range (start, end) and a middle point,…

计算机硬盘正在工作应特别注意避免,初级计算机考试题库

计算机的初级基本*作包括基本信息栏、计算机的基础知识、五笔字型基础、*互联网的*作、常用办公外设的使用、计算机硬件的日常维护与保养和office办公工具的应用。下面是初级计算机考试题库,请参考!1.以下与信息有关的设备计算中,用于存储信息…

abap 添加alv上的工具栏的按钮_神器必会!“世界上最好的编辑器Source Insight”...

前言“Source Insight(以下简称SI)是世界上最好的编辑器”,说这句话不知道会不会出门被打呢?-_- 中国古话说得好,“文无第一,武无第二”,所以不敢说SI是最好的,但是说是“最好的之一”绝对是妥妥的。它以丰…

SLF4J with Logback in a Maven Project | Mograblog

SLF4J with Logback in a Maven Project | Mograblog

Ruby中带有示例的Hash.key?(value)方法

Hash.key?(value)方法 (Hash.key?(value) Method) In this article, we will study about Hash.key?(value) Method. The working of the method cant be assumed because its quite a different name. Let us read its definition and understand its implementa…

计算机课伤害事故的防范,体育课安全伤害事故的防范与处理

摘 要:近年来,在教育改革的背景下,学校方面特别重视体育教学这一环节。做好体育教学工作,一方面能够使学生达到强身健体的目的,另一方面能够使学生的综合素质水平得到有效提升。然而,在体育课中还会发生一些…

同一个容器实例可以同时运行在多个宿主机_从零开始学K8s: 3.什么是容器

Kubernetes使用Linux容器技术来实现应用的隔离。因此在深入学习k8s之前,我们需要先学习容器的基础知识以便更好地去理解k8s的原理机制。揭开容器的神秘面纱当一个应用只由较少数量的大组件构成时,完全可以给每个组件分配一个专用的虚拟机,以及…

__str__是什么函数_PHP str_shuffle()函数与示例

__str__是什么函数PHP str_shuffle()函数 (PHP str_shuffle() Function) str_shuffle() function is a string function and it is used to shuffle all characters randomly in the string. str_shuffle()函数是一个字符串函数,用于随机地随机排列字符串中的所有字…

SpringBoot集成RabbitMq消息队列【附源码】

1. 项目背景 要啥项目背景,就是干!!! SpringBoot版本:2.7.12 2. Rabbit MQ安装 这里讲解使用docker安装RabbitMQ,如果在windows下面安装RabbitMQ,参考下文 【笑小枫的按步照搬系列】Window…

【云栖直播】精彩推荐第3期:个性化推荐系统搭建实践

热门推荐 (1)即将直播持续集成与交付:分层自动化之UI自动化体系建设直播简介:本系列直播由阿里旗下一站式研发提效平台云效策划推出,主要为大家详细介绍阿里巴巴在持续集成和持续交付的最佳实践。 直播讲师&#xff1a…

全国计算机等级考试和cct区别,全国计算机等级考试(NCRE)和CCT的区别你了解多少?...

在大学,很多学生都在纠结,到底学什么技能在以后的就业中能够提升自己的核心竞争力。在众多等级考试中,全国计算机等级考试可以说是相对热门的考试。关于计算机等级考试,一共有两种,一类是全国高等学校计算机水平考试(C…