Django3.1教程

阅读: 2340756     评论:132

最新《Vue3从入门到工程化》视频教程:点此查看


版权声明:禁止转载和抄袭本网站的所有博客和教程!博主保留一切权利!


Django新手请先移步《Django2.1新手图文入门教程》,按内容同步做一遍。


Web开发是Python语言应用领域的重要部分,也是工作岗位最多的领域。如果你对基于Python的Web开发有兴趣,正打算使用Python做Web开发,或者已经是一个Web开发者有工作需要,要做自动化运维、数据的图形化展示等,那么学习一门基于Python的Web开发框架是必修课。

Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其近三十年的历史中出现了数十种Web框架,比如Django、Tornado、Flask、Twisted、Bottle和Web.py等,它们有的历史悠久,有的发展迅速,还有的已经停止维护。

Django:诞生于2003年,是Python世界里最负盛名、用户最多、使用范围最广、最成熟的Web框架,最初被用来制作在线新闻的Web站点。Django的各模块之间高效集成,提供了丰富的开发工具,以一站式服务闻名,其文档健全,社区活跃,开发者在遇到问题时能迅速找到解决办法。

Tornado:一个强大的、支持协程、高效并发且可扩展的Web服务器,发布于2009年9月,应用于FriendFeed、Facebook等社交网站。它的强项在于可以利用异步协程机制实现高并发的服务,但在其它方面则有些薄弱。

Flask:诞生于2010年,它吸收了其他框架的一些优点并且把自己的主要领域定义在了微小项目上,以短小精干,简洁明了著称。通常我们在临时需要的时候,会随手写几行代码,使用Flask快速启动一个web网页,做一些验证性的工作。

Twisted:它不像前三者着眼于Web应用开发,而是适用从传输层到自定义应用协议的所有类型的网络程序的开发,并能在不同的操作系统上提供很高的运行效率。


有那么多的Web框架,我们显然没有精力全都学一遍,也不可能全部精通,必然要有所取舍,那么该如何选择呢?有哪些可以参考的选择依据呢?

  • 选择更主流的框架。主流框架的用户多、文档更齐全,技术文献积累更多,社区更繁盛,能得到更好的帮助和支持。
  • 选择更活跃的框架。关注项目的版本迭代速度、在GitHub中的更新频率、Issue和Pull Request的响应情况。如果一个项目长期没有更新,或者有一堆的问题需要解决但是没有得到响应,就不应该是你学习的对象。
  • 选择能够满足需求的框架。没有最好的框架,只有更合适的框架。你所选择的Web框架不仅需要满足当前的需求,还要充分考虑项目发展一段时间后的情况,即适用性和可拓展性,避免盲目选择而导致将来推倒重来的情况。
  • 选择时效性好的框架。在学习和使用框架的时候经常需要查阅和参考各种网络上的文章、博客和教程,但是需要注意它们的发表时间。有些框架的相关文章已经很老,很久没更新了,应该放弃这种框架。有的框架一直以来都有不断的新文章、新博客出现,是比较不错的选择。
  • 选择入门友好的框架。详细的技术文档、官方教程对新手来说都是极大的帮助和鼓励。

根据以上的几条原则推荐大家从Django开始学习基于Python的Web开发!

作为最知名、应用最广泛、功能最全面的Web框架,它能够满足从小型到大型项目的渐进式开发,提供admin后台、用户和权限管理、缓存、数据库迁移等各种功能,包含大量的组件和常用工具。Django在GitHub上非常活跃,版本迭代速度也非常快,网络上的学习和参考文献非常多。

Flask可以比作“DIY组装台式机”,性能优良、快速简单、自定义灵活,但是你得要知道如何搭配模块,如何组装各部件,如何更换模块等等,一旦你某个环节处理得不是那么优秀,就会成为整个项目的痛点。与之不同的是,Django有着完整的工具链,各个模块之间综合集成,配合度好,可以比作“苹果一体机”,你不用管它内部组件是如何搭配,如何安装的,直接开机使用就好了,并且保证安全可靠、性能优异。


想要熟练地使用Django进行工作,开发生产环境可用的,能够应对一定规模访问量的Web应用,开发者要学会的远远不止Django本身。Linux管理、Python基础、环境搭建、前端语言、RESTFul API设计、网站架构、系统管理、服务部署、持续集成、数据库管理、并发处理等等,都是相关的知识领域,包括并且不限于以下的内容:

  • Python语言本身
  • 前端HTML、CSS、Javascript等语言
  • 数据库、缓存、消息队列等技术
  • 日常使用Linux或Mac系统工作(Windows属于标配)
  • 性能优化经验,能快速定位问题

除此之外,还要对业务有深刻理解,能够写出可维护性足够高的代码。当然,以上都是对经验丰富的开发者而言,对于新手刚入门者,我们朝着这个目标努力学习就好。

下面是基于Python的Web开发技术栈:

1

本教程力争在简单、轻松、易入门的基础上,成为一部可以随时查阅的参考文档。本教程尽量使用初学者容易理解的讲述方式,在最短的时间内跨过使用程序设计语言制作网站的门槛,立刻以Django建立自己的特色网站。


 前面没有了.... Django简介 

评论总数: 132


点击登录后方可评论

教程有配套的代码吗,有的话在那个位置可以下载?



大佬,Django4的新特性啥时候出?



求各位大佬解答



我想请问一下,怎么在才能在登录界面中添加单选框进行不同权限用户的登录呢,比如选择是普通用户还是管理员



博主,你好,你这个教程是根据什么写的呢?翻译的官方文档?



写的真不错



urlpatterns = [ re_path(r'(\d)+/admin/', admin.site.urls), ] 请问老师,这样的url django 为什么报错。我该怎么处理



刘老师可以发布drf的相关教程吗



老师,您这个微博登陆接入好流畅,我也尝试着做,但是总报redirect_uri的错,就是微博输入账号密码后回不去成功登陆界面,我也检查过微博里面的回调地址和我回调地址,都是没问题的,不知道什么问题,可以麻烦请教您一下吗



请教下:如何在html中使用模板语法用最简单的方式,类似封装接口一样,可以重复调用。 情景:主要用于多级嵌套树形结构,但是不限制几级,正常情况如果一级级判断再循环写就不太智能



可以尝试自定义模板标签



请假下:如何在html中使用模板语法用最简单的方式,类似封装接口一样,可以重复调用。 情景:主要用于多级嵌套树形结构,但是不限制几级,正常情况如果一级级判断再循环写就不太智能。



博主的博客啥时候更新到3.1了?真好。辛苦了!



博主,你好,新年快乐! 我通宵一个晚上看了你的Django3.1教程,这是目前网络上看到的,最完整最详细的文字教程,但是也发现也个问题,2个实战项目都是基于Django2.2版本,而网站教程是Django3.3版本,能不能发布一个基于Django3的项目实战呢? 支持博主



教程里的2.2版本实战项目可以直接用3.1版本的Django,没有关系。实际上,Django官方最近的版本号迭代有点夸张,并没有太大的区别。对于大多数人,2.0和3.1之间可以无感切换。



您好,博主。请问2版本的教程是已经下了吗?



是的



请问博主大佬可以提供一下网页中实现代码高亮的模板吗



pip install markdown 然后研究一下这个库。还有一个pygments,也可以学学。



谢谢博主



博主,增加一个评论删除功能吧!不小心写错了,都不能删除。



危险也麻烦,暂时不提供。可以留言指定要删除哪条评论,我会帮忙删。



刘哥,为啥主页访问延时比较高,优化一下吧



因为图片加载的原因。找不到比较好的图床。



Tornado和Django,哪个在公司用得多?



当然是Django



请问一下Unknown command: 'makemigrations' Type 'manage.py help' for usage.,这种问题是什么原因?前几天还可以用这个命令,今天就提示这个了,网上百度了,没有找到解决办法?谢谢



信息太少



名字不错



求老刘来个 vue + drf 的项目实战课????????????



Django等着3.0,Vue也等3.0。 无奈啊,要不然刚出的视频,版本就落后了!



心疼老刘半秒



哈哈哈哈



11



222



评论是递归生成吗



2333333



5556666



博主好,我遇到一个问题,你的设备管理系统,如何进行批量化命令执行,也就是筛选在线的设备,类型,数量等,向这些选定的设备发送指令。



一脸懵,我太难了,真没法回答^-^。



刘老师,from . import views ImportError: cannot import name 'views' from '__main__' (C:/Users/xingchengbin/PycharmProjects/untitled1/polls/urls.py) 这是什么情况,一直解决不了



只能粗略判断是导入出了问题。再对比一下代码吧。



博主好,我想问下我们实验室的项目要用1.11,我对着这个2.2版的教程学可以吗?



可以。两者最主要的区别其实就是在url的写法上,其它的细微差别一般碰不到。



我想请教的是您的博客栏目url后面对应是相关英文是怎么url路由的,我采取的是默认的/course/1/这种通过Id形式,您course/django/这个后面对应django是怎么设置的,难道是一个栏目要设计一个URL吗?



我这是为了方便。url的设计,一般要满足REST规范。



刘江老师您好,我是清华大学出版社的编辑,看您在博客上分享了许多Django的知识干货,想问您是否有意向出版图书呢?



邮箱联系吧



博主,你好 我想用Django搭建一个简单的设备管理 web界面,局域网访问,不需要高并发,请问Django合适吗,都需要哪些组件?



没有比这更合适的了,基本不需要别的库,Django足够强大,功能足够丰富。



好教程



UI 确实好看了,就是背景颜色太白了吧



刚开始不习惯,慢慢就好了^-^



以前的背景好像是黑色,还是习惯看黑色的背景啊!



以前是浅灰色



基于Bootstrap4,全新改版UI,希望大家喜欢!



改版了再看,有点不习惯啊,可能看原来的UI习惯了



博主,加下微信好友呀,运维狗一枚



Sorry,不加微信好友的,望理解。



博主好,可以提供下源码吗



你是指的文字教程的源码?这个没法提供,也不需要提供的呀。



博主你好 在你那看的视频 用微博登录的时候出现 错误代码21332,重定向地址不匹配,为什么,微博高级信息里有个回调接口,请问这个需要填吗,要填的话填哪个地址



是21322



根据需要选填



哇好快



博主你好,请问一下,我把你的源代码下载下来了,然后自己运行就报错了。ImportError: No module named 'cmdb.settings' 。请问下这个怎么处理?感谢~



将cmdb下的settings.example.py改名为settings



博主你好,又报了另外一个错误。TypeError: __init__() missing 1 required positional argument: 'on_delete'。请问要如何处理。



从表没有设置on_delete,自己百度都能查出来。没必要问



最近在一点点的深入学习Django框架 还希望博主能再发几个django搭建网站的实例 另外教程的两个实例作为学习使用,如果不搭建虚拟环境的话,会造成什么影响吗



搭建网站,推荐我的视频教程《企业级博客网站》,哈哈。 如果不建立虚拟环境,坏处太多,不需要细说,建立就对了。



统一回复:平时工作和学习也比较忙 ,很多大家的评论、建议和咨询问题我也不一定有时间看和回复。数量也比较多,也无法逐一回复,只能随缘了。我尽量,也恳请大家担待一下,多谢!



博主,能把左边的菜单固定不随右边网页滚动吗?



博主终于把恶心的评论标题给去除了!!赞!



最好的Django中文教程!



提示我说我没有导入这个,但是我已经导入了。。。还是报出这个错误。。。博主知道这是咋回事吗?(捂脸)



from django.shortcuts import HttpResponse from django.http import HttpResponse



博主,这个教程同样适用于diango2.1.5吗?



1.11和2.1.5只是在路由的编写上有较大差别,我已经撰文进行了比较,请参考相关章节。 如果不是将Django最底层的功能和接口用到了极致,对于一般和中度使用者,感觉差别不大。年内我会抽时间将文字教程迁移到最新版本上来,可能是Django2.2,这是一个LTS版。



希望博主可以增加dashboard仪表盘界面增删资源的方法,期待!



是的





忙于无人驾驶相关事宜,更新少了,抱歉。



辛苦



辛苦



什么时候,出点数据分析和机器学习的视频?



已经在日程上



已经出了



真不错的教程,适合初学者按照步骤一步步来,由浅入深,赞!! 抽时间仔细看一下



非常好,满满的干货,我要给你宣传



谢谢了!



啥时候能把django2.0教程给弄出来



Django好找工作吗?



不吹不黑。单靠Django,面还不够宽,但是围绕Python+Django+Linux+数据库的web开发,在中小企业中,甚至一些大企业中还是有点市场的。



很用心的教程,辛苦了



江哥有没有发展这块,我想报第一期,系统的学一学。真心的



可以先看免费的文字版,免费又方便。如果觉得学习效率低,理解困难,可以购买我的视频课程。



debug 一直提示 frames are not available,会是什么原因呢?



江歌,你开视频课,我绝对听



目前为止感觉最棒的Django教程,真的非常感谢博主。



看官方文檔,覺得太雜或看不懂,來這邊看一下就懂了,感謝大大寫出高質量文檔



是的



如何在Django的views中导入另一个不是Django的项目



没有唯一的答案



博主,如果这套教程你编写成书籍并印刷一定会大卖,因为我现在就像把你的教程整理成书打印出来随时翻阅~毕竟相对于电子版的书籍我更喜欢纸质版的啦,嘻嘻



为了方便大家,提高阅读体验,没有广告,没有打赏,就靠一点视频教程维持网站运营,原创不易,所以还请大家多多支持!拜谢!



没有之一



谢谢肯定!



博主可以出Scrapy教程吗?



真不错的教程,适合初学者按照步骤一步步来,由浅入深,赞!!



看到的写的最好的关于django的文章,



感谢博主!本教程完全可以作为学习和工作的参考书。希望博主永久不要下架。



有空多来逛逛,多帮忙宣传宣传,谢谢!



国内很少有如此系统高质量讲解django的教程,钦佩博主布道精神!



最近一直在研究celery但是一直没有进步,跪求博主可以更新一下这方面的文章。



对celery研究不多,实在是羞于写作,不敢拿出来献丑。



良心教程呀,写这么多不容易,把 django 的基础都涵盖了。是否可以在 Django学习小组知乎专栏(5000+关注)推荐一下?好的东西应该让更多的人知道他的存在,可以看到作者非常用心。



感谢支持,请多提宝贵意见,谢谢!



良心良心



感谢博主精彩呈现——wangchunwang.



教程很棒,推荐一下!



希望博主你可以出一些难度比较大一点的教程或者视频~~您觉得咋样



欢迎查询详情



内容很详实,不错,赞一个



博主加油



很好的教学博客。支持支持



请多提宝贵意见!谢谢!





希望django教程没有那么枯燥,多一些自己的东西



加油!博主。



欢迎经常来看看!



如果可以能给个联系方式嘛?我有个问题想咨询下