开始Django之旅
写在前面
Django很久之前就学过,但是由于时间远久很多东西已经记不起来了,因此打算从头再学一遍。
关于Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
框架介绍
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性 [1] 。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
-
用于创建模型的对象关系映射;
-
为最终用户设计较好的管理界面;
-
URL 设计;
-
设计者友好的模板语言;
-
缓存系统。
Django(发音:[`dʒæŋɡəʊ])
Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者
架构设计
Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图 [3] 。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
开始Django之旅写在前面Django很久之前就学过,但是由于时间远久很多东西已经记不起来了,因此打算从头再学一遍。
关于DjangoDjango是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 框架介绍Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性 [1] 。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
Django(发音:[`dʒæŋɡəʊ]) Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者 架构设计Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图 [3] 。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
从以上表述可以看出Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。 至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为我们程序员大都在写控制层的程序。这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。
Django安装1.安装anaconda2.安装Django使用pip安装 注意! 在上面我们可以看到LTS版本(长期支持版本),这里我建议使用LTS长期支持版本,在这我使用的是1.11 开始安装(使用anaconda安装) 1.创建一个anaconda环境 conda create -n djangoProject python=3.5 2.激活环境 conda activate djangoProject 3.在环境中安装django pip install django==1.11.9 4.检查是否安装成功 pip freeze 若出现下面内容 则表明安装成功 (djangoProject) ➜ myHexoBlog pip freeze absl-py==0.8.1 astor==0.8.0 autopep8==1.4.4 baidu-aip==2.2.18.0 cachetools==3.1.1 certifi==2019.9.11 chardet==3.0.4 Django==1.11.9 django-admin startproject HelloWorld $ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py python3 manage.py runserver 0.0.0.0:8000 END
若出现下面内容则表示安装成功 接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:
目录说明: 创建完成后我们可以查看下项目的目录结构: 使用 django-admin 来创建 HelloWorld 项目: 创建第一个项目
| |||||||||
---|---|---|---|---|---|---|---|---|---|
从以上表述可以看出Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。
至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为我们程序员大都在写控制层的程序。这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。
Django安装
1.安装anaconda
2.安装Django
使用pip安装
注意!
在上面我们可以看到LTS版本(长期支持版本),这里我建议使用LTS长期支持版本,在这我使用的是1.11
开始安装(使用anaconda安装)
1.创建一个anaconda环境
conda create -n djangoProject python=3.5
2.激活环境
conda activate djangoProject
3.在环境中安装django
pip install django==1.11.9
4.检查是否安装成功
pip freeze
若出现下面内容 则表明安装成功
(djangoProject) ➜ myHexoBlog pip freeze
absl-py==0.8.1
astor==0.8.0
autopep8==1.4.4
baidu-aip==2.2.18.0
cachetools==3.1.1
certifi==2019.9.11
chardet==3.0.4
Django==1.11.9
django-admin startproject HelloWorld
若出现下面内容则表示安装成功
接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:
-
HelloWorld: 项目的容器。
-
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
-
HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
-
HelloWorld/settings.py: 该 Django 项目的设置/配置。
-
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
-
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
目录说明:
创建完成后我们可以查看下项目的目录结构:
使用 django-admin 来创建 HelloWorld 项目:
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
python3 manage.py runserver 0.0.0.0:8000
END