建立Models

本主题所有内容以软认知服务为技术基础

关于微软人脸识别,请参阅

本节内容请参阅微软认知服务人脸检测

##建立Models
因为我们的MongoDB的操作是强类型,所以我们必须为涉及到的数据源建立Models。

存储微信服务器得到的MediaID和本地文件名关系的WeixinImgFileModels

public class WeixinImgFileModels
{
    public ObjectId _id { set; get; }
    public string MediaId { set; get; }
    public string FileName { set; get; }

}

存储本地文件名和Face识别数据关系的DetectResultModels

public class DetectResultModels
{
    public ObjectId _id { set; get; }
    public string faceId { set; get; }
    public string FileName { set; get; }
    public double Age { set; get; }
    public string Gender { set; get; }
    public double Smile { set; get; }

}

存储一对FaceID的比较结果

public class VerifyModels
{
    public ObjectId _id { set; get; }

    public string FaceID1 { set; get; }

    public string FaceID2 { set; get; }

    public double Confidence { set; get; }

    public bool IsIdentical { set; get; }

}

### Django Models 使用教程 #### 创建模型类 在Django中,数据库表通过Python类来表示,这些类被称为模型(Model),它们继承自`django.db.models.Model`。每一个属性代表一个数据库字段[^5]。 ```python from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) ``` #### 字段选项 定义字段时可以设置多个参数以控制其行为: - `unique`: 如果设为True,则该字段在整个表中的值都必须唯一。 - `db_index`: 若此参数被设定为True,则会为此列建立索引来加速查询效率。 - `null`: 表明是否允许存储NULL值于数据库之中,默认情况下不允许(NULL)。 - `blank`: 这个标志用于验证阶段;如果它为真(True),则这个字段是可以留空的。 - `choices`: 提供一组可选值给特定字段。 - `default`: 设定当新记录加入而未提供数据时所使用的默认数值。 - `verbose_name`: 给予更人性化的名称,在管理界面显示更为友好。 - `auto_now_add`, `auto_now`: 自动填充当前日期时间戳,前者仅应用于对象首次保存之时,后者每次调用save()方法均会被触发。 - `max_length`: 对字符型字段而言必不可少的一个参数,指定了最大长度限制。 #### 数据库迁移 每当更改了模型结构之后都需要执行相应的数据库同步操作,这可以通过运行如下两条命令完成:先生成待应用的变化脚本(`makemigrations`)再实际实施这些变更(`migrate`)到目标数据库里去[^4]。 ```bash python manage.py makemigrations python manage.py migrate ``` #### 注册至Admin站点 为了让开发者能够方便快捷地管理和编辑已有的实体实例,通常还会把对应的Model注册到后台管理系统当中。只需简单几行代码即可实现这一功能[^3]: ```python from django.contrib import admin from .models import MyModel admin.site.register(MyModel) ``` #### 性能优化技巧 对于复杂的应用程序来说,性能是一个非常重要的考量因素之一。为了提高读取速度并保持良好的维护性,可以在项目中引入虚拟模型的概念——即利用预加载机制减少SQL查询次数从而达到提升响应时间和简化业务逻辑的目的[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值