django是什么?
Django 是一个高级的 Python 网络框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,因此你可以专注于编写应用程序,而无需重新开发。它是免费和开源的,有活跃繁荣的社区,丰富的文档,以及很多免费和付费的解决方案。
本次分享为Django的web框架入门篇。
Django的优势
提供开发人员几乎所有想要的"开箱即用"的几乎所有功能。
Django 可以(并已经)用于构建几乎任何类型的网站—从内容管理系统和维基,到社交网络和新闻网站。它可以与任何客户端框架一起工作,并且可以提供几乎任何格式(包括 HTML,Rss源,JSON,XML等)的内容。
Django 可以防范许多漏洞,包括SQL注入,跨站点脚本,跨站点请求伪造和点击劫持。
Django 代码编写是遵照设计原则和模式,鼓励创建可维护和可重复使用的代码。
基于组件的 “无共享” 架构 (架构的每一部分独立于其他架构,因此可以根据需要进行替换或更改). 在不用部分之间有明确的分隔意味着它可以通过在任何级别添加硬件来扩展服务:缓存服务器,数据库服务器或应用程序服务器。
Django 是用Python编写的,它在许多平台上运行。这意味着你不受任务特定的服务器平台的限制,并且可以在许多种类的Linux,Windows和Mac OsX 上运行应用程序。
Django入门篇
一、django与python版本的对应关系
django版本与python版本存在一定的对应关系,若版本不对应,则会存在一定的兼容问题
二、话不多说 lets start django
1、下载django
(附录: 笔者这里由于工作使用的django版本原因选择2.2版本,其与当前最新的4.0版本基础功能并无太大区别=_=)
2、认识第一个命令
3、认识第二个命令
这时候你可以看到在当前目录底下有如下目录结构
4、这个时候执行第三条命令
这时候你可以看到这个页面
是不是很激动 一个web服务就这样运行起来了,让我们数一数,才三条命令,是不是感觉超级简单~不过别放松,麻烦的后面才开始呢~
5、好了,开始学习第四条命令了
这条命令的作用呢 就是在manage.py底下创建一个polls app
这个app的目录结构如图所示
这里就有一些需要解释的概念了, 不过这里我们先卖个关子,先写一小段代码,毕竟 talk is cheap,show me the code。
1、我们先在polls/views.py文件中创建一个函数
2、然后在polls文件夹创建一个urls.py文件夹,这个文件夹写下如下内容
3、最后在mysite的urls.py 中写下如下代码
三、总结
好了,不卖关子了,我们刚刚做了三件事情,第一件事情呢是在views.py中添加了一定量的代码,那么问题来了~有谁知道这个文件的作用是什么呢?
如果大家之前有做过web开发相关的专业,可能很快就会回答这里的view肯定就是mvc架构中v(视图层)啦,你看view的翻译还是视图,我真聪明!
但是其实不是这样的,这里的view其实应该相当于mvc架构中的c(controller)层,即控制层,也就是核心逻辑层,django的架构其实是另一种结构MTV架构,M(model)T(template)V(view),model负责数据结构建模,template则是在之前老的前后端不分离的场景一般用来做模板渲染之后的前端页面,现在的使用则是越来越少了,view则是真正意义上的业务逻辑层。
其实这个架构中还缺少一个非常重要的特性,即是我们刚刚做的第二件与第三件事情,url分发器,第二件事情的作用是把当前view的核心逻辑注册到polls这个app的url分发器上,第三件事情则是将polls这个app的url分发器注册到mysite这个项目的分发器上~是不是有一点点绕呀,我们来看一张图
如图所示,如果我们有polls2 polls3等等等,其他app也可以通过同样的方式把各自的路由分发器注册到mysite上面啦,这样子也就可以简单的就做到请求分发~而且各子app管理自己子app里面的路由关系,也能实现架构上的"低耦合高内聚"~
好~今天就暂时先讲到这里哈,如果还有下期的话~我们再来讲一讲 model层哈 挥挥~
本文分享自 Python数据分析实例 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!