12 2018 档案

摘要:模型层model layer 视图层view layer 模版层Template layer Django表单 Admin管理后台 Django 综合篇 阅读全文
posted @ 2018-12-30 19:13 NAVYSUMMER 阅读(151) 评论(0) 推荐(0)
摘要:前面,已经将Django最主要的五大系统介绍完毕,除了这些主要章节,还有很多比较重要的内容,比如开发流程相关、安全、本地化与国际化、常见工具和一些框架核心功能。这些内容的篇幅都不大,但整合起来也是Django非常重要的篇章。 我们常说Django大而全,就体现在这些方方面面,你需要的它都给你准备好了 阅读全文
posted @ 2018-12-30 19:11 NAVYSUMMER 阅读(129) 评论(0) 推荐(0)
摘要:Django奉行Python的内置电池哲学。它自带了一系列在Web开发中用于解决常见问题或需求的额外的、可选工具。这些工具和插件,例如django.contrib.redirects都必须在settings中的INSTALLED_APPS处进行注册,有的还需要执行manage.py migrate命 阅读全文
posted @ 2018-12-30 19:06 NAVYSUMMER 阅读(611) 评论(0) 推荐(0)
摘要:一、HTML表单概述 Django开发的是动态Web服务,而非单纯提供静态页面。动态服务的本质在于和用户进行互动,接收用户的输入,根据输入的不同,返回不同的内容给用户。返回数据是我们服务器后端做的,而接收用户输入就需要靠HTML表单。表单<form>...</form>可以收集其内部标签中的用户输入 阅读全文
posted @ 2018-12-30 19:04 NAVYSUMMER 阅读(154) 评论(0) 推荐(0)
摘要:每一个Web框架都需要一种很便利的方法用于动态生成HTML页面。 最常见的做法是使用模板。 模板包含所需HTML页面的静态部分,以及一些特殊的模版语法,用于将动态内容插入静态部分。 说白了,模板层就是如何往HTML文件中填入动态内容的系统。 Django可以配置一个或多个模板引擎(语言),也可以不用 阅读全文
posted @ 2018-12-30 19:01 NAVYSUMMER 阅读(835) 评论(0) 推荐(0)
摘要:视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面。 它对外接收用户请求,对内调度模型层和模版层,统合数据库和前端,最后根据业务逻辑,将处理好的数据,与前端结合,返回给用户。视图层是真正的后端,是Python工程师的‘主营业务’。 Django的视图层包含下面一些主 阅读全文
posted @ 2018-12-30 18:58 NAVYSUMMER 阅读(242) 评论(0) 推荐(0)
摘要:题外话: Django的教程写到这里,就进入了整体的第二部分,也是最关键的部分。此时有一个问题必须想清楚,那就是,以项目带动内容还是以参考书目的方式展开?为此,我考虑了很久。 我在开始学习Django的时候,也看过许多教程和博客,有的专述某个细节,虽然比较深入,但不够全面;有的比较泛泛但不够深入。有 阅读全文
posted @ 2018-12-30 18:45 NAVYSUMMER 阅读(1265) 评论(0) 推荐(0)
摘要:补充说明:关于项目部署,历来是开发和运维人员的痛点。造成部署困难的主要原因之一是大家的Linux环境不同,这包括发行版、解释器、插件、运行库、配置、版本级别等等太多太多的细节。因此,一个成功的部署案例,往往很难移植到别的环境下,总是要填许多坑。那么,别人的案例就没有参考价值了么?当然不是,部署的过程 阅读全文
posted @ 2018-12-30 18:43 NAVYSUMMER 阅读(224) 评论(0) 推荐(0)
摘要:所谓的国际化,是指使用不同语言的用户在访问同一个网站页面时能够看到符合其自身语言的文本页面。 国际化的基本原理是: 浏览器通过LANGUAGE_CODE在HTTP请求头中告诉网站后台服务器用户所需要的页面语言; 网站服务器在渲染页面时,根据LANGUAGE_CODE查询每个需要翻译成对应语言的文本字 阅读全文
posted @ 2018-12-30 18:42 NAVYSUMMER 阅读(263) 评论(0) 推荐(0)
摘要:Django自带一个用户认证系统,用于处理用户账户、群组、许可和基于cookie的用户会话。 Django的认证系统包含了身份验证和权限管理两部分。简单地说,身份验证用于核实某个用户是否合法,权限管理则是决定一个合法用户具有哪些权限。往后,‘认证’这个词同时代指上面两部分的含义。 Django的认证 阅读全文
posted @ 2018-12-30 18:41 NAVYSUMMER 阅读(433) 评论(0) 推荐(0)
摘要:CSRF(Cross-site request forgery)跨站请求伪造,是一种常见的网络攻击手段,具体内容和含义请大家自行百度。 Django为我们提供了防范CSRF攻击的机制。 一、基本使用 默认情况下,使用django-admin startproject xxx命令创建工程时,CSRF防 阅读全文
posted @ 2018-12-30 18:41 NAVYSUMMER 阅读(240) 评论(0) 推荐(0)
摘要:我们都知道Django建立的是动态网站,正常情况下,每次请求过来都经历了这样一个过程: 接收请求 -> url路由 -> 视图处理 -> 数据库读写 -> 视图处理 -> 模版渲染 -> 返回请求 设想这么个场景,一个用户或者大量用户都对某个页面非常感兴趣,出现了大量实质相同的请求,如果每次请求都采 阅读全文
posted @ 2018-12-30 18:40 NAVYSUMMER 阅读(159) 评论(0) 推荐(0)
摘要:Django使用Python内置的logging模块实现它自己的日志系统。 如果你没有使用过logging模块,请参考Python教程中的相关章节。 直达链接《logging模块详解》。 在Python的logging模块中,主要包含下面四大金刚: Loggers: 记录器 Handlers:处理器 阅读全文
posted @ 2018-12-30 18:39 NAVYSUMMER 阅读(242) 评论(0) 推荐(0)
摘要:在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件。 所有的功能都在django.core.mail中。 一、快速上手 两行就可以搞定一封邮件: from django.core.mail import s 阅读全文
posted @ 2018-12-30 18:38 NAVYSUMMER 阅读(199) 评论(0) 推荐(0)
摘要:Django提供了一个高层次的聚合内容框架,让我们创建RSS/Atom变得简单,你需要做的只是编写一个简单的Python类。 一、范例 要创建一个feed,只需要编写一个Feed类,然后设置一条指向Feed实例的URLconf就可以了,非常简单,下面是一个示例,演示了某站点的最近五条新闻记录: fr 阅读全文
posted @ 2018-12-30 18:37 NAVYSUMMER 阅读(177) 评论(0) 推荐(0)
摘要:分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览。 Django又很贴心的为我们提供了一个Paginator分页工具,但是不幸的是,这个工具功能差了点,不好添加CSS样式,所以前端的展示效果比较丑。如果你能力够,自己编 阅读全文
posted @ 2018-12-30 18:36 NAVYSUMMER 阅读(211) 评论(0) 推荐(0)
摘要:在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户。 对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证的用户。这个消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。 阅读全文
posted @ 2018-12-30 18:35 NAVYSUMMER 阅读(2613) 评论(0) 推荐(0)
摘要:django自带一套信号机制来帮助我们在框架的不同位置之间传递信息。也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(receivers)。 信号系统包含以下三要素: 发送者-信号的发出方 信号-信号本身 接收者-信号的接受 阅读全文
posted @ 2018-12-30 18:34 NAVYSUMMER 阅读(357) 评论(0) 推荐(0)
摘要:Django的序列化工具让你可以将Django的模型‘翻译’成其它格式的数据。通常情况下,这种其它格式的数据是基于文本的,并且用于数据交换\传输过程。 一、序列化数据 Django为我们提供了一个强大的序列化工具serializers。使用它也很简单,如下所示: from django.core i 阅读全文
posted @ 2018-12-30 18:34 NAVYSUMMER 阅读(250) 评论(0) 推荐(0)
摘要:网站地图是根据网站的结构、框架、内容,生成的导航网页,是一个网站所有链接的容器。很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率。网站地图一般存放在域名根目录下并命名为sitemap,比如http: 阅读全文
posted @ 2018-12-30 18:32 NAVYSUMMER 阅读(569) 评论(0) 推荐(0)
摘要:我们可以通过manage.py编写和注册自定义的命令。 自定义的管理命令对于独立脚本非常有用,特别是那些使用Linux的crontab服务,或者Windows的调度任务执行的脚本。比如,你有个需求,需要定时清空某篇文章下面的评论,一种解决方案就是写一个django-admin命令,再写一个运行该命令 阅读全文
posted @ 2018-12-30 18:31 NAVYSUMMER 阅读(147) 评论(0) 推荐(0)
摘要:因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的、独立的。通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户。对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东、天猫、银行等购物或金融网站,无法识别用户并保持 阅读全文
posted @ 2018-12-30 18:31 NAVYSUMMER 阅读(290) 评论(0) 推荐(0)
摘要:目录 一、Django内置命令选项 二、app提供的命令 三、 共有参数 四、颜色控制 五、在代码中调用管理命令 django-admin是用于管理Django的命令行工具集,当我们成功安装Django后,在操作系统中就会有这个命令,但是根据安装方式或者系统环境的不同,你可能需要配置一下调用路径。在 阅读全文
posted @ 2018-12-30 18:30 NAVYSUMMER 阅读(196) 评论(0) 推荐(0)
摘要:在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。 下面介绍一下如何在Django中使用MySQL数据库。 一、安装MySQL 不建议在Windows中部署MySQL,建议迁移到Linux上来。 我这里使用的是ubuntu16 阅读全文
posted @ 2018-12-30 18:29 NAVYSUMMER 阅读(228) 评论(0) 推荐(0)
摘要:Django的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。 强调:配置的默认值不是在settings.py文件中!不要以为settings.py中的配置值就是默认值,参考前文。settings.py是使用django-ad 阅读全文
posted @ 2018-12-30 18:28 NAVYSUMMER 阅读(263) 评论(0) 推荐(0)
摘要:Django项目的设置文件位于项目同名目录下,名叫settings.py。这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证。 一、简述 settings.py文件本质上是一个Python模块,带有模块级别的变量。 下面是一些示例设置: ALLOWED_HOSTS = ['w 阅读全文
posted @ 2018-12-30 18:26 NAVYSUMMER 阅读(217) 评论(0) 推荐(0)
摘要:Django的admindocs应用可以从模型、视图、模板标签等地方获得文档内容。 一、概览 要激活admindocs,请按下面的步骤操作: 在INSTALLED_APPS内添加django.contrib.admindocs 在urlpatterns内添加url(r'^admin/doc/',in 阅读全文
posted @ 2018-12-30 18:25 NAVYSUMMER 阅读(273) 评论(0) 推荐(0)
摘要:通常情况下,admin的工作模式是“选中目标,然后修改目标”,但在同时修改大量目标的时候,这种模式就变得重复、繁琐。 为此,admin提供了自定义功能函数actions的手段,可以批量对数据进行修改。admin内置了一个批量删除对象的操作,如下图所示: 下面以一个新闻应用的文章模型为例,介绍一个批量 阅读全文
posted @ 2018-12-30 18:24 NAVYSUMMER 阅读(949) 评论(0) 推荐(0)
摘要:如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.register将模型注册一下就好了: from django.contrib import admin from myproject.myapp.models import Author admin. 阅读全文
posted @ 2018-12-30 18:23 NAVYSUMMER 阅读(1101) 评论(0) 推荐(0)
摘要:如果你正在构建一个数据库驱动的应用,那么你可能会有与Django的模型紧密映射的表单。比如,你有个BlogComment模型,并且你还想创建一个表单让大家提交评论到这个模型中。在这种情况下,写一个forms.Form类,然后在表单类中定义字段,这种一般创建表单的做法是冗余的,因为你已经在ORM模型m 阅读全文
posted @ 2018-12-30 18:20 NAVYSUMMER 阅读(1598) 评论(0) 推荐(0)
摘要:不要将Widget与表单的fields字段混淆。表单字段负责验证输入并直接在模板中使用。而Widget负责渲染网页上HTML表单的输入元素和提取提交的原始数据。widget是字段的一个内在属性,用于定义字段在浏览器的页面里以何种HTML元素展现。 一、指定使用的widget 每个字段都有一个默认的w 阅读全文
posted @ 2018-12-30 18:19 NAVYSUMMER 阅读(928) 评论(0) 推荐(0)
摘要:Field.clean(value)[source] 虽然表单字段的Field类主要使用在Form类中,但也可以直接实例化它们来使用,以便更好地了解它们是如何工作的。每个Field的实例都有一个clean()方法,它接受一个参数,然后返回“清洁的”数据或者抛出一个django.forms.Valid 阅读全文
posted @ 2018-12-30 18:18 NAVYSUMMER 阅读(955) 评论(0) 推荐(0)
摘要:声明:以下的Form、表单等术语都指的的广义的Django表单。 Form要么是绑定了数据的,要么是未绑定数据的。 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。 表单类原型: 阅读全文
posted @ 2018-12-30 18:17 NAVYSUMMER 阅读(421) 评论(0) 推荐(0)
摘要:假设你想从表单接收用户名数据,一般情况下,你需要在HTML中手动编写一个如下的表单元素: <form action="/your-name/" method="post"> <label for="your_name">Your name: </label> <input id="your_name 阅读全文
posted @ 2018-12-30 18:16 NAVYSUMMER 阅读(260) 评论(0) 推荐(0)
摘要:Django虽然为我们内置了二十多种标签和六十多种过滤器,但是需求是各种各样的,总有一款你cover不到。Django为我们提供了自定义的机制,可以通过使用Python代码,自定义标签和过滤器来扩展模板引擎,然后使用{% load %}标签。 一、前置步骤 Django对于自定义标签和过滤器是有前置 阅读全文
posted @ 2018-12-30 18:15 NAVYSUMMER 阅读(456) 评论(0) 推荐(0)
摘要:一些Django的‘奇技淫巧’就存在于这些不起眼的地方。 为了提高模板系统对人类的友好性,Django在django.contrib.humanize中提供了一系列的模板过滤器,有助于为数据展示添加“人文关怀”。 需要把django.contrib.humanize添加到INSTALLED_APPS 阅读全文
posted @ 2018-12-30 18:14 NAVYSUMMER 阅读(185) 评论(0) 推荐(0)
摘要:国际化标签和过滤器 Django还提供了一些模板标签和过滤器,用以控制模板中国际化的每个方面。它们允许对翻译,格式化和时区转换进行粒度控制。 1. i18n 此标签允许在模板中指定可翻译文本。要启用它,请将USE_I18N设置为True,然后加载{% load i18n %}。 2. l10n 此标 阅读全文
posted @ 2018-12-30 18:12 NAVYSUMMER 阅读(128) 评论(0) 推荐(0)
摘要:Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 为模版过滤器提供参数的方式是:过滤器后加个冒号,再紧跟参数,中间不能有空格! 目前只能为过滤器最多提供一个参数! 1. add 把add后的参数加给value。像这样: {{ value|add:"2" }} 如果value为 阅读全文
posted @ 2018-12-30 18:11 NAVYSUMMER 阅读(413) 评论(0) 推荐(0)
摘要:Django内置标签总览 可以查询下表来总览Django的内置标签: 1. autoescape 控制自动转义是否可用。参数是on或off。 该标签会以一个endautoescape作为结束标签. 例如: {% autoescape on %} {{ body }} {% endautoescape 阅读全文
posted @ 2018-12-30 18:10 NAVYSUMMER 阅读(508) 评论(0) 推荐(0)
摘要:本节将介绍Django模版系统的语法。Django模版语言致力于在性能和简单性上取得平衡。 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版系统并不是简单的将Python嵌入到HTML中。 一、模板 模版是纯文本文件,可以生成任何基于文本的 阅读全文
posted @ 2018-12-30 18:09 NAVYSUMMER 阅读(733) 评论(0) 推荐(0)
摘要:CSV (Comma Separated Values),以纯文本形式存储数字和文本数据的存储方式。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。 阅读全文
posted @ 2018-12-30 18:07 NAVYSUMMER 阅读(850) 评论(0) 推荐(0)
摘要:可以通过开源的Python PDF库ReportLab来实现PDF文件的动态生成。 一、安装ReportLab ReportLab库在PyPI上提供,可以使用pip来安装: $ pip install reportlab 在Python交互解释器中导入它来测试安装: >>> import repor 阅读全文
posted @ 2018-12-30 18:07 NAVYSUMMER 阅读(1610) 评论(0) 推荐(0)
摘要:Django在处理文件上传时,文件数据被打包封装在request.FILES中。 一、简单上传 首先,写一个form模型,它必须包含一个FileField: # forms.py from django import forms class UploadFileForm(forms.Form): t 阅读全文
posted @ 2018-12-30 18:06 NAVYSUMMER 阅读(526) 评论(0) 推荐(0)
摘要:类定义:class HttpResponse[source] HttpResponse类定义在django.http模块中。 HttpRequest对象由Django自动创建,而HttpResponse对象则由程序员手动创建. 我们编写的每个视图都要实例化、填充和返回一个HttpResponse对象 阅读全文
posted @ 2018-12-30 18:05 NAVYSUMMER 阅读(315) 评论(0) 推荐(0)
摘要:类的原型:class QueryDict[source] 在HttpRequest对象中,GET和POST属性都是一个django.http.QueryDict的实例。也就是说你可以按本文下面提供的方法操作request.POST和request.GET。 request.POST或request. 阅读全文
posted @ 2018-12-30 18:04 NAVYSUMMER 阅读(208) 评论(0) 推荐(0)
摘要:每当一个用户请求发送过来,Django将HTTP数据包中的相关内容,打包成为一个HttpRequest对象,并传递给每个视图函数作为第一位置参数,也就是request,供我们调用。 HttpRequest对象中包含了非常多的重要的信息和数据,应该熟练掌握它。 类定义:class HttpReques 阅读全文
posted @ 2018-12-30 18:03 NAVYSUMMER 阅读(241) 评论(0) 推荐(0)
摘要:视图函数,简称视图,本质上是一个简单的Python函数,它接受Web请求并且返回Web响应。 响应的内容可以是HTML网页、重定向、404错误,XML文档或图像等任何东西。但是,无论视图本身是个什么处理逻辑,最好都返回某种响应。 视图函数的代码写在哪里也无所谓,只要它在你的Python目录下面。但是 阅读全文
posted @ 2018-12-30 18:02 NAVYSUMMER 阅读(446) 评论(0) 推荐(0)
摘要:一、反向解析URL 在实际的Django项目中,经常需要获取某条URL,为生成的内容配置URL链接。 比如,我要在页面上展示一列文章列表,每个条目都是个超级链接,点击就进入该文章的详细页面。 现在我们的urlconf是这么配置的:^post/(?P<id>\d+)。 在前端中,这就需要为HTML的< 阅读全文
posted @ 2018-12-30 18:01 NAVYSUMMER 阅读(271) 评论(0) 推荐(0)
摘要:一、路由转发 通常,我们会在每个app里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。 例如,下面是Django网站本身的URLconf节选。 它包含许多其它URLconf: from django.conf.urls imp 阅读全文
posted @ 2018-12-30 18:00 NAVYSUMMER 阅读(797) 评论(0) 推荐(0)
摘要:URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应。 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被处理,也没有返回。通俗地理解,不恰当的形容,URL路由是你的Web服务对外暴露的API。 Djang 阅读全文
posted @ 2018-12-30 17:59 NAVYSUMMER 阅读(167) 评论(0) 推荐(0)
摘要:一、实例 先看一个例子: from django.urls import path from . import views urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:yea 阅读全文
posted @ 2018-12-30 17:58 NAVYSUMMER 阅读(115) 评论(0) 推荐(0)
摘要:以下的方法不会返回QuerySets,但是作用非常强大,尤其是粗体显示的方法,需要背下来。 1. get() get(**kwargs) 返回按照查询参数匹配到的单个对象,参数的格式应该符合Field lookups的要求。 如果匹配到的对象个数不只一个的话,触发MultipleObjectsRet 阅读全文
posted @ 2018-12-30 17:56 NAVYSUMMER 阅读(159) 评论(0) 推荐(0)
摘要:字段查询是指如何指定SQL WHERE子句的内容。它们用作QuerySet的filter(), exclude()和get()方法的关键字参数。 默认查找类型为exact。 下表列出了所有的字段查询参数: 1. exact 精确匹配。 默认的查找类型! Entry.objects.get(id__e 阅读全文
posted @ 2018-12-30 17:56 NAVYSUMMER 阅读(353) 评论(0) 推荐(0)
摘要:本节将详细介绍查询集的API,它建立在下面的模型基础上,与上一节的模型相同: from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models 阅读全文
posted @ 2018-12-30 17:55 NAVYSUMMER 阅读(329) 评论(0) 推荐(0)
摘要:查询操作是Django的ORM框架中最重要的内容之一。我们建立模型、保存数据为的就是在需要的时候可以查询得到数据。Django自动为所有的模型提供了一套完善、方便、高效的API,一些重要的,我们要背下来,一些不常用的,要有印象,使用的时候可以快速查找参考手册。 本节的内容基于如下的一个博客应用模型: 阅读全文
posted @ 2018-12-30 17:52 NAVYSUMMER 阅读(173) 评论(0) 推荐(0)
摘要:在我们使用python manage.py startapp xxx命令创建新的应用时,Django会自动帮我们建立一个应用的基本文件组织结构,其中就包括一个models.py文件。通常,我们把当前应用的模型都编写在这个文件里,但是如果你的模型很多,那么将单独的models.py文件分割成一些独立的 阅读全文
posted @ 2018-12-30 17:51 NAVYSUMMER 阅读(161) 评论(0) 推荐(0)
摘要:很多时候,我们都不是从‘一穷二白’开始编写模型的,有时候可以从第三方库中继承,有时候可以从以前的代码中继承,甚至现写一个模型用于被其它模型继承。这样做的好处,我就不赘述了,每个学习Django的人都非常清楚。 类同于Python的类继承,Django也有完善的继承机制。 Django中所有的模型都必 阅读全文
posted @ 2018-12-30 17:50 NAVYSUMMER 阅读(1509) 评论(0) 推荐(0)
摘要:模型的元数据,指的是“除了字段外的所有内容”,例如排序方式、数据库表名、人类可读的单数或者复数名等等。所有的这些都是非必须的,甚至元数据本身对模型也是非必须的。但是,我要说但是,有些元数据选项能给予你极大的帮助,在实际使用中具有重要的作用,是实际应用的‘必须’。 想在模型中增加元数据,方法很简单,在 阅读全文
posted @ 2018-12-30 17:49 NAVYSUMMER 阅读(166) 评论(0) 推荐(0)
摘要:我们都知道对于ManyToMany字段,Django采用的是第三张中间表的方式。通过这第三张表,来关联ManyToMany的双方。下面我们根据一个具体的例子,详细解说中间表的使用。 一、默认中间表 首先,模型是这样的: class Person(models.Model): name = model 阅读全文
posted @ 2018-12-30 17:48 NAVYSUMMER 阅读(691) 评论(0) 推荐(0)
摘要:所有的模型字段都可以接收一定数量的参数,比如CharField至少需要一个max_length参数。下面的这些参数是所有字段都可以使用的,并且是可选的。 null 该值为True时,Django在数据库用NULL保存空值。默认值为False。对于保存字符串类型数据的字段,请尽量避免将此参数设为Tru 阅读全文
posted @ 2018-12-30 17:47 NAVYSUMMER 阅读(211) 评论(0) 推荐(0)
摘要:一、多对一(ForeignKey) 多对一的关系,通常被称为外键。外键字段类的定义如下: class ForeignKey(to, on_delete, **options)[source] 外键需要两个位置参数,一个是关联的模型,另一个是on_delete选项。实际上,在目前版本中,on_dele 阅读全文
posted @ 2018-12-30 17:46 NAVYSUMMER 阅读(653) 评论(0) 推荐(0)
摘要:一个模型(model)就是一个单独的、确定的数据的信息源,包含了数据的字段和操作方法。通常,每个模型映射为一张数据库中的表。 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 每个模型都是django.db.models.Model的子类 模型的每个字段(属性)代表数据表的某 阅读全文
posted @ 2018-12-30 17:45 NAVYSUMMER 阅读(447) 评论(0) 推荐(0)
摘要:该文档描述了在使用一对多或是多对多关系时,在 manager 中可用的方法。该文档使用下面两个案例: 一个是以 ForeignKey 关联的一对多关系: class Reporter(models.Model): ... class Article(models.Model): reporter = 阅读全文
posted @ 2018-12-30 17:41 NAVYSUMMER 阅读(452) 评论(0) 推荐(0)
摘要:介绍(Introduction) model 参考(model reference) 文档已经介绍了如何使用 Django 的标准字段类;例如 CharField, DateField,等等。对于很多应用来说,这些类足够用了。但是在某些情况下, 你所用的Django 版本不提供你想要的某些功能,或是 阅读全文
posted @ 2018-12-30 17:38 NAVYSUMMER 阅读(351) 评论(0) 推荐(0)
摘要:这部分是在 Django 1.1 中新增的: 请查看版本文档 Django’s database-abstraction API 文档阐述了如何使用 Django 创建,获取,更新和删除某个对象。但有时你仍需要获取汇总值或是对对象集合进行聚合。这一章将阐述如何生成聚合值,以及如何通过 Django 阅读全文
posted @ 2018-12-30 17:36 NAVYSUMMER 阅读(476) 评论(0) 推荐(0)
摘要:如果你使用的数据库支持事务,那么 Django 提供了几种方法来管理数理库事务。 Django 默认的事务行为(Django’s default transaction behavior) Django 默认情况下是运行一个打开的事务,这个事务在 model 中引起了数据变动的内置函式被调用时,就会 阅读全文
posted @ 2018-12-30 17:33 NAVYSUMMER 阅读(280) 评论(0) 推荐(0)
摘要:你可以自由地在自定义的 model 方法和模块级(module-level)方法中使用原始 SQL 语句。 django.db.connection 对象表示当前数据库连接,而 django.db.transaction 表示当前数据库的事务。调用 connection.cursor() 会得到一个 阅读全文
posted @ 2018-12-30 17:30 NAVYSUMMER 阅读(238) 评论(0) 推荐(0)
摘要:Manager 是 Django 提供给 model 的数据操作接口,用来操作数据库查询。Django 应用中的每个 model 至少都有一个 Manager 。 Manager 类的工作方式在 生成查询(Making queries) 中详细介绍;本文档重点介绍自定义 Manager 行为的 mo 阅读全文
posted @ 2018-12-30 17:28 NAVYSUMMER 阅读(150) 评论(0) 推荐(0)
摘要:创建完数据模型data models) 之后, Django 自动为你提供一套数据库抽象层的API,利用它可以完成创建,提取,更新,删除对象的操作。本文介绍如何使用这些API。关于查询时用到的参数,请查阅 数据模型参考 (data model reference) 。 在整个文档以及引用的文档中中, 阅读全文
posted @ 2018-12-30 17:24 NAVYSUMMER 阅读(388) 评论(0) 推荐(0)
摘要:创建对象(Creating objects) 创建 model 的新实例和实例化其他的 Python 类一样: class Model(**kwargs) 其中的关键字参数就是你在你的 model 中定义的字段的名称。要注意实例化一个 model 并不会操作数据库,要保存到数据库的话,你需要使用 s 阅读全文
posted @ 2018-12-30 17:18 NAVYSUMMER 阅读(1385) 评论(0) 推荐(0)
摘要:该文档详细介绍了 QuerySet 的 API。这里面的内容是建立在 model 和 database query 文档的基础上,所以建议您在看该文档之前先读一下这两个文档。 贯穿该文档,我们仍使用database query guide 文档中的 example weblog models 为例: 阅读全文
posted @ 2018-12-30 16:47 NAVYSUMMER 阅读(571) 评论(0) 推荐(0)
摘要:本文介绍 class Meta 内嵌类的所有 元数据选项 (metadata options) 。 Meta 选项(Available Meta options) abstract Options.abstract 为 True, 就表示 model 是 抽象基类 (abstract base cl 阅读全文
posted @ 2018-12-30 16:36 NAVYSUMMER 阅读(245) 评论(0) 推荐(0)
摘要:下列参数对所有字段类型都是有效的,同时这些参数也是可选的。 null Field.null 如果为 True ,Django 就会将空值(empty)存储为数据库中的 NULL 。默认值是 False。 要注意空字符串(empty string)总是被存储为空字符串,而不是 NULL。 null=T 阅读全文
posted @ 2018-12-30 16:28 NAVYSUMMER 阅读(589) 评论(0) 推荐(0)
摘要:AutoField class AutoField(**options) 它是一个根据 ID 自增长的 IntegerField 字段。通常,你不必直接使用该字段。如果你没在别的字段上指定主键,Django 就会自动添加主键字段。 默认情况下,Django 会给每个 model 添加下面这个字段: 阅读全文
posted @ 2018-12-30 16:22 NAVYSUMMER 阅读(138) 评论(0) 推荐(0)
摘要:位于 /usr/include/asm/unistd.h 由于我是64位系统,所以有一些额外的东西。我的这个文件为下文 所以其实是分32位和64位的 32位 #ifndef _ASM_X86_UNISTD_32_H #define _ASM_X86_UNISTD_32_H 1 #define __N 阅读全文
posted @ 2018-12-28 10:51 NAVYSUMMER 阅读(519) 评论(0) 推荐(0)
摘要:代码就是这样的。要做什么呢? 很简单:运行后,命令行提示你输入数字或者是字符,然后回车,把你输入的现实出来。 显然,这个用C语言实现起来简直太简单了。 但是,用汇编实现起来同样很简单。 知识准备 在汇编中使用系统调用,只要是将系统调用号复制到eax寄存器。 可以看到每个系统调用都有一个系统调用号。 阅读全文
posted @ 2018-12-28 10:02 NAVYSUMMER 阅读(680) 评论(0) 推荐(0)
摘要:import xmltodict #json转xml函数 def jsontoxml(jsonstr): #xmltodict库的unparse()json转xml xmlstr = xmltodict.unparse(jsonstr) print(xmlstr) if __name__ == "__main__": json = {'student': {'co... 阅读全文
posted @ 2018-12-04 10:20 NAVYSUMMER 阅读(563) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*- import requests import xmltodict import json def get_response(request_url): r = requests.get(request_url) rt = r.text return rt def xmlstr2jsonstr(xmlstr): x... 阅读全文
posted @ 2018-12-04 10:06 NAVYSUMMER 阅读(542) 评论(0) 推荐(0)

交流群 编程书籍