随笔分类 - Django
摘要:因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的、独立的。通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户。对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东、天猫、银行等购物或金融网站,无法识别用户并保持
阅读全文
摘要:我们可以通过manage.py编写和注册自定义的命令。 自定义的管理命令对于独立脚本非常有用,特别是那些使用Linux的crontab服务,或者Windows的调度任务执行的脚本。比如,你有个需求,需要定时清空某篇文章下面的评论,一种解决方案就是写一个django admin命令,再写一个运行该命令
阅读全文
摘要:目录 一、Django内置命令选项 1. check 2. dbshell 3. diffsettings 4. flush 5. makemigrations 6. migrate 7. runserver 8. shell 9. startapp 10. startproject 11. tes
阅读全文
摘要:在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。 下面介绍一下如何在Django中使用MySQL数据库。 一、安装MySQL 不建议在Windows中部署MySQL,建议迁移到Linux上来。 我这里使用的是ubuntu16
阅读全文
摘要:Django的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。 强调:配置的默认值不是在settings.py文件中! 不要以为 中的配置值就是默认值,参考前文。 是使用 命令时,额外给我们创建的。 下面介绍的是61个相对比较
阅读全文
摘要:Django项目的设置文件位于项目同名目录下,名叫 。这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证。 一、简述 文件本质上是一个Python模块,带有模块级别的变量。 下面是一些示例设置: 注:当DEBUG为False时,必须设置 的值。 配置 时: 不允许出现Pyth
阅读全文
摘要:前面五章,已经将Django最主要的五大系统介绍完毕,除了这些主要章节,还有很多比较重要的内容,比如开发流程相关、安全、本地化与国际化、常见工具和一些框架核心功能。这些内容的篇幅都不大,但整合起来也是Django非常重要的篇章。 我们常说Django大而全,就体现在这些方方面面,你需要的它都给你准备
阅读全文
摘要:Django的admindocs应用可以从模型、视图、模板标签等地方获得文档内容。 一、概览 要激活admindocs,请按下面的步骤操作: 在 内添加 在 内添加 。确保它处于 条目之前,原因你懂的。 安装Python的docutils模块(http://docutils.sf.net/)(pip
阅读全文
摘要:通常情况下,admin的工作模式是“选中目标,然后修改目标”,但在同时修改大量目标的时候,这种模式就变得重复、繁琐。 为此,admin提供了自定义功能函数actions的手段,可以批量对数据进行修改。admin内置了一个批量删除对象的操作,如下图所示: 下面以一个新闻应用的文章模型为例,介绍一个批量
阅读全文
摘要:如果只是在admin中简单的展示及管理模型,那么在 模块中使用admin.site.register将模型注册一下就好了: 但是,很多时候这远远不够,我们需要对admin进行各种深度定制,以满足我们的需求。 这就要使用Django为我们提供的ModelAdmin类了。 ModelAdmin类是一个模
阅读全文
摘要:Django奉行Python的内置电池哲学。它自带了一系列在Web开发中用于解决常见问题或需求的额外的、可选工具。这些工具和插件,例如 都必须在settings中的 处进行注册,有的还需要执行manage.py migrate命令,在数据库中创建一些数据表。 Admin站点是Django有别于其它W
阅读全文
摘要:如果你正在构建一个数据库驱动的应用,那么你可能会有与Django的模型紧密映射的表单。比如,你有个BlogComment模型,并且你还想创建一个表单让大家提交评论到这个模型中。在这种情况下,写一个forms.Form类,然后在表单类中定义字段,这种一般创建表单的做法是冗余的,因为你已经在ORM模型m
阅读全文
摘要:不要将Widget与表单的fields字段混淆。表单字段负责验证输入并直接在模板中使用。而Widget负责渲染网页上HTML表单的输入元素和提取提交的原始数据。widget是字段的一个内在属性,用于定义字段在浏览器的页面里以何种HTML元素展现。 一、指定使用的widget 每个字段都有一个默认的w
阅读全文
摘要:Field.clean(value)[source] 虽然表单字段的Field类主要使用在Form类中,但也可以直接实例化它们来使用,以便更好地了解它们是如何工作的。每个Field的实例都有一个clean()方法,它接受一个参数,然后返回“清洁的”数据或者抛出一个 异常: 这个clean方法经常被我
阅读全文
摘要:声明:以下的Form、表单等术语都指的的广义的Django表单。 Form要么是绑定了数据的,要么是未绑定数据的。 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。 表单类原型:
阅读全文
摘要:假设你想从表单接收用户名数据,一般情况下,你需要在HTML中手动编写一个如下的表单元素: /your name/ POST 和一个发送按钮‘submit’,以及最关键的接收用户输入的``元素。具体的更多HTML语言相关内容,请自行学习。 一、编写表单类 我们可以通过Django提供的Form类来自用
阅读全文
摘要:一、HTML表单概述 Django开发的是动态Web服务,而非单纯提供静态页面。动态服务的本质在于和用户进行互动,接收用户的输入,根据输入的不同,返回不同的内容给用户。返回数据是我们服务器后端做的,而接收用户输入就需要靠HTML表单。表单 可以收集其内部标签中的用户输入,然后将数据发送到服务端。 一
阅读全文
摘要:Django虽然为我们内置了二十多种标签和六十多种过滤器,但是需求是各种各样的,总有一款你cover不到。Django为我们提供了自定义的机制,可以通过使用Python代码,自定义标签和过滤器来扩展模板引擎,然后使用{% load %}标签。 一、前置步骤 Django对于自定义标签和过滤器是有前置
阅读全文
摘要:一些Django的‘奇技淫巧’就存在于这些不起眼的地方。 为了提高模板系统对人类的友好性,Django在 中提供了一系列的模板过滤器,有助于为数据展示添加“人文关怀”。 需要把 添加到 设置中来激活这些过滤器。然后在模板中使用 标签,就可以使用下面的过滤器了。 一、 apnumber 对于数字1~9
阅读全文
摘要:国际化标签和过滤器 Django还提供了一些模板标签和过滤器,用以控制模板中国际化的每个方面。它们允许对翻译,格式化和时区转换进行粒度控制。 1. i18n 此标签允许在模板中指定可翻译文本。要启用它,请将 设置为True,然后加载 。 2. l10n 此标签提供对模板的本地化控制,只需要使用 。通
阅读全文