摘要:
本节将介绍Django模版系统的语法。Django模版语言致力于在性能和简单性上取得平衡。 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版系统并不是简单的将Python嵌入到HTML中。 一、模板 模版是纯文本文件,可以生成任何基于文本的
阅读全文
posted @ 2020-05-06 10:19
哈喽哈喽111111
阅读(537)
推荐(0)
摘要:
每一个Web框架都需要一种很便利的方法用于动态生成HTML页面。 最常见的做法是使用模板。 模板包含所需HTML页面的静态部分,以及一些特殊的模版语法,用于将动态内容插入静态部分。 说白了,模板层就是如何往HTML文件中填入动态内容的系统。 Django可以配置一个或多个模板引擎(语言),也可以不用
阅读全文
posted @ 2020-05-06 10:17
哈喽哈喽111111
阅读(304)
推荐(0)
摘要:
可以通过开源的Python PDF库 来实现PDF文件的动态生成。 一、安装ReportLab ReportLab库在PyPI上提供,可以使用pip来安装: 在Python交互解释器中导入它来测试安装: 如果没有抛出任何错误,证明已安装成功。 二、编写视图 ReportLab的API可以处理于类似于
阅读全文
posted @ 2020-05-06 10:16
哈喽哈喽111111
阅读(522)
推荐(0)
摘要:
CSV (Comma Separated Values),以纯文本形式存储数字和文本数据的存储方式。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。
阅读全文
posted @ 2020-05-06 10:15
哈喽哈喽111111
阅读(330)
推荐(0)
摘要:
Django在处理文件上传时,文件数据被打包封装在request.FILES中。 一、简单上传 首先,写一个form模型,它必须包含一个FileField: 处理这个表单的视图将在 中收到文件数据,可以用 来获取上传文件的具体数据,其中的键值‘file’是根据 的变量名来的。 注意: 只有在请求方法
阅读全文
posted @ 2020-05-06 10:14
哈喽哈喽111111
阅读(305)
推荐(0)
摘要:
类定义:class HttpResponse[source] HttpResponse类定义在django.http模块中。 HttpRequest对象由Django自动创建,而HttpResponse对象则由程序员手动创建. 我们编写的每个视图都要实例化、填充和返回一个HttpResponse对象
阅读全文
posted @ 2020-05-06 10:13
哈喽哈喽111111
阅读(384)
推荐(0)
摘要:
类的原型:class QueryDict[source] 在HttpRequest对象中,GET和POST属性都是一个 的实例。也就是说你可以按本文下面提供的方法操作request.POST和request.GET。 request.POST或request.GET的QueryDict都是不可变,只
阅读全文
posted @ 2020-05-06 10:12
哈喽哈喽111111
阅读(192)
推荐(0)
摘要:
每当一个用户请求发送过来,Django将HTTP数据包中的相关内容,打包成为一个HttpRequest对象,并传递给每个视图函数作为第一位置参数,也就是request,供我们调用。 HttpRequest对象中包含了非常多的重要的信息和数据,应该熟练掌握它。 类定义:class HttpReques
阅读全文
posted @ 2020-05-06 10:11
哈喽哈喽111111
阅读(540)
推荐(0)
摘要:
视图函数,简称视图,本质上是一个简单的Python函数,它接受Web请求并且返回Web响应。 响应的内容可以是HTML网页、重定向、404错误,XML文档或图像等任何东西。但是,无论视图本身是个什么处理逻辑,最好都返回某种响应。 视图函数的代码写在哪里也无所谓,只要它在你的Python目录下面。但是
阅读全文
posted @ 2020-05-06 10:10
哈喽哈喽111111
阅读(358)
推荐(0)
摘要:
一、反向解析URL 在实际的Django项目中,经常需要获取某条URL,为生成的内容配置URL链接。 比如,我要在页面上展示一列文章列表,每个条目都是个超级链接,点击就进入该文章的详细页面。 现在我们的urlconf是这么配置的: 在前端中,这就需要为HTML的 http://www.xxx.com
阅读全文
posted @ 2020-05-06 10:09
哈喽哈喽111111
阅读(279)
推荐(0)
摘要:
一、路由转发 通常,我们会在每个app里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。 例如,下面是Django网站本身的URLconf节选。 它包含许多其它URLconf: 路由转发使用的是include()方法,需要提前导
阅读全文
posted @ 2020-05-06 10:08
哈喽哈喽111111
阅读(272)
推荐(0)
摘要:
路由的编写方式是Django2.0和1.11最大的区别所在。Django官方迫于压力和同行的影响,不得不将原来的正则匹配表达式,改为更加简单的path表达式,但依然通过re_path()方法保持对1.x版本的兼容。 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的UR
阅读全文
posted @ 2020-05-06 10:07
哈喽哈喽111111
阅读(244)
推荐(0)
摘要:
视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面。 它对外接收用户请求,对内调度模型层和模版层,统合数据库和前端,最后根据业务逻辑,将处理好的数据,与前端结合,返回给用户。视图层是真正的后端,是Python工程师的‘主营业务’。 Django的视图层包含下面一些主
阅读全文
posted @ 2020-04-30 17:34
哈喽哈喽111111
阅读(279)
推荐(0)
摘要:
字段查询是指如何指定SQL WHERE子句的内容。它们用作QuerySet的filter(), exclude()和get()方法的关键字参数。 默认查找类型为exact。 下表列出了所有的字段查询参数: | 字段名 | 说明 | | | | | exact | 精确匹配 | | iexact |
阅读全文
posted @ 2020-04-30 17:33
哈喽哈喽111111
阅读(299)
推荐(0)
摘要:
以下的方法不会返回QuerySets,但是作用非常强大,尤其是粗体显示的方法,需要背下来。 | 方法名 | 解释 | | | | | get() | 获取单个对象 | | create() | 创建对象,无需save() | | get_or_create() | 查询对象,如果没有找到就新建对象
阅读全文
posted @ 2020-04-30 17:31
哈喽哈喽111111
阅读(199)
推荐(0)
摘要:
本节将详细介绍查询集的API,它建立在下面的模型基础上,与上一节的模型相同: 一、QuerySet何时被提交 在内部,创建、过滤、切片和传递一个QuerySet不会真实操作数据库,在你对查询集提交之前,不会发生任何实际的数据库操作。 可以使用下列方法对QuerySet提交查询操作: 迭代 Query
阅读全文
posted @ 2020-04-30 17:19
哈喽哈喽111111
阅读(277)
推荐(0)
摘要:
查询操作是Django的ORM框架中最重要的内容之一。我们建立模型、保存数据为的就是在需要的时候可以查询得到数据。Django自动为所有的模型提供了一套完善、方便、高效的API,一些重要的,我们要背下来,一些不常用的,要有印象,使用的时候可以快速查找参考手册。 本节的内容基于如下的一个博客应用模型:
阅读全文
posted @ 2020-04-30 17:17
哈喽哈喽111111
阅读(313)
推荐(0)
摘要:
在我们使用 命令创建新的应用时,Django会自动帮我们建立一个应用的基本文件组织结构,其中就包括一个 文件。通常,我们把当前应用的模型都编写在这个文件里,但是如果你的模型很多,那么将单独的 文件分割成一些独立的文件是个更好的做法。 首先,我们需要在应用中新建一个叫做 的包,再在包下创建一个 文件,
阅读全文
posted @ 2020-04-30 17:16
哈喽哈喽111111
阅读(179)
推荐(0)
摘要:
很多时候,我们都不是从‘一穷二白’开始编写模型的,有时候可以从第三方库中继承,有时候可以从以前的代码中继承,甚至现写一个模型用于被其它模型继承。这样做的好处,我就不赘述了,每个学习Django的人都非常清楚。 类同于Python的类继承,Django也有完善的继承机制。 Django中所有的模型都必
阅读全文
posted @ 2020-04-30 17:15
哈喽哈喽111111
阅读(407)
推荐(0)
摘要:
模型的元数据,指的是“除了字段外的所有内容”,例如排序方式、数据库表名、人类可读的单数或者复数名等等。所有的这些都是非必须的,甚至元数据本身对模型也是非必须的。但是,我要说但是,有些元数据选项能给予你极大的帮助,在实际使用中具有重要的作用,是实际应用的‘必须’。 想在模型中增加元数据,方法很简单,在
阅读全文
posted @ 2020-04-30 17:14
哈喽哈喽111111
阅读(518)
推荐(0)
摘要:
我们都知道对于ManyToMany字段,Django采用的是第三张中间表的方式。通过这第三张表,来关联ManyToMany的双方。下面我们根据一个具体的例子,详细解说中间表的使用。 一、默认中间表 首先,模型是这样的: 在Group模型中,通过members字段,以ManyToMany方式与Pers
阅读全文
posted @ 2020-04-30 17:13
哈喽哈喽111111
阅读(425)
推荐(0)
摘要:
所有的模型字段都可以接收一定数量的参数,比如CharField至少需要一个max_length参数。下面的这些参数是所有字段都可以使用的,并且是可选的。 null 该值为True时,Django在数据库用NULL保存空值。默认值为False。对于保存字符串类型数据的字段,请尽量避免将此参数设为Tru
阅读全文
posted @ 2020-04-30 17:11
哈喽哈喽111111
阅读(360)
推荐(0)
摘要:
除了我们前面说过的普通类型字段,Django还定义了一组关系类型字段,用来表示模型与模型之间的关系。 一、多对一(ForeignKey) 多对一的关系,通常被称为外键。外键字段类的定义如下: 外键需要两个位置参数,一个是关联的模型,另一个是 选项。实际上,在目前版本中, 选项也可以不设置,但Djan
阅读全文
posted @ 2020-04-30 17:04
哈喽哈喽111111
阅读(406)
推荐(0)
摘要:
一个模型(model)就是一个单独的、确定的数据的信息源,包含了数据的字段和操作方法。通常,每个模型映射为一张数据库中的表。 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 每个模型都是django.db.models.Model的子类 模型的每个字段(属性)代表数据表的某
阅读全文
posted @ 2020-04-30 16:03
哈喽哈喽111111
阅读(542)
推荐(0)
摘要:
题外话: Django的教程写到这里,就进入了整体的第二部分,也是最关键的部分。此时有一个问题必须想清楚,那就是,以项目带动内容还是以参考书目的方式展开?为此,我考虑了很久。 我在开始学习Django的时候,也看过许多教程和博客,有的专述某个细节,虽然比较深入,但不够全面;有的比较泛泛但不够深入。有
阅读全文
posted @ 2020-04-30 16:02
哈喽哈喽111111
阅读(276)
推荐(0)
摘要:
Django的admin站点是自动生成的、高度可定制的,它是Django相较其它Web框架独有的内容,广受欢迎。如果你觉得它不够美观,还有第三方美化版xadmin。请一定不要忽略它,相信我, 它值得拥有 ! 一、自定义后台表单 在前面的学习过程中,通过 语句,我们在admin站点中注册了Questi
阅读全文
posted @ 2020-04-30 15:46
哈喽哈喽111111
阅读(577)
推荐(0)
摘要:
前面我们编写了一个经过测试的投票应用,现在让我们给它添加一张样式表和一张背景图片。 除了由服务器生成的HTML文件外,WEB应用一般需要提供一些其它的必要文件,比如图片文件、JavaScript脚本和CSS样式表等等,用来为用户呈现出一个完整的网页。在Django中,我们将这些文件统称为“静态文件”
阅读全文
posted @ 2020-04-30 15:31
哈喽哈喽111111
阅读(301)
推荐(0)
摘要:
一、自动化测试概述 什么是自动化测试 测试是一种例行的、不可缺失的工作,用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节(比如某一个模型的方法是否会返回预期的值?), 一些测试则专注于检查软件的整体运行是否正常(用户在对网站进行了一系列的输入后,是否返回了期望的结果
阅读全文
posted @ 2020-04-30 15:29
哈喽哈喽111111
阅读(178)
推荐(0)
摘要:
一、表单form 为了接收用户的投票选择,我们需要在前端页面显示一个投票界面。让我们重写先前的 文件,代码如下: 简要说明: 上面的模板显示一系列单选按钮,按钮的值是选项的ID,按钮的名字是字符串"choice"。这意味着,当你选择了其中某个按钮,并提交表单,一个包含数据 的POST请求将被发送到指
阅读全文
posted @ 2020-04-30 15:17
哈喽哈喽111111
阅读(307)
推荐(0)
摘要:
一、 新建项目 进入你期望的项目保存目录,运行下面的命令: $ django-admin startproject mysite 这将在目录下生成一个mysite目录,也就是你的这个Django项目的根目录。它包含了一系列自动生成的目录和文件,具备各自专有的用途。 注意:在给项目命名的时候必须避开D
阅读全文
posted @ 2020-04-30 11:11
哈喽哈喽111111
阅读(227)
推荐(0)
摘要:
一、概述 一个视图就是一个页面,通常提供特定的功能,使用特定的模板。例如:在一个博客应用中,你可能会看到下列视图: 博客主页:显示最新发布的一些内容 每篇博客的详细页面:博客的永久链接 基于年的博客页面:显示指定年内的所有博客文章 基于月的博客页面:显示指定月内的所有博客文章 基于天的博客页面:显示
阅读全文
posted @ 2020-04-30 11:08
哈喽哈喽111111
阅读(342)
推荐(0)
摘要:
1.项目的settings.py文件 INSTALLED_APPS中删除或者注释掉,这是针对数据库这一块儿的 2.项目的urls.py文件 删除或这注释掉应用的路径导入 urlpatterns中删除或注释应用的路径,真是针对应用路由的 3.应用的admin.py文件 admin.site.regis
阅读全文
posted @ 2020-04-30 11:03
哈喽哈喽111111
阅读(1004)
推荐(0)
摘要:
汇总操作 注:polls为应用名 1.执行命令: ,生成默认的数据库表等 2.修改应用的models.py文件,添加数据库表模型等 3. 中添加应用 4.执行命令: ,查看sql语句: 0001根据情况而定 5.执行命令: 一、数据库配置 打开 配置文件,这是整个Django项目的设置中心。Djan
阅读全文
posted @ 2020-04-30 10:16
哈喽哈喽111111
阅读(409)
推荐(0)
摘要:
1.安装Django # 自动安装PyPi提供的最新版本 pip install django # 安装指定版本 pip install django==2.2 # 验证安装 >>> import django >>> print(django.get_version()) 2.2 使用pip li
阅读全文
posted @ 2020-04-30 09:16
哈喽哈喽111111
阅读(345)
推荐(0)