@@ -33,13 +33,13 @@ HTTP响应(响应行+响应头+空行+消息体):
33
33
34
34
![ ] ( ./res/http-response.png )
35
35
36
- > 说明:这两张图是在2009年9月10日截取的 ,但愿这两张如同泛黄的照片般的截图能帮助你了解HTTP到底是什么样子的。
36
+ > 说明:这两张图是在2009年9月10日凌晨获得的 ,但愿这两张如同泛黄的照片般的截图能帮助你了解HTTP到底是什么样子的。
37
37
38
38
### Django概述
39
39
40
- Python的Web框架有上百个,比它的关键字还要多。所谓Web框架,就是用于开发Web服务器端应用的基础设施(通常指封装好的模块和一系列的工具) 。事实上,即便没有Web框架,我们仍然可以通过socket或[ CGI] ( https://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E7%BD%91%E5%85%B3%E6%8E%A5%E5%8F%A3 ) 来开发Web服务器端应用,但是这样做的成本和代价在实际开发中通常是不能接受的 。通过Web框架,我们可以化繁为简,同时降低创建 、更新、扩展应用程序的工作量。Python的Web框架中比较有名的有:Flask、Django 、Tornado、Sanic、Pyramid、Bottle、Web2py、web.py等。
40
+ Python的Web框架有上百个,比它的关键字还要多。所谓Web框架,就是用于开发Web服务器端应用的基础设施,说得通俗一点就是一系列封装好的模块和工具 。事实上,即便没有Web框架,我们仍然可以通过socket或[ CGI] ( https://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E7%BD%91%E5%85%B3%E6%8E%A5%E5%8F%A3 ) 来开发Web服务器端应用,但是这样做的成本和代价在商业项目中通常是不能接受的 。通过Web框架,我们可以化繁为简,降低创建 、更新、扩展应用程序的工作量。刚才我们说到Python有上百个Web框架,这些框架包括Django、Flask 、Tornado、Sanic、Pyramid、Bottle、Web2py、web.py等。
41
41
42
- 在基于Python的Web框架中,Django是所有重量级选手中最有代表性的一位 ,开发者可以基于Django快速的开发可靠的Web应用程序,因为它减少了Web开发中不必要的开销,对常用的设计和开发模式进行了封装,并对MVC架构提供了支持(MTV)。许多成功的网站和App都是基于Django框架构建的 ,国内比较有代表性的网站包括:知乎、豆瓣网、果壳网、搜狐闪电邮箱、101围棋网、海报时尚网、背书吧、堆糖、手机搜狐网、咕咚、爱福窝、果库等。
42
+ 在上述Python的Web框架中,Django无疑是最有代表性的重量级选手 ,开发者可以基于Django快速的开发可靠的Web应用程序,因为它减少了Web开发中不必要的开销,对常用的设计和开发模式进行了封装,并对MVC架构提供了支持(Django中称之为MTV架构)。许多成功的网站和应用都是基于Django框架构建的 ,国内比较有代表性的网站包括:知乎、豆瓣网、果壳网、搜狐闪电邮箱、101围棋网、海报时尚网、背书吧、堆糖、手机搜狐网、咕咚、爱福窝、果库等。
43
43
44
44
![ ] ( ./res/mvc.png )
45
45
@@ -51,7 +51,7 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
51
51
52
52
1 . 检查Python环境:Django 1.11需要Python 2.7或Python 3.4以上的版本;Django 2.0需要Python 3.4以上的版本;Django 2.1需要Python 3.5以上的版本。
53
53
54
- > 说明:我自己平时使用macOS做开发,macOS和Linux平台使用的命令跟Windows平台有较大的区别,这一点在之前也有过类似的说明, 如果使用Windows平台做开发,替换一下对应的命令即可 。
54
+ > 说明:我自己平时使用macOS和Linux系统做开发,macOS和Linux系统在命令的使用上跟Windows系统还是有一些差别, 如果使用Windows平台做开发,要使用Windows平台对应的命令 。
55
55
56
56
``` Shell
57
57
$ python3 --version
@@ -64,66 +64,37 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
64
64
>>> sys.version_info
65
65
```
66
66
67
- 2 . 创建项目文件夹并切换到该目录,例如我们要实例一个OA(办公自动化)项目 。
67
+ 2 . 更新包管理工具并安装Django管理工具 。
68
68
69
69
``` Shell
70
- $ mkdir oa
71
- $ cd oa
70
+ $ pip3 install -U pip
71
+ $ pip3 install django
72
72
```
73
73
74
- 3 . 创建并激活虚拟环境 。
74
+ 3 . 使用Django管理工具创建Django项目(项目名称为hellodjango) 。
75
75
76
76
``` Shell
77
- $ python3 -m venv venv
78
- $ source venv/bin/activate
77
+ $ django-admin startproject hellodjango
79
78
```
80
79
> 说明:上面使用了Python自带的venv模块完成了虚拟环境的创建,当然也可以使用virtualenv或pipenv这样的工具。要激活虚拟环境,在Windows环境下可以通过"venv/Scripts/activate"执行批处理文件来实现。
81
80
82
- 4 . 更新包管理工具pip 。
81
+ 4 . 进入项目文件夹,创建并激活虚拟环境 。
83
82
84
83
``` Shell
85
- (venv)$ pip install -U pip
86
- ```
87
-
88
- 或
89
-
90
- ``` Shell
91
- (venv)$ python -m pip install -U pip
92
- ```
93
- > 注意:请注意终端提示符发生的变化,前面的` (venv) ` 说明我们已经进入虚拟环境,而虚拟环境下的python和pip已经是Python 3的解释器和包管理工具了。
94
-
95
- 5 . 安装Django。
96
-
97
- ``` Shell
98
- (venv)$ pip install django
99
- ```
100
-
101
- 或指定版本号来安装对应的Django的版本。
102
-
103
- ``` Shell
104
- (venv)$ pip install django==2.1.8
84
+ $ cd hellodjango
85
+ $ python3 -m venv venv
86
+ $ source venv/bin/activate
105
87
```
106
88
107
- 6 . 检查Django的版本。
108
-
109
- ``` Shell
110
- (venv)$ python -m django --version
111
- (venv)$ django-admin --version
112
- ```
89
+ > ** 提示** :上面使用了Python 3自带的` venv ` 模块来创建虚拟环境,当然也可以使用如` virtualenv ` 这样的三方工具来创建虚拟环境;激活虚拟环境后请注意终端中提示符的变化,在虚拟环境下使用Python解释器和包管理工具时,对应的命令是` python ` 和` pip ` ,而不再需要键入` python3 ` 和` pip3 ` 。
113
90
114
- 或
91
+ 5 . 在虚拟环境中安装项目依赖项。
115
92
116
93
``` Shell
117
- (venv)$ python
118
- >>> import django
119
- >>> django.get_version ()
94
+ (venv)$ pip install django mysqlclient django-redis pillow requests
120
95
```
121
- 当然,也可以通过pip来查看安装的依赖库及其版本,如:
122
96
123
- ``` Shell
124
- (venv)$ pip freeze
125
- (venv)$ pip list
126
- ```
97
+ > ** 提示** :使用` pip ` 安装三方库时,可以通过如` django==1.11.27 ` 的方式来指定三方库的版本。
127
98
128
99
下图展示了Django版本和Python版本的对应关系,如果在安装时没有指定版本号,将自动选择最新的版本(在写作这段内容时,Django最新的版本是2.2)。
129
100
@@ -135,47 +106,38 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
135
106
| 2.0 | 3.4、3.5、3.6、3.7 |
136
107
| 2.1、2.2 | 3.5、3.6、3.7 |
137
108
138
- 7 . 使用` django-admin ` 创建项目,项目命名为oa。
139
-
140
- ``` Shell
141
- (venv)$ django-admin startproject oa .
142
- ```
143
-
144
- > 注意:上面的命令最后的那个点,它表示在当前路径下创建项目。
145
-
146
- 执行上面的命令后看看生成的文件和文件夹,它们的作用如下所示:
109
+ 刚才创建的Django项目其文件和文件夹如下所示:
147
110
148
111
- ` manage.py ` : 一个让你可以管理Django项目的工具程序。
149
- - ` oa /__init__.py` :一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
150
- - ` oa /settings.py` :Django项目的配置文件。
151
- - ` oa /urls.py` :Django项目的URL声明(URL映射),就像是你的网站的“目录”。
152
- - ` oa /wsgi.py` :项目运行在WSGI兼容Web服务器上的接口文件。
112
+ - ` hellodjango /__init__.py` :一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
113
+ - ` hellodjango /settings.py` :Django项目的配置文件。
114
+ - ` hellodjango /urls.py` :Django项目的URL声明(URL映射),就像是你的网站的“目录”。
115
+ - ` hellodjango /wsgi.py` :项目运行在WSGI兼容Web服务器上的接口文件。
153
116
154
117
> 说明:WSGI全称是Web服务器网关接口,维基百科上给出的解释是“为Python语言定义的[ Web服务器] ( https://zh.wikipedia.org/wiki/%E7%B6%B2%E9%A0%81%E4%BC%BA%E6%9C%8D%E5%99%A8 ) 和[ Web应用程序] ( https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F ) 或框架之间的一种简单而通用的接口”。
155
118
156
- 8 . 启动服务器运行项目 。
119
+ 6 . 启动Django自带的服务器运行项目 。
157
120
158
121
``` Shell
159
122
(venv)$ python manage.py runserver
160
123
```
161
124
162
125
在浏览器中输入< http://127.0.0.1:8000 > 访问我们的服务器,效果如下图所示。
163
126
164
- ![ ] ( ./res/django-index-1.png )
165
-
166
-
167
- > 说明1:刚刚启动的是Django自带的用于开发和测试的服务器,它是一个用纯Python编写的轻量级Web服务器,但它并不是真正意义上的生产级别的服务器,千万不要将这个服务器用于和生产环境相关的任何地方。
168
-
169
- > 说明2:用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍Python代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
127
+ > ** 说明1** :刚刚启动的是Django自带的用于开发和测试的服务器,它是一个用纯Python编写的轻量级Web服务器,但它并不是真正意义上的生产级别的服务器,千万不要将这个服务器用于和生产环境相关的任何地方。
128
+ >
129
+ > ** 说明2** :用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍Python代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
130
+ >
131
+ > ** 说明3** :可以通过` python manage.py help ` 命令查看可用命令列表;在启动服务器时,也可以通过` python manage.py runserver 1.2.3.4:5678 ` 来指定将服务器运行于哪个IP地址和端口。
132
+ >
133
+ > ** 说明4** :可以通过Ctrl+C来终止服务器的运行。
170
134
171
- > 说明3:可以通过` python manage.py help ` 命令查看可用命令列表;在启动服务器时,也可以通过` python manage.py runserver 1.2.3.4:5678 ` 来指定将服务器运行于哪个IP地址和端口。
172
-
173
- > 说明4:可以通过Ctrl+C来终止服务器的运行。
135
+ ![ ] ( ./res/django-index-1.png )
174
136
175
- 9 . 接下来我们修改项目的配置文件settings .py,Django是一个支持国际化和本地化的框架,因此刚才我们看到的默认首页也是支持国际化的,我们将默认语言修改为中文,时区设置为东八区。
137
+ 7 . 修改项目的配置文件settings .py,Django是一个支持国际化和本地化的框架,因此刚才我们看到的默认首页也是支持国际化的,我们将默认语言修改为中文,时区设置为东八区。
176
138
177
139
``` Shell
178
- (venv)$ vim oa /settings.py
140
+ (venv)$ vim hellodjango /settings.py
179
141
```
180
142
181
143
``` Python
@@ -189,9 +151,10 @@ Django诞生于2003年,它是一个在真正的应用中成长起来的项目
189
151
# 此处省略下面的内容
190
152
```
191
153
192
- 10 . 刷新刚才的页面。
154
+ 刷新刚才的页面,可以看到修改语言代码和时区之后的结果。
155
+
156
+ ![ ] ( ./res/django-index-2.png )
193
157
194
- ![ ] ( ./res/django-index-2.png )
195
158
196
159
#### 动态页面
197
160
0 commit comments