Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。

它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。

这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django (Python Web 框架) 框架介绍

Django 项目是一个Python定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。

Django 框架的核心组件有:用于创建模型的对象关系映射为最终用户设计的完美管理界面一流的 URL 设计设计者友好的模板语言缓存系统。

Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者

架构设计

Django是一个基于MVC构造的框架。

但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。

它们各自的职责如下:层次职责

模型(Model),即数据存取层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

模板(Template),即业务逻辑层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

视图(View),即表现层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

从以上表述可以看出Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。

或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。

至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。

URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。

框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。

只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为我们程序员大都在写控制层的程序。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。

设计哲学

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。

Django基于MVC的设计十分优美:对象

关系映射 (ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。

URL 分派:使用正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活。

模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。

表单处理:你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。

Cache系统:可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。

会话(session),用户登录与权限检查,快速开发用户会话功能。

国际化:内置国际化系统,方便开发出多种语言的网站。

自动化的管理界面:不需要你花大量的工作来创建人员管理和更新内容。

Django自带一个ADMIN site,类似于内容管理系统

工作机制

1.用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py工作机制工作机制

2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。

3.然后按顺序逐个匹配URLConf里的URLpatterns。

如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)4.最后该view函数负责返回一个HttpResponse对象。

部署编辑Django可以运行在Apache,Nginx上,也可以运行在支持WSGI,FastCGI的服务器上。

支持多种数据库,已经支持Postgresql,MySql, Sqlite3,Oracle。

Google App Engine也支持Django的某些部分,国内支持的平台有(SAE)Sina App Engine,(BAE)百度应用引擎。

文档编辑Django1.0 建立了强大完整的文档体系,,涵盖了Django的方方面面,并且适合各种水平的读者和开发者. 其中还包含若干个简单的示例,你可以跟随他们一步步体验Django的优美。截至目前,Django最新版本是2.0.6,1.7系列版本的文档非常的全面,主要由以下几部分组成:First steps,提供一个快速起步的教程,可以很快开始使用DjangoThe model layer,介绍Django的抽象模型层The view layer,介绍Django的视图层The template layer,介绍Django的模板层Forms,介绍Django提供的一系列用于帮助使用表单的工具The development process,介绍Django提供的一系列用于开发和测试的工具The admin,介绍Django提供的用于站点、内容管理的工具Security,介绍Django提供的用于站点安全控制的工具Internationalization and localization,介绍Django提供的用于全球化和本地化的工具Performance and optimization,介绍Django提供的用于性能和优化的方面的工具以及建议Python compatibility,介绍Django在不同Python环境下的兼容性(Jython和Python 3)Geographic framework,介绍Django提供的地理位置相关的工具Common web application tools,介绍Django提供的一些常用的Web应用程序工具(比如RSS等)Other core functionalities,介绍Django提供的其它重要工具(比如跳转、路由等等)The django open source project,介绍Django作为开源项目的一些内容,比如设计哲学,如何参与开发等等。

教程下载:

中谷教育的视频教程

链接: https://pan.baidu.com/s/1rE-01FM-MBc5JF16ehk5uw 提取码: rymg

如遇链接失效,请加交流群,或者微信公众号内留言,站长会第一时间内补充资源

自学网python教程视频-Python爬虫之Django视频教程相关推荐

  1. python教程视频-Python系列视频(一)——Python语言基础

    通过学习,对Python有一定的了解,学习Python语法,可以使用Python原生语言开发项目.对于Python的应用于开发有一个系统的认知,对于未来的发展方向有清晰的认识.主要知识点包括基本语法. ...

  2. python教程视频-Python基础视频教程(600集)【传智播客精品教程】

    Python基础视频教程 初级共600节课 本套视频是传智播客紧抓未来最大趋势--人工智能,应运而生的一套Python入门视频教程,Python是学习人工智能的首选语言,而该视频是专门针对零基础的学员 ...

  3. python免费教程视频-Python视频教程免费下载,最新Python免费教程视频分享!

    1.为期92天的全套Python教程视频免费分享,总计52G! 1-32天 - - 65-92天 百度云网盘: 如果百度云链接过期了的话,可以关注微信公众号"Python联盟",然 ...

  4. python教程视频完整版-Python教程视频完整版

    原标题:Python教程视频完整版 Python是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的.随着人工智能的发展,Python这门语言也 ...

  5. python教程视频 网盘-Python学习路线2019版(课程大纲+视频教程+网盘资源下载)...

    2019最新Python全栈+人工智能学习路线升级版 全面涵盖前端.后端.爬虫.数据挖掘.人工智能等课程(课程大纲+视频教程+网盘资源下载)! 学习路线四大亮点: 1.人工智能三大主流框架全覆盖 2. ...

  6. python初学者教程我要自学网-我要自学网--json 数据解析-python。

    python可以使用json数据模块对json 进行数据解析. json.dump(): 将python数据装换为json数据. json.load(0: 将json数据装换为python数据. py ...

  7. python教程我要自学网-我要自学网--json 数据解析-python。

    python可以使用json数据模块对json 进行数据解析. json.dump(): 将python数据装换为json数据. json.load(0: 将json数据装换为python数据. py ...

  8. python教程视频-有没有适合零基础小白学的python教程,视频或者书籍都可以?

    当你想要自学 python3 编程时,面临的第一个问题是:"我应该看哪些书/教程/视频?"我有一份亲自验证过的极简答案.我刚经过 python3 入门并已开始实战数据分析与爬虫,这 ...

  9. Python学习路线,Python教程,Python入门,Python自学课程,Python学习网站

    这是一篇关于如何成为python开发者学习路线图的非常规咆哮体文章,也是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思 ...

最新文章

  1. 背单词:3年,34150分钟!
  2. Xamarin.Form的Android SDK工具下载安装
  3. leetcode算法题--计算各个位数不同的数字个数
  4. 超全的Go Http路由框架性能比较
  5. lwip 开发 sntp 与 tcp 不能同时工作的奇怪问题
  6. IOS之Label画一条删除线
  7. C语言之字符串探究(五):N系列字符串函数——strncpy、strncat、strncmp
  8. 《FilthyRichClients》读书笔记(一)-SwingのEDT
  9. 如何理解JavaScript中Object.defineProperty【一】
  10. 【java笔记】Iterator迭代器 增强for
  11. ASP.NET错误处理的方式(一)
  12. ai初创企业商业化落地_初创企业需要问的三个关于人工智能的问题
  13. java 64位 32位_32位和64位的java程序可以通用吗
  14. 查看JDK版本和安装路径
  15. 个别计价法、先进先出法、加权平均法、移动加权平均法解读
  16. linux ftp客户端 pasv 227,FTP连接时出现“227 Entering Passive Mode”的解决
  17. 学习单片机的几点经验之谈
  18. [摄影学习]-ZFC进阶操作学习
  19. Vue 微信小程序 uni-app学习系列《三》 实现 英语字典功能
  20. 2023-04-03 Linux中杀死进程kill和killall命令的区别,着重介绍killall

热门文章

  1. 查看服务器上读的是哪个配置文件
  2. 读javascript高级程序设计11-事件
  3. oracle 多行合并成一行
  4. 看完这20部电影相当于学了经济学(投资理财必看电影)
  5. Spring ORM数据訪问——Hibernate
  6. android银行卡匹配、详情展开动画、仿爱奇艺视频拖拽、扫码识别手机号等源码...
  7. adore-ng笔记和Linux普通用户提权
  8. ASP.NET 2.0中的表达式构造器(Expression Builder)
  9. python零基础入门教程视频下载-Python零基础入门学习视频教程全42集,资源教程下载...
  10. 中国最大的python社区-python最大并发