问:当使用面向客户的功能点时,这个生产率有什么方法确定呢?作为第三方评估,能够用基准数据中的生产率来估算大数据平台吗?...答:大数据生产率最好的方式是在企业内部进行历史数据考古;作为第三方评估来讲,北京软件造价评估联盟有历史数据支撑,但对外并没有把大数据作为专门应用类型发布生产率或功能点单价。...以上就是当使用面向客户的功能点时,这个生产率有什么方法确定呢?所有内容.
django从入门到精通No.2----模型 一、前言 学过orm系统自然之道模型的重要性,很多web站点都需要与数据库交互,这个时候模型的设计就显得尤为重要,一个好的模型会使得项目方便管理并且易于维护...models.Model类,然后我们会使用字段来对数据进行记录,django中有很多字段,如下: 字段类 默认小组件 说明 AutoField N/A 根据 ID 自动递增的 IntegerField,...to_field=None # 要关联的表中的字段名称 on_delete=None # 当删除关联表中的数据时,当前表与其关联的行的行为...db_table=None # 默认创建第三张表时,数据库中表的名称 3.一对一 一对一其实就是 一对多 + 唯一索引,当两个类之间有继承关系时,默认会创建一个一对一字段,一对一使用...to_field=None # 要关联的表中的字段名称 on_delete=None # 当删除关联表中的数据时,当前表与其关联的行的行为 五、管理员登陆 为了能让大家提前看到
当模型实例需要强制转换并显示为普通的字符串时,Python 和Django 将使用这个方法。最明显是在交互式控制台或者管理站点显示一个对象的时候。 将将永远想要定义这个方法;默认的方法几乎没有意义。...get_absolute_url() 它告诉Django 如何计算一个对象的URL。Django 在它的管理站点中使用到这个方法,在其它任何需要计算一个对象的URL 时也将用到。...不幸的是,当批量creating 或updating 对象时没有变通方法,因为不会调用save()、pre_save和 post_save。...取而代之的是,当它被用来作为一个其他model的基础类时,它将被加入那一子类中。如果抽象化基础类和它的子类有相同的项,那么将会出现error(并且Django将返回一个exception)。...但在普通的多表继承中,子类不能继承父类的 manager ,这是因为在处理非基类字段时,父类的 manager 未必适用。 后一种情况在 管理器文档有详细介绍。
定义模型类 在模型中定义属性,会生成数据库表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...:当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false 该字段默认对应的表单控件是一个TextInput....模型类的管理器 objects:是Manager类型的对象,用于与数据库进行交互 当定义模型类时没有指定管理器,则Django会为模型类提供一个名为objects的管理器 支持明确指定模型类的管理器...Django的模型进行数据库的查询操作的接口,Django应用的每个模型都拥有至少一个管理器 自定义管理器类主要用于两种情况 向管理器类中添加额外的方法创建管理器对象保存数据到数据库 class TestInfoManager...创建查询集不会带来任何数据库的访问,直到调用数据时,才会访问数据库 何时对查询集求值:迭代,序列化,与if合用 返回查询集的方法,称为过滤器,管理器对象方法有all()、filter()、exclude
它被用在 Django 管理后台和自动生成的表单中。 Django 自带数十种内置的字段类型;详见 model 字段参考(model field reference)。...如果一个字段的 blank=True,Django 的管理后台在做数据验证时,会允许该字段是空值。如果字段的 blank=False,该字段就是必填的。...用法和其他 Field 字段类型一样:在 model 里面做为类属性包含进来。 当某个对象想扩展自另一个对象时,最常用的方式就是在这个对象的主键上添加一对一关系。...当某个对象被要强制转换成字符串,或是要做为字符串显示时,Python 和 Django 就会调用该方法。最典型的,在命令行或管理后台中显示对象,就会用到 unicode() 方法。...Django 在管理后台和任何需要得到对象网址的地方使用该方法。 如果对象有一个唯一的网址,那么你就应该定义这个方法。
数据库和面向对象的对应关系: 数据表 - 类 数据行 - 对象 字段 - 属性 配置MySQL数据库 在 Django 中默认使用的数据库是 SQLite,而在我们这边很多中小企业喜欢用 MySQL,所以使用...在没有定义自己的模型之前,也能执行数据库迁移,这是因为 Django自带了一些默认的应用程序(如认证系统、会话管理、站点管理等),这些应用程序依赖于一些数据库表。...新增数据的方法有几个: save() :保存 create() :新增数据 bulk_create() :批量新增数据 save() 先试试 save() 方法。...更新/修改数据 修改数据的方法同样有3种: save() :修改单条 update() :修改单条数据的多个字段 在修改数据之前,首先我们要明确修改哪条数据。...在日常开发中,“查数据”的工作是最大的。本文只是简单的介绍了 get() 和 filter() 方法。真正查数据的话其实还有很多方法去协助我们的,而且还有很多“且”和“或”的条件判断。
auto_now_add: 当对象第一次被创建时自动设置当前时间 (取值:True/False)。 default: 设置当前时间 (取值:字符串格式时间如: ‘2019-6-1’)。...数据库迁移的错误处理方法 当执行 $ python3 manage.py makemigrations 出现如下迁移错误时的处理方法 错误信息 You are trying to add a non-nullable...: 错误原因 当对模型类新添加一个字段时可出现该错误 原理是 添加新字段后,数据库不知道原来已有数据对于新建字段该如何赋值,所以新增字段时,务必要添加 default 默认值。...CRUD操作) CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete) 管理器对象 每个继承自 models.Model 的模型类,都会有一个...MyModel.objects.create(...) # objects 是管理器对象 创建数据对象 Django 使用一种直观的方式把数据库表中的数据表示成Python 对象 创建数据中每一条记录就是创建一个数据对象
admin组件使用 Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。...urlpatterns = [ url(r'^admin/', admin.site.urls), ] 当这一切都配置好后,Django 管理工具就可以运行了。...为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin from django.db import models # Create your models here....如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资源,尤其是在配置文件内容很多的情况下...#设置哪些字段可以点击进入编辑界面 list_display_links = ('id', 'caption') 2、筛选器 筛选器是Django后台管理重要的功能之一,而且Django
当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。...last_login 用户最后一次登录的时间。 date_joined 账户创建的时间。当账号创建时,默认设置为当前的date/time。...auth模块提供了很多API管理用户信息, 在必要的时候我们可以导入User表进行操作, 比如其它表需要与User建立关联时. from django.contrib.auth.models import...# add group = Group.objects.create(name=group_name) group.save() # del group.delete() 我们可以通过标准的多对多字段操作管理用户与用户组的关系..., 使用用户组管理权限是一个更方便的方法。
Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。...class Meta: order_with_respect_to = 'question' 当order_with_respect_to 设置之后,模型会提供两个用于设置和获取关联对象顺序的方法...例如,假设一个 Question 对象有很多相关联的Answer对象,返回的列表中含有相关联Answer对象的主键: >>> question = Question.objects.get(id=1)...Django 1.7中修改: 当unique_together的约束被违反时,模型校验期间会抛出ValidationError异常。...] 列表中的字段将会建立索引(例如,会在CREATE INDEX语句中被使用)。
查询数据 数据库的查询需要使用管理器对象进行 通过 MyModel.objects 管理器方法调用查询接口 方法 说明 all() 查询全部记录,返回QuerySet查询对象 get() 查询符合条件的单一记录...='机械工业出版社')) 原生的数据库操作方法 使用MyModel.objects.raw()进行 数据库查询操作查询 在django中,可以使用模型管理器的raw方法来执行select语句进行数据查询...说明: 后台管理器类须继承自 django.contrib.admin 里的 ModelAdmin 类 模型管理器的使用方法: 在 /admin.py 里定义模型管理器类 class XXXXManager...', wife.author.name) 反向查询 通过反向关联属性查询 反向关联属性为实例对象.引用类名(小写),如作家的反向引用为作家对象.wife 当反向引用不存在时,则会触发异常 # 通过 author.wife...如:一个学校有多个班级,一个班级有多个学生, 一本图书只能属于一个出版社,一个出版社允许出版多本图书 1.语法 当一个 A 类对象可以关联多个 B 类对象时 class A(model.Model)
当其用作其它模型类的基类时,它的字段会自动添加至子类。...从抽象基类继承来的字段可被其它字段或值重写,或用 None 删除。 对很多用户来说,这种继承可能就是你想要的。它提供了一种在 Python 级抽出公共信息的方法,但仍会在子类模型中创建数据表。...,为代理添加新管理器,你可以使用文档 自定义管理器 中介绍的技巧:创建一个包含新管理器的基类,在继承列表中,主类后追加这个基类: # Create an abstract class for the new...在 Django 中,模型字段通常不允许这样做。如果一个非抽象模型基类有一个名为 author 的字段,你就不能在继承自该基类的任何类中,创建另一个名为 author 的模型字段或属性。...在一个包中管理模型¶ manage.py startapp 命令创建了一个应用结构,包含一个 models.py 文件。若你有很多 models.py 文件,用独立的文件管理它们会很实用。
《django入门:环境及项目搭建》 《django入门:数据模型》 《django入门:视图及模版》 《django入门:Admin管理系统及表单》 《django入门:通用视图类重构视图》 《用django...的字段很多时候不能够满足我们的需求,可能我们需要在 user 中加入商城积分等字段,这就需要通过扩展的 user model 字段来实现。...目前扩展 user 字段我找到的有 4 种方式。 1....user 很多字段都不符合项目的需要,基本上需要完全替换,那目前提到的两种方法都不适合,需要通过第三种方法来替换 3....为自定义的 User Model 通过 2 , 3 方法扩展 User Model 后,当别的表和 User 表有链表结构的时候,最好通过 settings.AUTH_USER_MODEL 进行导入,
Django支持所有常见的数据库关系:多对一,多对多和一对一。 激活模型 上面那段简短的模型代码给了Django很多信息。...有了这些代码,Django就能够: 为该应用创建数据库表(CREATE TABLE 语句); 为Question对象和Choice对象创建一个访问数据库的python API。...在处理字段名的引号时也是如此 —— 例如,使用双引号还是单引号; sqlmigrate命令并不会在你的数据库上真正运行迁移文件 —— 它只是把Django 认为需要的SQL打印在屏幕上以让你能够看到...def __str__(self): return self.choice_text 在模型中添加__str __()方法非常重要,不仅仅是为了方便您处理交互式提示时,而且在Django...每一种类型的字段,Django管理站点都知道如何显示它们; 每个DateTimeField字段都会有个方便的JavaScript快捷方式。
admin组件使用 Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。...urlpatterns = [ url(r'^admin/', admin.site.urls), ] 当这一切都配置好后,Django 管理工具就可以运行了。...from django.db import models # Create your models here....字段',) 12 fields,详细页面时,显示字段的字段。...如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资源,尤其是在配置文件内容很多的情况下
对于一些想要删除账号的数据,我们设置这个值为False就可以了,而不是真正的从数据库中删除。 is_superuser:是否是超级管理员。如果是超级管理员,那么拥有整个网站的所有权限。...last_login:上次登录的时间。 date_joined:账号创建的时间。 User模型的基本用法: 创建用户: 通过create_user方法可以快速的创建用户。...扩展用户模型有多种方式。这里我们来一一讨论下。 1. 设置Proxy模型: 如果你对Django提供的字段,以及验证的方法都比较满意,没有什么需要改的。...一对一外键: 如果你对用户验证方法authenticate没有其他要求,就是使用username和password即可完成。但是想要在原来模型的基础之上添加新的字段,那么可以使用一对一外键的方式。...如果没有修改,那么会使用USERNAME来作为唯一字段。 REQUIRED_FIELDS:一个字段名列表,用于当通过createsuperuser管理命令创建一个用户时的提示。
它还意味着当Django 收到浏览器发送过来的表单时,它将验证数据的长度。 Form 的实例具有一个is_valid() 方法,它为所有的字段运行验证的程序。...当调用这个方法时,如果所有的字段都包含合法的数据,它将: 返回True 将表单的数据放到cleaned_data属性中。 完整的表单,第一次渲染时,看上去将像: ?...注:Django 原生支持一个简单易用的跨站请求伪造的防护。当提交一个启用CSRF 防护的POST 表单时,你必须使用上面例子中的csrf_token 模板标签。...现在我们有了一个可以工作的网页表单,它通过Django Form 描述、通过视图处理并渲染成一个HTML 。...,更新操作后,下拉框并不会更新,需要重启django程序,因为直接在类中定义的静态字段,只会执行一次,即查询显示操作,在编译时就已经执行完毕, 为了让下拉框的数据实时同步,我们需要重写构造方法
Model 是 Django 做了一层包装以便我们更加方便地使用的类, 它其中包含了所有数据库交互的方法。上面代码中的每个类相当于单个数据库表,每个属性也是这个表中的一个字段。...python manage.py migrate 运行成功效果图如下: 这一步表示将该改动(当makemigrations之后产生了0001_initial.py 文件)作用到数据库文件,比如 create...auto_now 表示当对象保存时,该字段会自动设置成当前时间。一般用于记录“修改时间” 。auto_now_add 记录字段首次被创建的时间。 8)DateTimeField:时间和日期。...当 ForeignKey 中有个字段 unique 被设置为 True 时, 就表示一对一关系。 3)ManyToManyField:属于模型间关系中的多对多关系。...在我们的范例模型中, Book 有一个 多对多字段 叫做 authors。因为他们的关系是一本书由多个作者合写,一个作者可以写很多书。
网站:http://python.usyiyi.cn/django/index.html 数据库访问优化 Django的数据库层提供了很多方法来帮助开发者充分的利用他们的数据库。...使用iterator() 当你有很多对象时,QuerySet的缓存行为会占用大量的内存。这种情况下,采用iterator()解决。...另外,当建立起一个带有延迟字段的模型时,要意识到一些(小的、额外的)消耗会在Django内部产生。...整体插入 创建对象时,尽可能使用bulk_create()来减少SQL查询的数量。...="Python 3.1 Planned") 注意该方法有很多注意事项,所以确保它适用于你的情况。
+ auto_now:每次保存对象时,自动设置该字段为当前时间(取值:True/False) + auto_now_add:当兑现第一次被创建时自动设置当前时间(取值:True/False) + default...代码每次变化,都需要重启Django Shell ORM 查询操作 通过管理器对象进行 通过MyModel.objects管理器方法调用查询方法 方法 all() 用法:MyModel.objects.all...) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 查询数据: 正向查询(有显性属性的):由book查出版社:book.publisher...:存活相对时间,秒 -expires:具体过期时间 当不指定max_age和expires时,关闭浏览器时此数据失效。...FileField(upload = ‘子目录名’) 建表时增加一个字段即可,实际收到后直接在视图函数中将绑定文件流对象扔给对应字段即可 Content.objects.create(desc =
领取专属 10元无门槛券
手把手带您无忧上云