django开发小结

栏目: Python · 发布时间: 5年前

内容简介:repo:最近把《django by example》的项目差不多都撸完了,是时候该写个小结了。个人体会:django的api可以说是很多很全,这辈子都不可能全记住的。

repo: github.com/alphardex/p…

最近把《django by example》的项目差不多都撸完了,是时候该写个小结了。

个人体会:django的api可以说是很多很全,这辈子都不可能全记住的。

其实,懂得速查文档就没有什么大问题。

大量的封装虽然牺牲了一定的灵活性,但大大提高了开发效率,或许这就是django的哲学吧。

准备

首先,你可以用django-admin来生成你的项目。

不过笔者更建议用一个 脚手架 来快速生成一个启动模板。

核心工作流

Django的核心是MVC,更准确来说是MVT(Model-View-Template)

首先创建app,并在settings中的INSTALLED_APPS添加其配置,在全局urls中通过include引入app的所有url

接下来才是最关键的3步:

  1. 在models.py中定义好数据模型并迁移它们
  2. 在views.py中编写视图函数,并在urls.py中为其创建相应的映射
  3. 在templates文件夹中编写要渲染的模板HTML

数据模型的定义其实就是定义各种各样的字段,还有个Meta类可以定义一些元数据(比如字段的 排序 等),此外你也可以为模型封装一些method来简化视图的编写。

视图函数的编写主要涉及以下方面:模型的CRUD、表单的处理、模板的上下文渲染(必须熟悉HTTP)

视图函数分2种:函数和类(即FBV和CBV)。两者各有利弊,根据需求自行权衡。目前来说后者在django中比较流行。

给视图添加额外功能:FBV用装饰器,CBV用Mixin。

模板的编写主要涉及:上下文的渲染、if、for、with语句、过滤器、继承等

后台管理

其实在定义完数据模型后就已经可以从admin开始玩起了(初次进入需要创建一个超级用户)。

把数据模型通通注册上去,以便进行CRUD。

其他杂项

  • 数据模型的Meta元信息(ordering、abstract等)
  • 利用Manager来简化查询
  • 熟悉QuerySet的各种接口和查询方法(比如Q、select_related等)
  • 懂得如何优化查询
  • 利用Library实现自定义标签
  • 创建sitemaps来优化SEO
  • 创建feeds来提供RSS订阅功能
  • 利用Postgresql来实现全文搜索
  • 利用Ajax来优化用户体验
  • 利用contenttypes来追踪models(比如实现用户活动流)
  • 利用signals来反规范化计数
  • 利用 Redis 实现各种功能(缓存、计数、排行榜等)
  • 利用sessions在服务端存储数据(比如购物车)
  • 利用celery实现异步任务(比如邮件发送)
  • 定制admin
  • 数据模型的继承(abstract、multi-table、proxy)
  • 自定义数据模型字段
  • 用Mixin为类视图添加额外功能
  • 用formset处理多张表单
  • 缓存的使用
  • 用drf创建RESTful API
  • 自定义中间件
  • 部署上线

如果对以上内容都了然于胸的话,可以说是掌握django了。

当然,以上的所有内容用flask也都可以实现,只是方式不同罢了:)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

鸟哥的Linux私房菜

鸟哥的Linux私房菜

鸟哥 / 机械工业出版社 / 2008-1 / 88.00元

《鸟哥的Linux私房菜:服务器架设篇(第2版)》是对连续三年蝉联畅销书排行榜前10名的《Linux鸟哥私房菜一服务器架设篇》的升级版,新版本根据目前服务器与网络环境做了大幅度修订与改写。 全书共3部分,第1部分为架站前的进修专区,包括在架设服务器前必须具备的网络基础知识、Linux常用网络命令、Linux网络侦错步骤,以及服务器架站流程:第2部分为主机的简易防火措施,包括限制Linux对......一起来看看 《鸟哥的Linux私房菜》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具