11## Django 2.x实战(01) - 快速上手
22
3- Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,这样随着网站规模和体量的增大,这种方式就变得极度糟糕。为了解决这个问题,开发人员想到了用外部程序来为Web服务器生成动态内容,也就是说HTML页面以及页面中的动态内容不再通过手动编写而是通过程序自动生成。最早的时候,这项技术被称为CGI(公共网关接口),当然随着时间的推移,CGI暴露出的问题也越来越多,例如大量重复的样板代码,总体性能较为低下等,因此在呼唤新的英雄的时代 ,PHP、ASP、JSP这类Web应用开发技术在上世纪90年代中后期如雨后春笋般涌现。通常我们说的Web应用是指通过浏览器来访问网络资源的应用程序,因为浏览器的普及性以及易用性,Web应用使用起来方便简单,而且在应用更新时用户通常不需要做任何的处理就能使用更新后的应用 ,而且也不用关心用户到底用的是什么操作系统,甚至不用区分是PC端还是移动端。
3+ Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,这样随着网站规模和体量的增大,这种方式就变得极度糟糕。为了解决这个问题,开发人员想到了用外部程序来为Web服务器生成动态内容,也就是说HTML页面以及页面中的动态内容不再通过手动编写而是通过程序自动生成。最早的时候,这项技术被称为CGI(公共网关接口),当然随着时间的推移,CGI暴露出的问题也越来越多,例如大量重复的样板代码,总体性能较为低下等,因此在时代呼唤新英雄的背景下 ,PHP、ASP、JSP这类Web应用开发技术在上世纪90年代中后期如雨后春笋般涌现。通常我们说的Web应用是指通过浏览器来访问网络资源的应用程序,因为浏览器的普及性以及易用性,Web应用使用起来方便简单,免除了安装和更新应用程序带来的麻烦 ,而且也不用关心用户到底用的是什么操作系统,甚至不用区分是PC端还是移动端。
44
55### Web应用机制和术语
66
@@ -16,7 +16,7 @@ Web开发的早期阶段,开发者需要手动编写每个页面,例如一
1616| ** 域名** | 与Web服务器地址对应的一个易于记忆的字符串名字 |
1717| ** DNS** | 域名解析服务,可以将域名转换成对应的IP地址 |
1818| ** IP地址** | 网络上的主机的身份标识,通过IP地址可以区分不同的主机 |
19- | ** HTTP** | 超文本传输协议,应用层协议 ,万维网数据通信的基础 |
19+ | ** HTTP** | 超文本传输协议,构建在TCP之上的应用级协议 ,万维网数据通信的基础 |
2020| ** 反向代理** | 代理客户端向服务器发出请求,然后将服务器返回的资源返回给客户端 |
2121| ** Web服务器** | 接受HTTP请求,然后返回HTML文件、纯文本文件、图像等资源给请求者 |
2222| ** Nginx** | 高性能的Web服务器,也可以用作[ 反向代理] ( https://zh.wikipedia.org/wiki/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86 ) ,[ 负载均衡] ( https://zh.wikipedia.org/wiki/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1 ) 和 [ HTTP缓存] ( https://zh.wikipedia.org/wiki/HTTP%E7%BC%93%E5%AD%98 ) |
@@ -52,10 +52,12 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
52521 . 检查Python环境:Django 1.11需要Python 2.7或Python 3.4以上的版本;Django 2.0需要Python 3.4以上的版本。
5353
5454 ``` Shell
55+
5556 $ python3 --version
5657 ```
5758
5859 ``` Shell
60+
5961 $ python3
6062 >>> import sys
6163 >>> sys.version
@@ -65,13 +67,15 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
65672 . 创建项目文件夹并切换到该目录,例如我们要实例一个OA(办公自动化)项目。
6668
6769 ``` Shell
70+
6871 $ mkdir oa
6972 $ cd oa
7073 ```
7174
72753 . 创建并激活虚拟环境。
7376
7477 ``` Shell
78+
7579 $ python3 -m venv venv
7680 $ source venv/bin/activate
7781 ```
@@ -80,30 +84,35 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
80844 . 更新包管理工具pip。
8185
8286 ``` Shell
87+
8388 (venv)$ python -m pip install --upgrade pip
8489 ```
8590 > 注意:请注意终端提示符发生的变化,前面的` (venv) ` 说明我们已经进入虚拟环境,而虚拟环境下的python和pip已经是Python 3的解释器和包管理工具了。
8691
87925 . 安装Django。
8893
8994 ``` Shell
95+
9096 (venv)$ pip install django
9197 ```
9298
9399 或指定版本号来安装对应的Django的版本。
94100
95101 ``` Shell
102+
96103 (venv)$ pip install django==1.11
97104 ```
98105
991066 . 检查Django的版本。
100107
101108 ``` Shell
109+
102110 (venv)$ python -m django --version
103111 (venv)$ django-admin --version
104112 ```
105113
106114 ``` Shell
115+
107116 (venv)$ python
108117 >>> import django
109118 >>> django.get_version ()
@@ -117,11 +126,12 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
117126 | 1.11 | 2.7、3.4、3.5、3.6 |
118127 | 2.0 | 3.4、3.5、3.6 |
119128
120- > 说明:在创建这篇文章时Django 2.1版本尚未正式发布,因此我们的教程使用了2.0.5版本。
129+ > 说明:在写这篇文章时Django 2.1版本尚未正式发布,因此我们的教程使用了2.0.5版本。
121130
1221317 . 使用` django-admin ` 创建项目,项目命名为oa。
123132
124133 ``` Shell
134+
125135 (venv)$ django-admin startproject oa .
126136 ```
127137
@@ -138,6 +148,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
1381488 . 启动服务器运行项目。
139149
140150 ``` Shell
151+
141152 (venv)$ python manage.py runserver
142153 ```
143154
@@ -157,11 +168,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
1571689 . 接下来我们进入项目目录oa并修改配置文件settings.py,Django是一个支持国际化和本地化的框架,因此刚才我们看到的默认首页也是支持国际化的,我们将默认语言修改为中文,时区设置为东八区。
158169
159170 ``` Shell
171+
160172 (venv)$ cd oa
161173 (venv)$ vim settings.py
162174 ```
163175
164176 ``` Python
177+
165178 # 此处省略上面的内容
166179
167180 # 设置语言代码
@@ -175,6 +188,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
17518810 . 回到manage.py所在的目录,刷新刚才的页面。
176189
177190 ``` Shell
191+
178192 (venv)$ cd ..
179193 (venv)$ python manage.py runserver
180194 ```
@@ -186,6 +200,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
1862001 . 创建名为hrs(人力资源系统)的应用(注:一个项目可以包含多个应用)。
187201
188202 ``` Shell
203+
189204 (venv)$ python manage.py startapp hrs
190205 ```
191206
@@ -202,11 +217,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
2022172 . 进入应用目录修改视图文件views.py。
203218
204219 ``` Shell
220+
205221 (venv)$ cd hrs
206222 (venv)$ vim views.py
207223 ```
208224
209225 ``` Python
226+
210227 from django.http import HttpResponse
211228
212229
@@ -218,11 +235,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
2182353 . 在应用目录创建一个urls.py文件并映射URL。
219236
220237 ``` Shell
238+
221239 (venv)$ touch urls.py
222240 (venv)$ vim urls.py
223241 ```
224242
225243 ``` Python
244+
226245 from django.urls import path
227246
228247 from hrs import views
@@ -236,12 +255,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
2362554 . 切换到项目目录,修改该目录下的urls.py文件,对应用中设定的URL进行合并。
237256
238257 ``` Shell
258+
239259 (venv) $ cd ..
240260 (venv) $ cd oa
241261 (venv) $ vim urls.py
242262 ```
243263
244264 ``` Python
265+
245266 from django.contrib import admin
246267 from django.urls import path, include
247268
@@ -254,6 +275,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
2542755 . 启动项目并访问应用。
255276
256277 ``` Shell
278+
257279 (venv)$ cd ..
258280 (venv)$ python manage.py runserver
259281 ```
@@ -265,11 +287,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
2652876 . 修改views.py生成动态内容。
266288
267289 ``` Shell
290+
268291 (venv)$ cd hrs
269292 (venv)$ vim views.py
270293 ```
271294
272295 ``` Python
296+
273297 from django.http import HttpResponse
274298
275299 from io import StringIO
@@ -308,6 +332,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
3083321 . 先回到manage.py文件所在的目录创建一个templates文件夹。
309333
310334 ``` Shell
335+
311336 (venv)$ cd ..
312337 (venv)$ mkdir templates
313338 (venv)$ cd templates
@@ -316,10 +341,12 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
3163412 . 创建模板页index.html。
317342
318343 ``` Shell
344+
319345 (venv)$ touch index.html
320346 (venv)$ vim index.html
321347 ```
322348 ``` HTML
349+
323350 <!DOCTYPE html>
324351 <html lang =" en" >
325352 <head >
@@ -343,12 +370,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
3433703 . 回到应用目录,修改views.py文件。
344371
345372 ``` Shell
373+
346374 (venv)$ cd ..
347375 (venv)$ cd hrs
348376 (venv)$ vim views.py
349377 ```
350378
351379 ``` Python
380+
352381 from django.shortcuts import render
353382 from random import randrange
354383
@@ -370,12 +399,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
3703994 . 切换到项目目录修改settings.py文件。
371400
372401 ``` Shell
402+
373403 (venv)$ cd ..
374404 (venv)$ cd oa
375405 (venv)$ vim settings.py
376406 ```
377407
378408 ``` Python
409+
379410 # 此处省略上面的内容
380411
381412 TEMPLATES = [
@@ -400,6 +431,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
4004315 . 重新运行项目并查看结果。
401432
402433 ``` Shell
434+
403435 (venv)$ cd ..
404436 (venv)$ python manage.py runserver
405437 ```
0 commit comments