【实战学习(三)】开源项⽬学习之Django框架简介以及启动⽂章⽬录
涉及开源项⽬(dailyfresh-B2C)的部署架构如下:
1)什么是Django?
Django是⽤python开发的⼀个免费开源的Web框架,提供了许多⽹站后台开发常⽤到的模块,使开发者能够专注于业务部分。由于Python语⾔的跨平台性,所以Django同样⽀持Windows、Linux和Mac系统。
Web框架的概念:
它是⼀套组件,提供通⽤的设计模式,能够最⼤程度地降低开发 Web 站点开发的难度。
- ⽬前最流⾏的Python Web框架除了Django以外,还有可以快速建站的Flask和⽀持⾼并发处理的Tornado。
Django的版本发布
功能版:版本号定义为 A.B、A.B+1 等,⼤概每 8 个⽉发布⼀次
补丁版:主要⽤来修复 bug 或者安全问题,版本号为 A.B.C 或者 A.B.C+1
LTS版本(长期⽀持版本):官⽅会长期提供⽀持和安全更新,时长⾄少三年,所以我们建议安装和使⽤ LTS 版本
⼀些 Django 版本会被指定为 LTS,例如 1.11 LTS。值得注意的是,Django 最后⼀个⽀持 Python 2.7 的版本是 1.11 LTS,最新的LTS 版本是 2.2 LTS。
Django框架的特点
相对于 Python 的其他 Web 框架,Django 的功能是最完整的。Django 定义了服务发布、路由映射、模板编程、数据处理的⼀整套功能。这也意味着 Django 模块之间紧密耦合。
主要特点:
完善的⽂档
集成 ORM 组件:
Django 的 Model 层⾃带数据库 ORM 组件,为操作不同类型的数据库提供了统⼀的⽅式。
URL 映射技术:
Django 使⽤正则表达式管理URL映射,因此给开发者带来了极⾼的灵活性。
后台管理系统:
开发者只需通过简单的⼏⾏配置和代码就可以实现完整的后台数据管理Web控制台。
错误信息提⽰:
在开发调试过程中如果出现运⾏异常,Django 可以提供⾮常完整的错误信息帮助开发者定位问题。
2)Django的设计模式,即MTV
1、Web设计模式的经典之作–MVC
在 Web 开发领域还有⼀个⾮常著名的设计模式——MVC,它是 Web 设计模式的经典之作,MTV 模式也是在它的基础上衍⽣⽽来。MVC 是 Model-View-Controller 的缩写:
面试spring加载过程Modle:
代表数据存储层,是对数据表的定义和数据的增删改查。
View:
代表视图层,是系统前端显⽰部分,它负责显⽰什么和如何进⾏显⽰。
Controller:
代表控制层,负责根据从 View 层输⼊的指令来检索 Model 层的数据,并在该层编写代码产⽣结果并输出。
MVC设计模式的请求和响应过程:
1、⽤户通过浏览器向服务器发起request请求,Controller层接受请求后,同时向Model层和View发送指令;
sql注入论文2、Model层根据指令与数据库交互并选择相应业务数据,然后将数据发送给Controller层;
3、View 层接收到 Controller 的指令后,加载⽤户请求的页⾯,并将此页⾯发送给 Controller 层;
网站制作多少4、Controller 层接收到 Model 层和 View 层的数据后,将它们组织成响应格式发送给浏览器,浏览器通过解析后把页⾯展⽰出来。
MVC 的 3 层之间紧密相连,但⼜相互独⽴,每⼀层的修改都不会影响其它层,每⼀层都提供了各⾃独⽴的接⼝供其它层调⽤,MVC 的设计模式降低了代码之间的耦合性(即关联性),增加了模块的可重⽤性,这就是 MVC 的设计模式。
2、MTV设计模式
Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次,也就是 MTV 设计模式:
Model:
数据存储层,处理所有数据相关的业务,和数据库进⾏交互,并提供数据的增删改查。
Template:
模板层(也叫表现层)具体来处理页⾯的显⽰。可以简单地把Template理解成,它是⼀个 HTML 页⾯ ,HTML 页⾯的渲染在视图层完成。
View:
业务逻辑层,处理具体的业务逻辑,它的作⽤是连通Model 层和 Template。
MTV设计模式的请求和响应过程:
1、⽤户通过浏览器对服务器发起 request 请求,服务器接收请求后,通过 View 的业务逻辑层进⾏分析,同时向 Model 层和 Template 层发送指令;
2、Mole 层与数据库进⾏交互,将数据返回给 View 层;
3、Template 层接收到指令后,调⽤相应的模板,并返回给 View 层;
4、View 层接收到模板与数据后,⾸先对模板进⾏渲染(即将相应的数据赋值给模板),然后组织成响应格式返回给浏览器,浏览器进⾏解析后并最终呈现给⽤户。
可以看出,MTV 是 MVC 的⼀种细化,将原来 MVC 中的 V 层拿出来进⾏分离,视图的显⽰与如何显⽰交给 Template 层,⽽ View 层更专注于实现业务逻辑。
其实在 Django 是有 Controller 层的,只不过它由框架本⾝来实现,所以我们不⽤关⼼它。Django 更关注于M、T 和 V。
3)搭建Django开发环境
搭建开发环境不仅是个繁琐的过程,⽽且很容易出错,搭建 Django 开发环境主要分为以下 5 个步骤,将依次展开:安装 Python 解释器
安装 MySQL 数据库
安装 Python 包管理器 pip
安装 Pycharm IDE
安装 Django
1、安装Python解释器
Django 是⼀款完全基于 Python 的 Web 开发框架,所以安装 Python 解释器是⽏庸置疑的。本开源项⽬是以 Django==2.1.7版本为requirements,它⽀持 Python3.5、3.6 以及 3.7。
如果使⽤的是 Linux 或 Mac 操作系统,电脑中已经安装了 Python。因为这两种操作系统的部分功能是使⽤ Python 语⾔实现的,所以在它们出⼚的时候就对 Python 进⾏内置安装,可以使⽤如下命令检查 Python 版本:
he@he-ThinkPad-X200:~$ python --version
Command 'python' not found, did you mean:
command'python3' from deb python3
command'python' from deb python-is-python3
he@he-ThinkPad-X200:~$ python3 --version
Python 3.8.5
Django和Python兼容对照表
Django版本Python版本
1.11
2.7,
3.4, 3.5, 3.6, 3.7 (added in 1.11.17)
google翻译拍照翻译2.0
3.4, 3.5, 3.6, 3.7
2.1, 2.2
3.5, 3.6, 3.7
3.0 3.6, 3.7, 3.8
2、安装MySQL数据库
为了达到数据存储的⽬的,需要对数据库进⾏安装,Django 对关系型数据库有⾮常好的⽀持,虽然它⾃带⼀个轻量级的 SQLite 数据库,但为了切合 Django 的实际应⽤场景,⼀般会选择 MySQL 这样的企业级应⽤数据库。
python在线编辑器python33、安装Python包管理器
pip 包管理器是⼀种⾃动安装、升级、配置和删除包的软件,⽆需⾃⼰动⼿下载、安装和维护软件,除此之外包管理器还帮助解决以下⼏个问题:
包对环境的的依赖问题;
包之间存在冲突的问题;
包的系统路径指定和维护问题。
这些繁琐的⼯作都交给 pip 包管理器去处理。
Python3.4 及以上本版本,均对 pip 做了内置安装,所以在安装 Python 时直接安装 3.7 版本即可,省去不必要的⿇烦。
pip最常⽤的命令:
查看版本:pip --version
安装:pip install包名
升级:pip install -U 包名
卸载:pip uninstall 包名
列出已经安装的包:pip list
4、安装Pycharm IDE
PyCharm 是⼀种 Python IDE,它是⼀个可跨平台的开发⼯具,被认为是最好⽤的 Python IDE 之⼀,它带有⼀整套在使⽤ Python 语⾔开发时提⾼效率的⼯具,⽐如调试、语法⾼亮、Project 管理、代码跳转、智能提⽰、⾃动完成等。此外,该 IDE 对 Django 框架下的专业Web 开发提供了良好的⽀持。
4)启动⼀个开源的Django项⽬
1、准备⼯作
从⽹络上下载好django项⽬后,在本地⽤pycharm导⼊后,并不能运⾏。此时需要添加库和创建数据库。
2、启动项⽬,安装所需的库
2.1 启动项⽬
在 CMD 命令⾏⼯具中,执⾏cd命令进⼊到存放有manage.py 的⽬录下。启动项⽬的命令如下:
python manage.py runserver
runserver ⽅法是调试 Django 时经常⽤到的运⾏⽅式,它使⽤ Django ⾃带的 WSGI Server 运⾏,主要在测试和开发中使⽤。
如果缺少⼀些库,命令⾏会提⽰需要安装XXX库。打开cmd,⽤pip命令安装即可。
⽐如提⽰缺少:ModuleNotFoundError: No module named ‘tinymce’。
则需要安装django-tinymce==2.8.0。
*报错之No module named ‘haystack.backends.whoosh_cn_backend’
原因:python的django框架在2.0版本以上已经不存在whoosh_cn_backend。
解决⽅案:到settings.py,将“haystack.backends.whoosh_cn_backend.” 改为
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论