
Django发布于2005年,是当前Python世界里最负盛名且成熟的网络框架,最初用来制作在线新闻的Web站点。
Django是一个用Python编写的开放源代码的Web应用框架,采用了MVC的框架模式,也有很多人把它称为MVT模式。
优点:
功能完善且要素齐全:自带大量常用的工具和框架,适合快速开发企业级网站;
完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档,开发者遇到问题可以搜索在线文档寻求解决方案;
强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无需学习SQL语言即可对数据库进行 *** 作;
先进的APP设计理念:APP是可插拔的,是不可多得的思想,不需要了可以直接删除,对系统整体影响不大;
自带台管理系统admin:只需要通过简单几行配置和代码就可以实现一个完整的后台数据管理控制平台。
缺点:
大包大揽:对比flask框架来讲,Django不够轻便,包括的功能太多了;
过度封装:很多类和方法都封装了,直接使用比较简单,改动比较困难;
性能劣势:Django性能偏低;
模板问题:Django的模板实现了代码和样式完全分离,不允许模板里出现Python代码,灵活度对某些程序员来说可能不够。
Python编程语言的持续火爆,在最新Tiobe编程语言排行榜中位列第五,热度持续增加,尤其是在 AI 和 大数据时代,Python是 AI 和大数据时代的第一开发语言。这已经是一个不争的事实了,唯一的悬念就是谁能坐上第二把交椅了。Python是胶水语言,应用及其广泛。在web应用领域,国内知名互联公司:有号称文艺青年的圣地--豆瓣评分,曾经主打高端问答知识社区的--知乎,唯有爱和美食不可辜负的--下厨房……
谈到在web应用领域,除了Python的语法,Django是Python后台一个最重要的框架。今天千峰教育的讲师和大家简单的聊一下Django框架。
方法/步骤
问题1:什么是软件框架 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。从某种意义上来说,公司就是一种框架。那么对应到软件设计上来说,软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。 一个公司,它是针对某一市场而成立的,而软件框架的设计,也是针对某一类软件问题而设计的,其目的主要是提高软件开发效率。
问题2:Django的简介和设计思想 Django是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发原则。
问题3:MVC简介 MVC的全拼为Model-View-Controller,最早在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。 现MVC是一种架构设计模式,是一种设计理念。是为了达到分层设计的目的,从而使代码解耦,便于维护和代码的复用。MVC是3个单词的缩写,全称:Model-View-Controller(模型-视图-控制器)。MVC就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。
当前主流的开发语言如Java、PHP、Python中都有MVC框架。 Web MVC各部分的功能 M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查 *** 作。 V全拼为View,用于封装结果,生成页面展示的html内容。 C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果 问题4:Django框架遵循MVC设计,并且有一个专有名词:MVT MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。 V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。 T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。
模块,库,包主要区别在于他们的定义与所指范围不同。
python模块,包含并且有组织的代码片段为模块,samplepy其中文件名smaple为模块名字。
而包是一个有层次的文件目录结构,它定义了由无数个模块或无数个子包组成的python应用程序执行环境。
库的概念是具有相关功能模块的集合。这也是正是Python的一大特色之一,即具有强大的标准库,还有第三方库以及自定义模块。
模块和包是“存储层面”
模块就是一个让你import的文件包就是让你importfrom的地方例如你下载好某个包,然后把这个包解压到某个特定路径,然后就可以fromxxxximportyyyypy了剩下的概念都是“逻辑层面”,是不分语言的类我不想多解释,随便找本编程入门书去看吧库和框架都是用来定义某个包的使用目的的。
框架相当于定了包的用途,在这个用途上你进行二次开发(例如django相当于是一个websrv端),一般最多也就你在main里去调用它的入口或者通过decorator(@)来注册什么东西到框架里库则是相当于一个工具箱,你可以从中拿出任意工具在任意地点使用一个包里可以有库,也可以有框架,也可以两者都有
django可以在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户
本次测试以python 27
其次分别建立相应的App模块:todo,oa,web
如图所示:
在以上的配置中导入了include对配置进行包装
同时导入了index函数,index在todo,oa,web中的views文件分别建立
同时指定了一个打开的默认首页,即web app下的index </pre>
此时运行程序,页面如图所示
如果此时输入的路径为localhost:8000/web/inex,
localhost:8000/oa/inex,
localhost:8000/toto/index将得到不同app的展现,
Django为我们提供了众多的开发指令,大部分繁琐的 *** 作都被Django集成在简洁的命令行提示符中实现。现在打开命令提示符,进入到想要创建
应用的目录后键入django-adminpy startproject
news命令,调用Django的控制台命令新建一个名为news的工程,与此同时Django还在新创建的news文件夹下生成以下四个分工不同的文
件。
1 __init__py
文件__init__py可以向Python编译器表明当前文件夹下的内容是Python工程模块。
2managepy
managepy是Python脚本文件,与Django的命令行工具django-adminpy配合,可以对建立的工程进行管理配置。
3settingspy
这是Django工程的配置文件,与工程相关的工程模块和数据库全局配置信息都在settingspy中设置。
4urlspy
文件urlspy负责配置URL的地址映射以及管理URL的地址格式。
当新的工程建立好之后,假如迫不及待就想知道新建工程的模样,Django已经为你准备好一款轻量级的Web服务器以便在开发过程中随时测试使用。
开发者只需在命令提示符下进入工程目录,键入命令managepy
runserver,就可以启动Web服务器来测试新建立的工程,如果启动没有错误,将可以看到下面这样的提示信息:逗Development
server is running at 地
表示当前工程已经可以通过本机的8000端口访问。通过浏览器打开上述地址Django项目初始页面将会出现在你面前。
如何使用Apache 和mod_wsgi 部署Django¶
用Apache 和 mod_wsgi 部署Django项目是一个第三方的,测试的方法来得到Django生产环境。
mod_wsgi是一个Apache模块,可以托管任何Python WSGI应用程序,包括Django。Django将与支持mod_wsgi的任何版本的Apache一起工作。
官方mod_wsgi文档是太棒了!它是所有关于如何使用mod_wsgi的细节的来源。您可能需要先从安装和配置文档开始。
Basic configuration¶
一旦您安装并激活了mod_wsgi,请编辑Apache服务器的>
安装软件
安装 Python 27、PyCharm、pip(Python包管理工具)、Django ( pip install Django)
部署
PyCharm 新建Django工程
完成后,其目录如下:
子目录MyDjangoProject下表示工程的全局配置,分别为setttingspy、urlspy和wsgipy,其中setttingspy包括了系统的数据库配置、应用配置和其他配置,urlspy则
表示web工程Url映射的配置。
子目录student则是在该工程下创建的app,包含了modelspy、testspy和viewspy等文件
templates目录则为模板文件的目录
managepy是Django提供的一个管理工具,可以同步数据库等等
启动
创建完成后,就可以正常启动了。点击Run 按钮,启动时报错了:
Traceback (most recent call last):
File "D:/workspace/MyDjangoProject/managepy", line 10, in <module>
execute_from_command_line(sysargv)
File "D:\Python27\lib\site-packages\django\core\management\__init__py", line 338, in execute_from_command_line
utilityexecute()
File "D:\Python27\lib\site-packages\django\core\management\__init__py", line 312, in execute
djangosetup()
File "D:\Python27\lib\site-packages\django\__init__py", line 18, in setup
appspopulate(settingsINSTALLED_APPS)
File "D:\Python27\lib\site-packages\django\apps\registrypy", line 89, in populate
"duplicates: %s" % app_configlabel)
djangocoreexceptionsImproperlyConfigured: Application labels aren't unique, duplicates: admin
应该是admin配置冲突了,打开setttingspy文件,发现admin配置重复了
INSTALLED_APPS = (
'djangocontribadmin',
'djangocontribauth',
'djangocontribcontenttypes',
'djangocontribsessions',
'djangocontribmessages',
'djangocontribstaticfiles',
'djangocontribadmin',
'student',
)
注释掉其中一行后(为什么会有这个问题,估计是个bug),重新启动,ok
web工程添加页面
此时,我们尚没有写一行代码,程序就duang跑起来了! 快添加一个Hello World的页面吧。
打开student/viewspy文件,输入以下内容
def sayHello(request):
s = 'Hello World!'
current_time = datetimedatetimenow()
html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)
return >
以上就是关于Python中,django框架模式有什么全部的内容,包括:Python中,django框架模式有什么、好程序员Python技术之五分钟了解Django框架设计、python中的模块、库、包有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)