Django基础连载
文章平均质量分 87
原创Django基础知识和中高级技术连载,每周更新。
大江狗
微信公众号《Python web与django开发》博主,个人博客https://pythondjango.cn
展开
-
Django 3.2智能分页get_elided_page_range方法初尝!
Django3.2版本本月正式发布了, 其中一个重要变化就是新增了智能分页get_elided_page_range方法。Django 3.2之前的Paginator类将连续输出所有页码...原创 2021-04-21 08:00:00 · 1558 阅读 · 7 评论 -
Docker-compose 八步部署Django + Uwsgi + Nginx + MySQL + Redis升级篇
Django在生产环境的部署还是比较复杂的, 令很多新手望而生畏, 幸运的是使用Docker容器化技术可以大大简化我们Django在生产环境的部署并提升我们应用的可移植性。Docker 是...原创 2021-04-19 13:32:55 · 4975 阅读 · 11 评论 -
Django模型查询API大集合, 如何对数据库增删改查看这一篇就够了
Django的对象关系映射系统(Object-Relational Mapper, ORM)提供了丰富的数据查询接口, 让你无需使用原生SQL语句即可通过对模型的简单操作实现对数据库里的数...原创 2021-03-19 11:48:00 · 936 阅读 · 0 评论 -
为什么学Django及Django的未来在哪里?
Django 3.2下月就要正式发布了, 官方扩展支持会延续到2024年。为此我将以此版本为蓝本全面更新数年前发表的Django基础、高级及实战教程。本文是基础系列文章的第一篇,在个人博...原创 2021-03-14 17:26:40 · 7256 阅读 · 15 评论 -
Django中间件案例由浅入深+实战
原作:PAWEŁ FERTYK翻译: 大江狗原文链接:https://pfertyk.me/2020/04/getting-started-with-django-middlewar...翻译 2020-12-14 11:49:07 · 833 阅读 · 0 评论 -
为什么我建议你使用django-extensions
django-extensions给django开发者提供了许多便捷的扩展工具(extensions),在github上高达5000颗星。小编我今天就介绍它包含哪些奥利给的有用扩展以及它...转载 2020-12-15 11:25:02 · 1111 阅读 · 0 评论 -
Django中英混合字符串的截取及表单中限制长度注意事项
中文字符和英文字符所占的字节长度是不一样,一个是2个字节,一个是1个字节,这给我们用英文的web框架开发中文app带来了麻烦。比如Django自带过滤器truncatewords并不支持...原创 2020-02-15 18:18:33 · 1673 阅读 · 1 评论 -
Django的defer和only方法详解
Django ORM自带的defer和only方法虽说不像filter, exclude, order_by这几个方法那么常见,但用起来还是可以优化数据库查询的。今天小编我就带你看看如何使用这两种方法。Defer方法Defer方法的用途是查询数据库时跳过指定的字段,比如下面查询时将跳过每篇Entry的headline和body字段。当你不需要在查询结果中使用headline和body字段时...原创 2019-10-19 16:25:04 · 5669 阅读 · 10 评论 -
Django大咖之路: 如何对付学习Django过程中所遇到的挫败感?
Django作为一个成熟的网站和网络应用开发框架,有着大而全的模块和功能。对于刚从事网站开发或刚熟悉Python语言的新手而言,觉得学习Django好难是一件非常普遍的事情。小编我就以亲身经历告诉你如何对付学习Django过程所遇到的挫败感。一:时刻提醒自己,剩者为王互联网时代是剩者为王的时代。激烈竞争,最后剩下来的都功成名成了英雄。正因如此,才有了今天的美团和滴滴。程序员之间的竞争也是时时存在的...原创 2018-05-04 14:05:20 · 2704 阅读 · 3 评论 -
Django大咖之路: 深入学习Django 2.0核心技术之Models模型设计
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就拼了老命来用千字长文给你来介绍下第一项Django核心基础知识之Model的设计吧。想持续了解后续Django Web开发技术请订阅我的 微信公众号【Python与Django大咖之路】。什么是Model模型?Model ...原创 2018-05-04 14:14:58 · 3833 阅读 · 1 评论 -
Django网站开发是如何遵循软件设计MVC模式的
如果你要开发一个好的网站或网络应用,你就必需了解经典的软件开发所遵循的MVC 设计模式。Django作为最优秀的基于Python语言的网站开发框架,当然也遵循了这种设计模式。小编我就尝试用比较通俗点的语言给你解释下什么是MVC框架以及Django网站开发是如何遵循这种软件开发设计模式的吧。什么是MVC模式? 它有什么优点?MVC即 Model-View-Controller(模型-视图-控制器) ...原创 2018-05-04 14:23:01 · 1280 阅读 · 2 评论 -
Django大咖之路: 网络应用开发为什么我们要学Django?
如果你是Python的粉丝,又对网站与网络应用开发感兴趣,那么学习Django就不是为什么要学的问题,而是要怎么学好的问题了。小编我从事网站开发多年,之前主要是利用PHP+MySQL的黄金组合来进行,最近才改用基于Python的网站开发框架Django来开发网站与网络应用。在这里我就要用自己的亲身经历和感悟来给你分享下为什么要学习Django的五个理由。理由1:Python越来越热,然而它并不完美...原创 2018-05-04 14:26:21 · 1106 阅读 · 1 评论 -
Django大咖之路: 深入理解Django创建对象的create和save方法
Django的模型(Model)的本质是类,并不是一个具体的对象(Object)。当你设计好模型后,你就可以对Model进行实例化从而创建一个一个具体的对象。Django对于创建对象提供了2种不同的save与create方法,我们来仔细分析下这两种方式有什么不同。我们来先看看下面这个例子。我们已经设计好了一个Person的模型(如下)。from django.db import modelscla...原创 2018-05-05 10:26:55 · 15479 阅读 · 3 评论 -
Django 2.0 项目实战: 扩展Django自带User模型,实现用户注册与登录
用户的注册与登陆是一个网站应该具有的基本功能。网上很多Django关于实现用户注册与登录的教程都是用Django 1.X写的,比较老了,所以小编我觉得有必要亲自动手用Django 2.0重写用户注册与登陆教程。另外网上很多教程忽略了Django Auth模块自带的User模型而重新建立了自己用户的模型,小编我一看到这种教程就会投去一脸鄙视的目光。一个网站会什么要有两个User模型? Why? Wh...原创 2018-05-05 16:55:04 · 27463 阅读 · 6 评论 -
Django 1.X和2.0下利用自带分页Paginator类实现分页功能
Django作为Python Web开发框架的一哥,提供了企业级网站开发所需要的几乎所有功能,其中就包括自带分页功能。利用Django自带的Paginator类,我们可以很轻松地实现分页。Django 2.0和1.X最大的不同在于新增了get_page()方法。我们现在来具体看看有什么不同。Django 1.X 和Django 2.0下实现分页利用Django实现分类非常简单,我们只需要修改vie...原创 2018-05-07 10:48:32 · 2152 阅读 · 3 评论 -
Django 2.0 项目实战 (2): 查看与编辑用户个人资料,扩展Django自带后台User Admin
在我们上一篇文章中我们扩展了Django自带的User模型并实现了用户的登录与注册。在本文里,我们将会开发两个功能页面,一个允许用户登录后查看自己的个人信息,一个允许用户编辑个人资料,并在编辑成功后返回个人信息页。同时我们还将会Django的自带的UserAdmin后台进行扩展,实现对用户扩展信息的直接管理和编辑。本文代码用Django 2.0 + Python 3.X编写。第一步 重温model...原创 2018-05-09 10:56:47 · 7369 阅读 · 1 评论 -
Django基础核心技术介绍(2): URL的设计与配置
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就来给你来介绍下第二项Django核心基础知识之URL的设计与配置吧。想持续了解后续Django Web开发技术请订阅我的公众号【Python与Django大咖之路】。Django的URL是如何工作的URL通常与视图(...原创 2018-05-09 10:59:42 · 3051 阅读 · 0 评论 -
Django如何添加富文本编辑器ckeditor?
Django自带的TextField文本编辑器太过简单,就是一张白纸。最近做了个博客,打算添加免费而又功能强大的富文本编辑器ckeditor。这样用户在写博客时就可以在正文里上传图片或直接写html代码了。网上看了些教程,觉得下面这篇文章不错。小编我已在Django 2.0下验证成功,所以推荐给大家。用一句话来说:添加过程非常顺利,效果出奇的好。1.通过PIP安装django-ckeditor1p...转载 2018-05-10 10:40:52 · 3219 阅读 · 1 评论 -
Localhost使用Django send_mail发送邮件 - 以QQ和163邮箱为例
本文适合刚学习Python和Django Web开发的人练手。你会发现使用Django自带的send_mail方法发送电子邮件真是太简单了。本文教你如何在Django localhost环境下通过QQ邮箱或163邮箱发送电子邮件。认识Django send_mail方法使用Django自带的send_mail方法发送邮件非常简单。你先需要import send_mail, 然后按如下方式使用s...原创 2018-05-10 15:50:27 · 4256 阅读 · 0 评论 -
Django 2.0 官方中文文档终于发布啦! 附链接!
对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端。而且Django更新较快,国内很多翻译版本都太滞后了。现在小编我告诉大家一个好消息!!Django 2.0 官方中文文档终于发布啦!这无疑会进一步推动Python Web开发框架一哥Django在国内的普及和应用。为此小编我是真心高兴。如果你在学习Django框架,现在又多了个理由坚持下去...原创 2018-05-11 09:22:32 · 53724 阅读 · 4 评论 -
Django 2.0 项目实战 (3): 用户重置密码与退出登录
在之前两篇文章中我们扩展了Django自带的User模型并实现了用户的登录与注册,并同时实现了查看和编辑用户个人资料的功能。本文是Django实现用户注册登录系列教程的最后一篇,我们将会开发两个功能页面,一个允许用户在登录后重置密码,一个是退出登录。本文代码用Django 2.0 + Python 3.X编写。 第一步 重温models.py和urls.py 模型Models设计是...原创 2018-05-11 10:51:56 · 4446 阅读 · 1 评论 -
Django基础核心技术介绍(3): 视图View的编写及如何使用通用视图(Generic View)
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就来拼个老命给你来介绍下第三项Django核心基础知识之View视图的编写吧, 并详细介绍下如何自定义使用Django自带的通用视图。想持续了解后续Django Web开发技术请订阅我的公众号【Python与Djang...原创 2018-05-14 16:26:34 · 8046 阅读 · 0 评论 -
如何合理地布局Django项目文件夹与文件 - Django入门必读
一个Django项目(Project)通常包含多个应用(App)。项目里除了有Python的.py文件, 设置文件setting.py,还有html模板(base.html和page.html),静态文件 (static files如CSS和js)及媒体文件(media)。当我们有这么多文件和文件夹时,我们整个项目的文件夹和文件应该怎么布局才清晰合理?小编我就带你来看一看如何合理地布局Djang...原创 2018-05-15 16:35:16 · 4278 阅读 · 0 评论 -
如何使用Django通用视图的get_queryset, get_context_data和get_object等方法
Django提供了很多通用的基于类的视图(Class Based View),可以帮我们简化执行以下操作的代码。这些基于类的视图还提供了get_queryset,get_context_data和get_object等方法以便我们更灵活地使用它们。我们今天就来看下我们何时需要使用这些方法以及如何使用。本文出自【Django基础知识(3): 视图View的编写及如何使用通用视图】 展示...原创 2018-05-15 18:51:58 · 25608 阅读 · 7 评论 -
Django项目实战: 图片上传显示与动态定义图片上传路径和文件名
上传图片与显示图片是Web开发中的一个重要环节。本文是个Django实战小项目,教你如何使用Django自带的通用视图(Generic View)实现图片的上传与显示。我们还会教你如何设置上传路径,以及动态地分配图片名。如果你还不懂什么是通用视图,请阅读我们之前发布的千字长文Django核心基础(3): 视图(View)的编写及通用视图。在你开始练习这个项目前,请确保你使用的是Django 2.0...原创 2018-05-16 14:13:04 · 10731 阅读 · 7 评论 -
Django项目实战: Django + PyPDF2实现PDF页面提取和PDF文件输出
在日常工作中我们经常需要从一个大的PDF文档中提取我们所需要的页面,所以今天我们将教你用Django + PyPDF2开发个小Web应用: 用户上传一个PDF文档,输入需要提取的页面号码,点击确定后浏览器会自动给用户返回想提取的PDF页面。如果你要练习这个项目,你首先要确保已安装Django 2.X + Python 3.X。如果你还没有安装PyPDF2,可以通过pip install PyPDF...原创 2018-05-17 15:47:07 · 6389 阅读 · 3 评论 -
Django核心基础(4): 模板(Template)的设计及常用过滤器与标签介绍
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就来拼个老命给你来介绍下第四项Django核心基础知识之模板Template的设计吧, 并重点介绍下Django模板过滤器与标签。想持续了解后续Django Web开发技术请订阅我的公众号【Python与Django大...原创 2018-05-22 11:41:43 · 924 阅读 · 0 评论 -
Django PDF项目实战(2): 利用PyPDF2实现2个PDF文件合并
Django is Python。在我们前一篇教程里,我们用Django + PyPDF2开发了个小Web应用,实现了PDF页面提取。在今天这个项目里,我们将实现2个PDF文件的合并。如果你要练习这个项目,你首先要确保已安装Django 2.X + Python 3.X。如果你还没有安装PyPDF2,可以通过pip install PyPDF2安装好这个第三方Python包。如果你喜欢我们的原创文...原创 2018-05-22 11:43:10 · 1012 阅读 · 0 评论 -
Django实战: 开发网页计数器统计页面浏览次数
实际Web开发过程中,我们经常要统计并显示一个页面的浏览次数。今天我们会以博客的例子,教你如何利用Django开发网页计数器,统计并显示一篇文章的浏览次数。本文的原理可以适用于很多场景,比如统计某一文件的下载次数,统计某一用户在单位时间内的登录次数。本文使用Django 2.0 + Python 3.X实现。第一步 建立APP,设置URL我们创建一个叫demo的项目,并利用python manag...原创 2018-05-29 10:18:20 · 4932 阅读 · 6 评论 -
Django实战: 生成树形动态分类目录
好久不见。小编前段时间出差,偷了个懒,真不好意思。今天我们再来看下个Django实战小案例吧。在日常Web开发过程中对数据(比如新闻和用户)的分类是必不可少的。我们会给他们分配一个类别(Category), 这个类别可能有父类别(Parent Category),有可能还有子类别(Child Category)。今天我们将教你如何利用Django实现生成动态的分类目录,这将对开发三级或联动菜单非常...原创 2018-05-29 10:21:16 · 8254 阅读 · 6 评论 -
如何使用Django模型Models对数据库进行增删改查
Django的抽象模型Models可以直接对数据库进行增删改查,不需要你自己写SQL语言来进行相关数据库操作。今天我们就以博客blog为例,看下Django是如何对数据库进行增删改查的。我们将会用到如下这个简单的Article模型:from django.db import modelsclass Article(models.Model): title = models.CharFiel...原创 2018-05-31 10:35:02 · 12701 阅读 · 1 评论 -
如何理解Django的save(commit=False)方法和save_m2m()方法
什么时候使用save(commit=False)方法,save_m2m方法以及如何使用是Django表单forms进阶必需了解的知识。我们今天就带你来看一看。何时使用save(commit=False)方法Stackoverflow上其实已经有了一段非常精炼的答案。英文原文如下,我把它翻译了一下:That's useful when you get most of your model data ...原创 2018-05-31 10:36:25 · 8210 阅读 · 3 评论 -
Django实战: 利用AJAX技术实现博文实时搜索
学习Python Web和Django开发不能只学习Python。我们有时必需借助其它技术比如AJAX实现我们想要的功能。今天我们就要利用Django 2.0 + AJAX开发一个功能性页面: 我们一边输入关键词,网页一边会给你提示所找到的博文数量。什么是AJAX技术?它的应用场景有哪些?Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和...原创 2018-05-31 10:38:19 · 2963 阅读 · 5 评论 -
Django基础(5): 表单forms的设计与使用
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就来拼个老命给你来介绍下第五项Django核心基础知识之表单forms的设计与使用吧, 并重点介绍下表单的验证。想持续了解后续Django Web开发技术请订阅我的公众号【Python与Django大咖之路】。什么是表...原创 2018-05-31 10:43:48 · 3979 阅读 · 4 评论 -
Django Cache缓存系统介绍及Memcached使用
在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算了。缓存的逻辑:1234567given a URL, try finding that page in the cacheif ...转载 2018-06-01 10:22:09 · 3311 阅读 · 0 评论 -
Django缓存系统选择之Memcached与Redis的区别与性能对比
Django支持使用Memcached和Redis这两种流行的内存型数据库作为缓存系统。我们今天来看Memcached和Redis的区别和性能对比。redis和memcached的区别1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,has...转载 2018-06-01 10:34:27 · 1881 阅读 · 0 评论 -
Django代码分享: 可以重用的Bootstrap 4分页模板
我们之前已经介绍了如何使用Django 2.0的自带Paginator类可以实现分页功能。但有人跟我抱怨该案例生成的分页效果太丑(如下图所示), 希望我能帮助美化一下。今天我就来分享下一个可以重用的Bootstrap 4分页模板吧,你可以直接用到你的Django 分页项目里,迅速美化你的页面。改进后的分页效果如下所示, 是不是好多了?Django Bootstrap 4分页模板代码<link...原创 2018-06-04 15:35:33 · 3166 阅读 · 0 评论 -
Django实战: 利用Ajax生成联动下拉菜单
联动下拉菜单是Web开发中一个被经常使用的应用。比如当你从一个列表从选择一个国家的时候,联动下拉菜单会同步显示属于该国家所有城市列表供用户选择。今天我们就教你如何使用Django+Ajax生成联动下拉菜单。本案例使用Django 2.0 + Python 3.X开发,无需使用第三方安装包。第一步创建APP,修改设置文件创建一个叫dropdown的APP,并把它加到项目设置文件settings.py...原创 2018-06-05 12:10:14 · 5327 阅读 · 1 评论 -
django-allauth教程(2): 用户个人资料UserProfile扩展与编辑
在django-allauth教程(1)我们讲解了django-allauth的安装及基本使用(如用户的注册,登录,邮箱验证和密码重置)。我们也提到了allauth并没有提供展示和修改用户资料的功能,也没有对用户资料进行扩展,今天我们就来补上这块。在本文里,我们将会开发两个功能页面,一个在用户登录后跳转到个人信息页面(/accounts/profile/),一个允许登录用户编辑个人资料/accou...原创 2018-06-11 18:40:16 · 4746 阅读 · 4 评论 -
世界那么大,我想去看看。Django仿制微信朋友圈九宫格相册(1)
前面文章里的Python和Django知识点很重要,但过于零散。我们学习最终的目的还是应用。我们今天就来看下如何利用Django仿制微信朋友圈的九宫格相册。本教程比较长,会分成2部分发布,欢迎持续关注。我们会分享所有代码,并详细解读。读者需要对Python,Django, HTML, CSS和Javascript有一定的了解,否则读起来会比较吃力。项目总体思路对于此项目,我们总体开发思路是这样子的...原创 2018-06-11 18:43:29 · 1316 阅读 · 1 评论