Django基础6——数据模型关系

文章目录

  • 一、基本了解
  • 二、一对一关系
  • 三、一对多关系
    • 3.1 增删改查
    • 3.2 案例:应用详情页
    • 3.2 案例:新建应用页
  • 四、多对多关系
    • 4.1 增删改查
    • 4.2 案例:应用详情页
    • 4.3 案例:部署应用页

一、基本了解

常见数据模型关系:

  • 一对一(one-to-one),OneToOneField。一个表中的每条记录对应另一个表中的每条记录,使用OneToOneField建立关系。
  • 一对多,多对一(one-to-many),ForeignKey
  • 多对多(many-to-many),ManyToManyField
  • 所谓的一对一、一对多,是指数据库中的表之间的关系。

二、一对一关系

  • 应用场景:当一张表想扩展字段,最常用的方式就是在这个表添加一个对一关系,创建第二张表,第二张表的id字段余第一张表的id字段关联在一起,以此起到一对一。

1.修改模型类文件myapp/models.py,新增一个类,创建第二张表。

class IdCard(models.Model):
    number = models.CharField(max_length=20, verbose_name="身份证号")
    address = models.CharField(max_length=50, default="武汉")
    user = models.OneToOneField(User,on_delete=models.CASCADE) # 定义一对一的模型关系

2.生成迁移文件,并同步。

python manage.py makemigrations
python manage.py migrate

3.添加数据。

#####################################################
##往已有数据的myapp_user表中添加新数据,该条新数据中包含身份证号、地址信息。
user_obj = User.objects.create(user='alan',name='阿兰',sex='女',age='25',label="运营,漂亮,喜欢购物")    ##先往母表myapp_user表中添加。
IdCard.objects.create(user=user_obj, number="456789", address="北京")    ##再往子表myapp_idcard表中添加,此处的user是模型类中定义的user。

#####################################################
##向已有用户添加身份证信息
user_obj = User.objects.get(user="qingjun")
IdCard.objects.create(user=user_obj,number="123456789", address="杭州")

在这里插入图片描述
在这里插入图片描述
4.查询数据。

#####################################################
反向查询:通过用户查到身份证信息(user->idcard)
user = User.objects.get(user="qingjun") 
print(user.idcard.number)
print(user.idcard.address)

#####################################################
正向查询:从身份证表查用户(idcard->user)
idcard = IdCard.objects.get(user_id=1) 
print(idcard.user.user)
print(idcard.user.name)

在这里插入图片描述
在这里插入图片描述
5.修改数据。

user_obj = User.objects.get(user="qingjun")
#####################################################
# 修改子表中的身份证信息
user_obj.idcard.address="河南"
user_obj.idcard.save()
#####################################################
# 修改母表中的用户信息
user_obj.age = 38
user_obj.save()

在这里插入图片描述
6.删除数据。

##删除“阿兰”用户的所有信息,包括子表中的“身份证号”、“地址”
User.objects.filter(user="alan").delete()

在这里插入图片描述

三、一对多关系

  • 一对一是表与表之间的关系,而一对多、多对多是表与表中数据的关系。

  • 一对多:A表中的某个记录对应B表中的多条记录,使用ForeignKey建立关系。

  • 应用场景:项目部署涉及表,项目表、应用表、服务器表等等。

    • 一对多:一个项目有多个应用,一个应用只能属于一个项目。
    • 多对多:一个应用部署到多台服务器,一个服务器部署多个应用。
      在这里插入图片描述

3.1 增删改查

1.修改模型类文件myapp/models.py,新增模型类,创建项目中的三张表。

##第一张表,项目表。
class Project(models.Model):
    name = models.CharField(max_length=30)
    describe = models.CharField(max_length=100, null=True)
    datetime = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'project'
        verbose_name_plural ='项目'

##第二张表,应用表。
class App(models.Model):
    name = models.CharField(max_length=30)
    describe = models.CharField(max_length=100, null=True)
    datetime = models.DateTimeField(auto_now_add=True)
    project = models.ForeignKey(Project, on_delete=models.CASCADE) # 定义一对多的模型关系
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'app'
        verbose_name_plural ='应用'

##第三张表,服务器表。
class Server(models.Model):
    hostname = models.CharField(max_length=30)
    ip = models.GenericIPAddressField()
    describe = models.CharField(max_length=100, null=True)
    def __str__(self):
        return self.hostname
    class Meta:
        db_table = 'server'
        verbose_name_plural ='服务器'

2.生成迁移文件,并同步,查看数据库表。

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

3.新增数据。

from myapp.models import Project,App
#######################################################################
往项目表中插入数据,添加已知的项目名称、项目描述信息。
Project.objects.create(name="电商项目",describe="电商项目描述...")
Project.objects.create(name="在线教育项目",describe="在线教育项目描述...")
Project.objects.create(name="大数据项目",describe="大数据项目描述...")
#######################################################################
往应用表中插入信息,将应用表与项目表关联在一起。
project_obj = Project.objects.get(name="电商项目")
App.objects.create(name="product",describe="商品服务",project=project_obj)
project_obj = Project.objects.get(name="大数据项目")
App.objects.create(name="search",describe="搜索服务",project=project_obj)
project_obj = Project.objects.get(name="电商项目")
App.objects.create(name="order",describe="订单服务",project=project_obj)

在这里插入图片描述
4.查询数据。

#######################################################################
正向查询:通过应用名称查询所属项目(app->project)
##查询某个应用所属项目。
app = App.objects.get(name="product") # 获取应用
app.project.name # 根据获取的应用,查询对应项目名称
##查询所有应用所属项目。
app_list = App.objects.all()
for i in app_list:
	print(i.name, i.project.name, i.project.describe)
#######################################################################
反向查询:通过项目名称查询有哪些应用(project->app)
##查询某个项目有哪些应用:
project = Project.objects.get(name="电商项目") # 获取项目
project.app_set.all() # 根据获取的项目,查询所有应用
##查询所有项目有哪些引用:
project = Project.objects.all()
for i in project:
	print(i.name, i.app_set.all())	

在这里插入图片描述

3.2 案例:应用详情页

1.前端正向查询,查应用数据。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('app',views.app)
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render
from myapp.models import Project,App
def app(request):
    app = App.objects.all()
    return render(request, "app.html", {'app': app})
###################################################
4.定义html模板,templates/app.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>项目表单</title>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>应用名称</th>
            <th>应用描述</th>
            <th>所属项目</th>
        </tr>
    </thead>
    <tbody>
        {% for i in app %}
        <tr>
            <td>{{ i.name }}</td>
            <td>{{  i.describe }}</td>
            <td>{{ i.project.name}}</td>
        </tr>
        {% endfor %}
    </tbody>
</body>
</html>

在这里插入图片描述
2.前端反向查询,查项目数据。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('project',views.project),
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render
from myapp.models import Project,App
def project(request):
    project_list = Project.objects.all()
    return render(request, "project.html", {"project_list": project_list})
###################################################
4.定义html模板,templates/project.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>项目表单</title>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>项目名称</th>
            <th>项目描述</th>
            <th>所有应用</th>
        </tr>
    </thead>
    <tbody>
        {% for i in project_list %}
        <tr>
            <td>{{ i.name }}</td>
            <td>{{ i.describe }}</td>
            <td>
            {% for n in i.app_set.all %}
            {{ n }}
            {% endfor %}
            </td>
        </tr>
        {% endfor %}
    </tbody>
</body>
</html>

在这里插入图片描述

3.2 案例:新建应用页

  • 新建应用页:页面可添加应用并可选项目。

1.前端添加新应用,后端数据入库。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('app_add',views.app_add),
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render
from myapp.models import Project,App
def app_add(request):
    if request.method == "GET":
        project_list = Project.objects.all()
        return render(request,'app_add.html', {"project_list": project_list})
    elif request.method == "POST":
        app_name = request.POST.get("app-name")
        app_describe = request.POST.get("app-describe")
        project_name = request.POST.get("project-name")
        project_list = Project.objects.all()
        if not app_name:
            msg = "添加字段异常"
            return render(request, 'app_add.html', {'project_list': project_list, 'msg': msg})
        try:
            project_obj = Project.objects.get(name=project_name)
            App.objects.create(name=app_name, describe=app_describe, project=project_obj)
            msg ="添加成功"
            code = 0
        except:
            msg ="添加失败"
            code = 1
        return render(request, 'app_add.html', {'project_list': project_list, 'msg': msg,'code':code})
###################################################
4.定义html模板,templates/app_add.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>创建应用</title>
</head>
<body>
<form action="" method="post">
    应用名称 : <input type="text" name="app-name"><br>
    应用描述 : <input type="text" name="app-describe"><br>
    所属项目 :
    <select name="project-name" id="">
        {% for i in project_list %}
            <option value="{{ i.name }}">{{ i.name }}</option>
        {% endfor %}
    </select>
    <br>
    <button type="submit">创建</button>
    <button type="reset">清空</button>
    {{ msg }}
</form>
</body>
</html>

2.前端页面添加新应用。
在这里插入图片描述

四、多对多关系

  • 多对多:A表中的某个记录对应B表中的多条记录,B表中的某个记录对应A表中多条记录。使用ManyToManyField建立关系。过程中,Django会自动创建一个表来管理多对多关系,称为中间表;这个中间表的名称使用多对多的名称和包含这张表的模型的名称生成,也可以使用db_table选项指定这个中间表名称。
    在这里插入图片描述

  • 应用场景:一个应用部署到多台服务器,一个服务器部署多个应用。
    在这里插入图片描述

4.1 增删改查

1.修改模型类文件myapp/models.py,将server表和app表进行关联。

##第三张表,服务器表。
class Server(models.Model):
    hostname = models.CharField(max_length=30)
    ip = models.GenericIPAddressField()
    describe = models.CharField(max_length=100, null=True)
    app = models.ManyToManyField(App)           ##添加此行。
    def __str__(self):
        return self.hostname
    class Meta:
        db_table = 'server'
        verbose_name_plural ='服务器'

2.生成迁移文件,并同步,查看中间表。

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述
3.往server表添加数据。

from myapp.models import App,Project,Server
Server.objects.create(hostname="ec-test1", ip="192.168.1.10", describe="电商项目测试服务器1")
Server.objects.create(hostname="ec-test2", ip="192.168.1.11", describe="电商项目测试服务器2")
Server.objects.create(hostname="bigdata-test1", ip="192.168.1.11", describe="大数据项目测试服务器1")

在这里插入图片描述
4.将一个新应用部署到指定服务器信息,添加到数据库中。

project_obj = Project.objects.get(name="电商项目")
app = App.objects.create(name="portal",describe="前端服务",project=project_obj)
server = Server.objects.get(hostname="ec-test1")
server.app.add(app)

在这里插入图片描述
5.查询数据。

#######################################################################
正向查询:查询服务器部署了哪些应用(server->app)
##查询某台服务器部署了哪些应用:
server = Server.objects.get(hostname="ec-test1")
server.app.all()
##查询所有服务器部署了哪些应用:
server_list = Server.objects.all()
for i in server_list:
    print(i.hostname, i.app.all())
#######################################################################
反向查询:查看某个应用部署到哪些服务器(app->server)
##查询某个应用部署到哪些服务器:
app = App.objects.get(name="portal")
app.server_set.all()
##查询所有应用部署到哪些服务器:
app_list = App.objects.all()
for i in app_list:
    print(i.name, i.server_set.all())

6.根据已存在的app信息,将其添加到服务器表中。

##获取应用表中的app_id字段进行关联。
app = App.objects.get(name="qingjun")
app.id
server = Server.objects.get(hostname="bigdata-test1") 
server.app.add(3)    #将应用id3关联该服务器。
server.app.add(1,2,3)    #将应用id1、2、3关联该服务器。

在这里插入图片描述
7.删除,将id=3的应用与ec-test1服务器取消关联。

server = Server.objects.get(hostname="ec-test1") 
server.app.remove(3) 

在这里插入图片描述
8.清空,将ec-test1服务器取消所有应用关联。

server = Server.objects.get(hostname="ec-test1") 
server.app.clear()

在这里插入图片描述

4.2 案例:应用详情页

1.前端正向查询。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('server',views.server),
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render
from myapp.models import Project,App,Server
def server(request):
    server_list = Server.objects.all()
    return render(request, "server.html", {"server_list": server_list})
###################################################
4.定义html模板,templates/server.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>服务器详情</title>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>服务器名称</th>
            <th>IP</th>
            <th>所有应用</th>
        </tr>
    </thead>
    <tbody>
        {% for i in server_list %}
        <tr>
            <td>{{ i.hostname }}</td>
            <td>{{ i.ip }}</td>
            <td>
            {% for n in i.app.all %}
            {{ n }}
            {% endfor %}
            </td>
        </tr>
        {% endfor %}
    </tbody>
</body>
</html>

在这里插入图片描述

2.前端反向查询,查项目数据。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('app_server', views.app_server),
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render
from myapp.models import Project,App
def app_server(request):
    app_server = App.objects.all()
    return render(request, "app_server.html", {"app_server": app_server})
###################################################
4.定义html模板,templates/app_server.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>应用详情</title>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>应用名称</th>
            <th>服务器列表</th>
        </tr>
    </thead>
    <tbody>
        {% for i in app_server %}
        <tr>
            <td>{{ i.name}}</td>
            <td>
            {% for n in i.server_set.all %}
            {{ n }}
            {% endfor %}
            </td>
        </tr>
        {% endfor %}
    </tbody>
</body>
</html>
###################################################
5.将search应用部署在bigdata-test1服务器中,将该信息填入到数据库。
app = App.objects.get(name="search")
server = Server.objects.get(hostname="bigdata-test1")
server.app.add(app) 

在这里插入图片描述

4.3 案例:部署应用页

1.前端添加新应用,后端数据入库。

###################################################
1.定义根路由规则,ORM/urls.py
from django.urls import path,include,re_path
urlpatterns = [
    path('myapp/',include('myapp.urls')),
]
###################################################
2.定义子路由规则,ORM/myapp/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('app_server', views.app_server),
]
###################################################
3.定义视图,ORM/myapp/views.py
from django.shortcuts import render,redirect
from myapp.models import Project,App
def app_add(request):
    if request.method == "GET":
        project_list = Project.objects.all()
        server_list = Server.objects.all()
        return render(request,'app_add.html', {"project_list": project_list,'server_list':server_list})
    elif request.method == "POST":
        app_name = request.POST.get("app-name")
        app_describe = request.POST.get("app-describe")
        project_name = request.POST.get("project-name")
        server_list = request.POST.getlist("server-list")  # 使用getlist获取,用于获取表单多少值
        if not app_name:
            msg = "添加字段异常"
            return render(request, 'app_add.html')
        try:
            project_obj = Project.objects.get(name=project_name)
            app = App.objects.create(name=app_name, describe=app_describe, project=project_obj)
            # 将服务器(可能多个)关联应用
            print(server_list)
            for server in server_list:
                server = Server.objects.get(hostname=server)
                server.app.add(app)
            msg ="添加成功"
            code = 0
        except:
            msg ="添加失败"
            code = 1
        return redirect(app_add)
###################################################
4.定义html模板,templates/app_add.html    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>创建应用</title>
</head>
<body>
<form action="" method="post">
    应用名称 : <input type="text" name="app-name"><br>
    应用描述 : <input type="text" name="app-describe"><br>
    所属项目 :
    <select name="project-name" id="">
        {% for i in project_list %}
            <option value="{{ i.name }}">{{ i.name }}</option>
        {% endfor %}
    </select><br>
    部署服务器 :
    <select name="server-list" multiple>
        {% for i in server_list %}
            <option value="{{ i.hostname }}">{{ i.hostname }}</option>
        {% endfor %}<br>
    </select>
    <br>
    <button type="submit">创建</button>
    <button type="reset">清空</button>
    {{ msg }}
</form>
</body>
</html>
###################################################
5.修改templates/app.html模板内容,显示服务器列表信息。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>应用表单</title>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>应用名称</th>
            <th>应用描述</th>
            <th>所属项目</th>
            <th>服务器列表</th>
        </tr>
    </thead>
    <tbody>
        {% for i in app %}
        <tr>
            <td>{{ i.name }}</td>
            <td>{{  i.describe }}</td>
            <td>{{ i.project.name}}</td>
            <td>
            {% for n in i.server_set.all %}
                {{ n }}
            {% endfor %}
            </td>
        </tr>
        {% endfor %}
    </tbody>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/96133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试案例 | 气象探测库存管理系统的集成测试计划

将经过单元测试的模块按照设计要求连接起来&#xff0c;组成规定的软件系统的过程被称为“集成”。集成测试也被称为组装测试、联合测试、子系统测试或部件测试等&#xff0c;其主要用于检查各个软件单元之间的接口是否正确。集成测试同时也是单元测试的逻辑扩展&#xff0c;即…

【高阶数据结构】二叉搜索树 {概念;实现:核心结构,增删查,默认成员函数;应用:K模型和KV模型;性能分析;相关练习}

二叉搜索树 一、二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它可以是一棵空树&#xff0c;若果不为空则满足以下性质: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点…

JavaScript关于函数的小挑战

题目 回到两个体操队&#xff0c;即海豚队和考拉队! 有一个新的体操项目&#xff0c;它的工作方式不同。 每队比赛3次&#xff0c;然后计算3次得分的平均值&#xff08;所以每队有一个平均分&#xff09;。 只有当一个团队的平均分至少是另一个团队的两倍时才会获胜。否则&…

企业主流全链路监控系统 - OpenTelemetry(二)

OpenTelemetry 二 4. 部署&#xff08;python&#xff09;准备工作&#xff08;1/5&#xff09;创建 HTTP Server&#xff08;2/5&#xff09;Automatic instrumentation&#xff08;3/5&#xff09;增加观测项&#xff08;Manual&#xff09;&#xff08;4/5&#xff09;向 Co…

Zabbix 5.0 媒体介质 邮箱配置例子

QQ企业邮箱 参考&#xff1a;zabbix 腾讯企业邮箱配置图_harveymomo的博客-CSDN博客

uniapp - 全平台兼容实现上传图片带进度条功能,用户上传图像到服务器时显示上传进度条效果功能(一键复制源码,开箱即用)

效果图 uniapp小程序/h5网页/app实现上传图片并监听上传进度,显示进度条完整功能示例代码 一键复制,改下样式即可。 全部代码 记得改下样式,或直接

java八股文面试[多线程]——自旋锁

优点&#xff1a; 1. 自旋锁尽可能的减少线程的阻塞&#xff0c;这对于锁的竞争不激烈&#xff0c;且占用锁时间非常短的代码块来说性能能大幅度的提升&#xff0c;因为自旋的消耗会小于线程阻塞挂起再唤醒的操作的消耗 &#xff0c;这些操作会导致线程发生两次上下文切换&…

C# textBox 右键菜单 contextMenuStrip

需求&#xff1a; 想在上图空白处可以右键弹出菜单&#xff0c;该怎么做呢&#xff1f; 1.首先&#xff0c;拖出一个 ContextMenuStrip。 随便放哪里都行&#xff0c;如下: 2.在textBox里关联这个“右键控件”即可&#xff0c;如下&#xff1a; 最终效果如下&#xff1a; 以上…

Linux:ansible-playbook配置文件(剧本)

如果你还没有配置基础的ansible和一些基础用法可以去下面的链接 playbook是基于ansible的 Linux&#xff1a;ansible自动化运维工具_鲍海超-GNUBHCkalitarro的博客-CSDN博客 Linux&#xff1a;ansible自动化运维工具_鲍海超-GNUBHCkalitarro的博客-CSDN博客 Linux&…

计算机网络-笔记-第一章-计算机网络概述

目录 一、第一章——计算机网络概述 1、因特网概述 &#xff08;1&#xff09;网络、互联网、因特网 &#xff08;2&#xff09;因特网发展的三个阶段 &#xff08;3&#xff09;因特网服务的提供者&#xff08;ISP&#xff09; &#xff08;4&#xff09;因特网标准化工…

肿瘤科医师狂喜,15分RNA修饰数据挖掘文章

Biomamba荐语 与这个系列的前面一些论文类似&#xff0c;这次给大家推荐的是一篇纯生物信息学数据挖掘的文章&#xff0c;换句话说&#xff0c;这又是一篇不需要支出科研经费&#xff08;白嫖&#xff09;的论文(当然&#xff0c;生信分析用的服务器还是得掏点费用的)。一般来…

MySQL数据库学习【基础篇】

&#x1f4c3;基础篇 下方链接使用科学上网速度可能会更加快一点哦&#xff01; 请点击查看数据库MySQL笔记大全 通用语法及分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的…

LabVIEW开发灭火器机器人

LabVIEW开发灭火器机器人 如今&#xff0c;自主机器人在行业中有着巨大的需求。这是因为它们根据不同情况的适应性。由于消防员很难进入高风险区域&#xff0c;自主机器人出现了。该机器人具有自行检测火灾的能力&#xff0c;并通过自己的决定穿越路径。 由于消防安全是主要问…

LoRA学习笔记

Background 全参微调 全量微调指的是&#xff0c;在下游任务的训练中&#xff0c;对预训练模型的每一个参数都做更新。例如图中&#xff0c;给出了Transformer的Q/K/V矩阵的全量微调示例&#xff0c;对每个矩阵来说&#xff0c;在微调时&#xff0c;其d*d个参数&#xff0c;都…

Android 实现资源国际化

前言 国际化指的是当Android系统切换语言时&#xff0c;相关设置也随之改变&#xff0c;从而使用不同的国家地区&#xff1b; 简而言之&#xff0c;就是我们的Android App中的文字和图片会随着不同国家的地区变化从而切换为不同语言文字和不同国家的图片 文字图片国际化 只要…

鸿鹄企业工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统源代码

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管…

Java 中数据结构LinkedList的用法

LinkList 链表&#xff08;Linked list&#xff09;是一种常见的基础数据结构&#xff0c;是一种线性表&#xff0c;但是并不会按线性的顺序存储数据&#xff0c;而是在每一个节点里存到下一个节点的地址。 链表可分为单向链表和双向链表。 一个单向链表包含两个值: 当前节点…

c语言每日一练(12)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…

浅谈AI浪潮下的视频大数据发展趋势与应用

视频大数据的发展趋势是多样化和个性化的。随着科技的不断进步&#xff0c;人们对于视频内容的需求也在不断变化。从传统的电视节目到现在的短视频、直播、VR等多种形式&#xff0c;视频内容已经不再是单一的娱乐方式&#xff0c;更是涉及到教育、医疗、商业等各个领域。 为了…

day03_注释丶关键字丶标识符丶常量

​注释 注释就是使用人类的自然语言对代码的解释和说明。 代码本身和人类的自然语言相比&#xff0c;可读性肯定是要差一些&#xff0c;所以为了更快能够知道代码的含义、作用、需要注意地方&#xff0c;所有程序员都应该养成写注释的好习惯。 由于注释的内容是给程序员看的&…