1
1
## Django 2.x实战(01) - 快速上手
2
2
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端还是移动端。
4
4
5
5
### Web应用机制和术语
6
6
@@ -16,7 +16,7 @@ Web开发的早期阶段,开发者需要手动编写每个页面,例如一
16
16
| ** 域名** | 与Web服务器地址对应的一个易于记忆的字符串名字 |
17
17
| ** DNS** | 域名解析服务,可以将域名转换成对应的IP地址 |
18
18
| ** IP地址** | 网络上的主机的身份标识,通过IP地址可以区分不同的主机 |
19
- | ** HTTP** | 超文本传输协议,应用层协议 ,万维网数据通信的基础 |
19
+ | ** HTTP** | 超文本传输协议,构建在TCP之上的应用级协议 ,万维网数据通信的基础 |
20
20
| ** 反向代理** | 代理客户端向服务器发出请求,然后将服务器返回的资源返回给客户端 |
21
21
| ** Web服务器** | 接受HTTP请求,然后返回HTML文件、纯文本文件、图像等资源给请求者 |
22
22
| ** 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年,它是一个在真正的应用中成长起来的项目
52
52
1 . 检查Python环境:Django 1.11需要Python 2.7或Python 3.4以上的版本;Django 2.0需要Python 3.4以上的版本。
53
53
54
54
``` Shell
55
+
55
56
$ python3 --version
56
57
```
57
58
58
59
``` Shell
60
+
59
61
$ python3
60
62
>>> import sys
61
63
>>> sys.version
@@ -65,13 +67,15 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
65
67
2 . 创建项目文件夹并切换到该目录,例如我们要实例一个OA(办公自动化)项目。
66
68
67
69
``` Shell
70
+
68
71
$ mkdir oa
69
72
$ cd oa
70
73
```
71
74
72
75
3 . 创建并激活虚拟环境。
73
76
74
77
``` Shell
78
+
75
79
$ python3 -m venv venv
76
80
$ source venv/bin/activate
77
81
```
@@ -80,30 +84,35 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
80
84
4 . 更新包管理工具pip。
81
85
82
86
``` Shell
87
+
83
88
(venv)$ python -m pip install --upgrade pip
84
89
```
85
90
> 注意:请注意终端提示符发生的变化,前面的` (venv) ` 说明我们已经进入虚拟环境,而虚拟环境下的python和pip已经是Python 3的解释器和包管理工具了。
86
91
87
92
5 . 安装Django。
88
93
89
94
``` Shell
95
+
90
96
(venv)$ pip install django
91
97
```
92
98
93
99
或指定版本号来安装对应的Django的版本。
94
100
95
101
``` Shell
102
+
96
103
(venv)$ pip install django==1.11
97
104
```
98
105
99
106
6 . 检查Django的版本。
100
107
101
108
``` Shell
109
+
102
110
(venv)$ python -m django --version
103
111
(venv)$ django-admin --version
104
112
```
105
113
106
114
``` Shell
115
+
107
116
(venv)$ python
108
117
>>> import django
109
118
>>> django.get_version ()
@@ -117,11 +126,12 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
117
126
| 1.11 | 2.7、3.4、3.5、3.6 |
118
127
| 2.0 | 3.4、3.5、3.6 |
119
128
120
- > 说明:在创建这篇文章时Django 2.1版本尚未正式发布,因此我们的教程使用了2.0.5版本。
129
+ > 说明:在写这篇文章时Django 2.1版本尚未正式发布,因此我们的教程使用了2.0.5版本。
121
130
122
131
7 . 使用` django-admin ` 创建项目,项目命名为oa。
123
132
124
133
``` Shell
134
+
125
135
(venv)$ django-admin startproject oa .
126
136
```
127
137
@@ -138,6 +148,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
138
148
8 . 启动服务器运行项目。
139
149
140
150
``` Shell
151
+
141
152
(venv)$ python manage.py runserver
142
153
```
143
154
@@ -157,11 +168,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
157
168
9 . 接下来我们进入项目目录oa并修改配置文件settings.py,Django是一个支持国际化和本地化的框架,因此刚才我们看到的默认首页也是支持国际化的,我们将默认语言修改为中文,时区设置为东八区。
158
169
159
170
``` Shell
171
+
160
172
(venv)$ cd oa
161
173
(venv)$ vim settings.py
162
174
```
163
175
164
176
``` Python
177
+
165
178
# 此处省略上面的内容
166
179
167
180
# 设置语言代码
@@ -175,6 +188,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
175
188
10 . 回到manage.py所在的目录,刷新刚才的页面。
176
189
177
190
``` Shell
191
+
178
192
(venv)$ cd ..
179
193
(venv)$ python manage.py runserver
180
194
```
@@ -186,6 +200,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
186
200
1 . 创建名为hrs(人力资源系统)的应用(注:一个项目可以包含多个应用)。
187
201
188
202
``` Shell
203
+
189
204
(venv)$ python manage.py startapp hrs
190
205
```
191
206
@@ -202,11 +217,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
202
217
2 . 进入应用目录修改视图文件views.py。
203
218
204
219
``` Shell
220
+
205
221
(venv)$ cd hrs
206
222
(venv)$ vim views.py
207
223
```
208
224
209
225
``` Python
226
+
210
227
from django.http import HttpResponse
211
228
212
229
@@ -218,11 +235,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
218
235
3 . 在应用目录创建一个urls.py文件并映射URL。
219
236
220
237
``` Shell
238
+
221
239
(venv)$ touch urls.py
222
240
(venv)$ vim urls.py
223
241
```
224
242
225
243
``` Python
244
+
226
245
from django.urls import path
227
246
228
247
from hrs import views
@@ -236,12 +255,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
236
255
4 . 切换到项目目录,修改该目录下的urls.py文件,对应用中设定的URL进行合并。
237
256
238
257
``` Shell
258
+
239
259
(venv) $ cd ..
240
260
(venv) $ cd oa
241
261
(venv) $ vim urls.py
242
262
```
243
263
244
264
``` Python
265
+
245
266
from django.contrib import admin
246
267
from django.urls import path, include
247
268
@@ -254,6 +275,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
254
275
5 . 启动项目并访问应用。
255
276
256
277
``` Shell
278
+
257
279
(venv)$ cd ..
258
280
(venv)$ python manage.py runserver
259
281
```
@@ -265,11 +287,13 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
265
287
6 . 修改views.py生成动态内容。
266
288
267
289
``` Shell
290
+
268
291
(venv)$ cd hrs
269
292
(venv)$ vim views.py
270
293
```
271
294
272
295
``` Python
296
+
273
297
from django.http import HttpResponse
274
298
275
299
from io import StringIO
@@ -308,6 +332,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
308
332
1 . 先回到manage.py文件所在的目录创建一个templates文件夹。
309
333
310
334
``` Shell
335
+
311
336
(venv)$ cd ..
312
337
(venv)$ mkdir templates
313
338
(venv)$ cd templates
@@ -316,10 +341,12 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
316
341
2 . 创建模板页index.html。
317
342
318
343
``` Shell
344
+
319
345
(venv)$ touch index.html
320
346
(venv)$ vim index.html
321
347
```
322
348
``` HTML
349
+
323
350
<!DOCTYPE html>
324
351
<html lang =" en" >
325
352
<head >
@@ -343,12 +370,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
343
370
3 . 回到应用目录,修改views.py文件。
344
371
345
372
``` Shell
373
+
346
374
(venv)$ cd ..
347
375
(venv)$ cd hrs
348
376
(venv)$ vim views.py
349
377
```
350
378
351
379
``` Python
380
+
352
381
from django.shortcuts import render
353
382
from random import randrange
354
383
@@ -370,12 +399,14 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
370
399
4 . 切换到项目目录修改settings.py文件。
371
400
372
401
``` Shell
402
+
373
403
(venv)$ cd ..
374
404
(venv)$ cd oa
375
405
(venv)$ vim settings.py
376
406
```
377
407
378
408
``` Python
409
+
379
410
# 此处省略上面的内容
380
411
381
412
TEMPLATES = [
@@ -400,6 +431,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
400
431
5 . 重新运行项目并查看结果。
401
432
402
433
``` Shell
434
+
403
435
(venv)$ cd ..
404
436
(venv)$ python manage.py runserver
405
437
```
0 commit comments