从零创建一个 Django 项目

1. 准备环境

在开始之前,确保你的开发环境满足以下要求:

  • 安装了 Python (推荐 3.8 或更高版本)。
  • 安装 pip 包管理工具。
  • 如果要使用 MySQL 或 PostgreSQL,确保对应的数据库已安装。
创建虚拟环境

在项目目录中创建并激活虚拟环境,保证项目依赖隔离:

# 创建虚拟环境
python -m venv env# 激活虚拟环境
# Windows
envScriptsactivate
# Linux/Mac
source env/bin/activate

2. 安装 Django 和数据库驱动

在激活的虚拟环境中安装 Django:

pip install django

如果使用 MySQL 或 PostgreSQL,还需要安装相应的驱动:

  • MySQL: 安装 mysqlclient:

    pip install mysqlclient
    
  • PostgreSQL: 安装 psycopg2:

    pip install psycopg2-binary
    

如果只是使用 SQLite,Django 默认支持,无需额外安装。


3. 创建 Django 项目

使用 django-admin 创建一个新的项目:

django-admin startproject myproject
项目结构

创建后,项目的基本结构如下:

myproject/manage.py         # 项目管理脚本myproject/__init__.py   # 包标识settings.py   # 项目设置urls.py       # URL 配置asgi.py       # ASGI 配置wsgi.py       # WSGI 配置

4. 配置数据库

打开 myproject/myproject/settings.py,找到 DATABASES 配置项,根据数据库类型修改配置:

默认的 SQLite 配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}
使用 MySQL

如果你使用 MySQL,修改为:

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'your_database_name','USER': 'your_database_user','PASSWORD': 'your_database_password','HOST': 'localhost',  # 数据库主机地址,通常是 localhost'PORT': '3306',       # MySQL 默认端口}
}
使用 PostgreSQL

如果你使用 PostgreSQL,修改为:

DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql','NAME': 'your_database_name','USER': 'your_database_user','PASSWORD': 'your_database_password','HOST': 'localhost',  # 数据库主机地址,通常是 localhost'PORT': '5432',       # PostgreSQL 默认端口}
}

5. 创建 Django 应用

在项目目录中创建一个新的 Django 应用:

python manage.py startapp myapp
应用结构

创建后,应用的结构如下:

myapp/migrations/         # 数据库迁移文件目录__init__.py__init__.py         # 包标识admin.py            # 管理后台配置apps.py             # 应用配置models.py           # 数据模型定义tests.py            # 单元测试views.py            # 视图函数

6. 配置应用

打开 myproject/myproject/settings.py,在 INSTALLED_APPS 中添加你的新应用:

INSTALLED_APPS = [# Django 自带的应用'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 你的应用'myapp',
]

7. 创建模型并生成数据库表

myapp/models.py 中定义数据模型。例如:

from django.db import modelsclass Lesson(models.Model):id = models.CharField(max_length=20, primary_key=True)name = models.CharField(max_length=50)def __str__(self):return self.name
生成迁移文件

运行以下命令生成迁移文件:

python manage.py makemigrations

Django 会检测到模型更改并生成迁移文件,例如:

Migrations for 'myapp':myapp/migrations/0001_initial.py- Create model Lesson
应用迁移文件

运行以下命令将迁移文件应用到数据库,生成表结构:

python manage.py migrate
生成并应用迁移文件的目的
  • 模型定义数据库表结构同步,确保模型中的字段和属性能够在数据库中对应为实际的表和列;
迁移文件的作用
  • 迁移文件是 Django 提供的一种机制,用于跟踪和记录数据模型的变化,然后将这些变化应用到数据库中。

  • **作用1:**将模型转换为数据库表; (在 models.py 中定义的模型只是 Python 的类,它们描述了表的结构(如字段、类型、约束等),但它们并不会自动创建数据库中的实际表。)

    • 迁移文件将这些模型转化为一组可以执行的指令(SQL 语句),以在数据库中创建实际的表。
  • 举例: 在models.py中定义

    from django.db import models

    class User(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=100)
    email = models.EmailField()

  • 迁移文件会生成相应的SQL语句;

    CREATE TABLE user (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL,
    email VARCHAR(254) NOT NULL
    );

  • **作用2:**跟踪和管理模型的变更; (当你对 models.py 中的模型做出修改(如新增字段、修改字段类型、删除字段等)时,Django 会通过迁移文件记录这些变化。)应用迁移文件后,Django 会将这些更改同步到数据库中,而不会丢失现有数据。

  • 举例:假设你为User模型添加了一个新的字段age

    age = models.IntegerField(default=18)

  • 生成迁移文件以后,Django会创建一个指令来添加字段;

    ALTER TABLE user ADD COLUMN age INT NOT NULL DEFAULT 18;

  • **作用3:**管理多开发者协作中的数据库一致性; (在多人开发时,每个开发者可能对模型进行不同的更改,通过迁移文件可以记录这些更改,并在团队中共享。迁移文件以增量的形式记录每次更改,确保所有开发者和环境中的数据库表结构保持一致。)

8. 运行开发服务器

使用以下命令启动 Django 开发服务器:

python manage.py runserver

打开浏览器访问 http://127.0.0.1:8000/ 以查看项目是否正常运行。


9. 添加管理后台支持

如果需要通过 Django 的管理后台管理数据库,可以为模型添加管理支持。

注册模型

打开 myapp/admin.py,注册模型:

from django.contrib import admin
from .models import Lessonadmin.site.register(Lesson)
创建超级用户

运行以下命令创建管理员账户:

python manage.py createsuperuser

按照提示输入用户名、邮箱和密码。

访问管理后台

启动开发服务器后,访问 http://127.0.0.1:8000/admin,使用管理员账户登录即可管理数据库中的数据。


10. 测试操作数据库

可以通过 manage.py shell 交互式操作数据库:

python manage.py shell

在交互环境中:

from myapp.models import Lesson# 创建记录
lesson = Lesson.objects.create(id='1', name='Django Basics')# 查询记录
lesson = Lesson.objects.get(id='1')
print(lesson.name)# 更新记录
lesson.name = 'Advanced Django'
lesson.save()# 删除记录
lesson.delete()

总结

通过以上步骤,你可以从零创建一个 Django 项目,并设置数据库支持。核心流程包括:

  1. 安装 Django 和数据库驱动。
  2. 配置数据库连接。
  3. 创建应用和模型。
  4. 生成并应用迁移文件。
  5. 运行开发服务器并使用 Django 提供的管理后台。

项目结构解读

在这里插入图片描述

env文件夹
  • 概念;env 文件夹是一个 虚拟环境 的文件夹。

  • 什么是虚拟环境?【虚拟环境是 Python 提供的一种工具,用于隔离项目的依赖。它允许你在每个项目中独立安装 Python 包,而不会干扰全局 Python 环境或其他项目的依赖。】

  • 为什么需要虚拟环境?

    • 依赖隔离:每个项目可能需要不同版本的库,如果不使用虚拟环境,可能会导致版本冲突。
    • 防止污染全局环境:全局环境中的库安装可能会影响其他项目的正常运行。
  • env文件夹的作用

    • 环境隔离:当你激活虚拟环境时,所有安装的依赖包(如 Django)都被存储在 env 文件夹中。
    • 存储依赖包:例如,你安装的 Django 和 MySQL 驱动等依赖,都会存储在 env/Lib/site-packages 下。
  • 激活虚拟环境(window)

    envScriptsactivate

  • 激活虚拟环境(Linux/Mac)

    source env/bin/activate

  • 关闭虚拟环境

    deactivate

项目目录结构以及Django项目开发注意点
myproject/manage.pymyproject/__init__.pysettings.pyurls.pyasgi.pywsgi.pymyapp/migrations/__init__.pyadmin.pyapps.pymodels.pytests.pyviews.py
manage.py
  • 概念;manage.py 是 Django 项目的入口点。它是一个命令行工具,允许你管理项目(如运行开发服务器、数据库迁移等)。常见的命令包括:

  • 启动开发服务器

    python manage.py runserver

  • 创建数据库迁移

    python manage.py makemigrations
    python manage.py migrate

  • 创建超级用户

    python manage.py createsuperuser

myproject/(同名的文件夹)
  • 概念;这个文件夹是Django项目的配置文件夹,它的名字和项目名一致
  • settings.py:项目的核心配置文件,包括数据库配置、已安装的应用、静态文件路径等。
  • urls.py:项目的 URL 路由配置文件,用于将 URL 路径映射到对应的视图函数。
  • asgi.py:ASGI(异步服务器网关接口)配置,用于支持异步请求处理。
  • wsgi.py:WSGI(Web服务器网关接口)配置,用于部署 Django 项目到生产环境。
myapp(创建的应用目录)
  • myapp/ 是你创建的应用目录。Django 项目可以包含多个应用,每个应用负责不同的功能模块。
  • 各文件的作用
    • models.py:定义数据模型(数据库表结构)。
    • views.py:处理用户的请求,并返回响应。
    • admin.py:配置管理后台(Django admin)。
    • apps.py:管理应用的配置信息。
    • migrations/:存储数据库迁移文件,用于跟踪模型的变化。
    • tests.py:定义测试用例,用于自动化测试。
    • init: 标识这是一个Python包; (文件夹可以被 Python 识别为模块)
为什么 myproject 文件夹下有一个和项目同名的文件夹?
  • 这是Django项目默认的目录结构
    • 最外层的 myproject/ 是项目的根目录,存放项目入口点 manage.py 和其他项目相关的文件。
    • 内层的 myproject/ 是项目的 配置文件夹,存放项目的配置(如 settings.py、urls.py 等)。
  • 这样设计的目的
    • Django 这样设计的原因是为了方便管理项目的全局文件和应用文件。分开这两层结构,可以更清晰地区分项目的配置文件和其他文件。
修改项目名称会影响哪些地方?
  • 如果你需要修改项目名称,内层文件夹(myproject)中的配置文件需要同步更新。例如:
    • asgi.py 和 wsgi.py 中引用的模块路径需要修改。
    • 项目运行时的模块路径也需要更新。
如何添加更多的应用到项目中?
  • Django 支持模块化的开发,可以为项目添加多个应用,每个应用负责不同的功能。

  • 创建新的应用;使用startapp命令创建新应用;例如

    python manage.py startapp blog

    1. 注册应用;将新应用注册到项目的 INSTALLED_APPS 中:

    settings.py

    INSTALLED_APPS = [
    # 默认应用
    ‘django.contrib.admin’,
    ‘django.contrib.auth’,
    ‘django.contrib.contenttypes’,
    ‘django.contrib.sessions’,
    ‘django.contrib.messages’,
    ‘django.contrib.staticfiles’,

    # 你的自定义应用
    'myapp',
    'blog',
    

    ]

    1. 添加URL路由;为新应用配置URL,例如,在新应用blog中创建urls.py

    blog/urls.py

    from django.urls import path
    from . import views

    urlpatterns = [
    path(‘’, views.index, name=‘index’), # 主页
    ]

    1. 在项目的urls.py中包含这个应用的URL;

    myproject/urls.py

    from django.contrib import admin
    from django.urls import path, include

    urlpatterns = [
    path(‘admin/’, admin.site.urls),
    path(‘blog/’, include(‘blog.urls’)), # 包含 blog 的路由
    ]

项目结构总结
  • env 文件夹:是虚拟环境的文件夹,用于隔离项目依赖。
  • 项目结构:
    • 外层 myproject/ 是根目录,存放入口文件(如 manage.py)。
    • 内层 myproject/ 是项目的配置文件夹,存放 settings.py 等配置。
    • myapp/ 是一个应用目录,你可以创建多个应用,每个应用负责不同的功能模块。
  • 模块化开发:
    • Django 项目可以包含多个应用,通过 startapp 命令创建新应用,并通过 INSTALLED_APPS 注册到项目中。

编辑数据库时,是否需要书写models.py文件

1. 使用models.py的场景
  • 在大多数情况下,推荐通过models.py 文件来定义和操作数据库,这是 Django 的核心功能之一。
  • 优点
    • **ORM提供抽象层;**通过Django的ORM(对象关系映射),你可以直接使用Python类和方法操作数据库,而无需手写SQL;
    • **数据变更自动管理:**通过迁移(migrations)功能,可以轻松跟踪和管理数据库结构的变更。
    • 代码可维护性强: models.py 中的类定义直接对应数据库表,代码更直观、更易维护。
    • **跨数据库支持:**通过 Django 的 ORM,同一套代码可以适配不同的数据库(如 SQLite、MySQL、PostgreSQL)。
2. 直接操作数据库的场景(无需models.py)
场景1:已有数据库表;
  • 如果你的项目需要操作一个已有的数据库(非 Django 管理的表),你可以直接通过 SQL 或第三方库操作它,而不定义模型。
  • 也可以使用Django的inspectdb功能自动生成模型;
场景2:复杂SQL查询
  • 如果某些操作难以通过 ORM 实现(例如复杂的联表查询、多级嵌套查询等),可以直接使用 SQL 查询。
场景3:一次性脚本或数据迁移
  • 如果只是临时操作数据库(如迁移数据、批量更新等),可以直接运行原生 SQL,而不需要定义模型。

利用Django操作数据库(编写接口)

  • 目的:想要获取my_db_01数据库下的users表中的所有用户数据;
步骤1:在myproject文件夹下的settings.py文件中配置数据库信息
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',  # 使用 MySQL 驱动'NAME': 'my_db_01',                   # 数据库名'USER': 'your_mysql_username',        # MySQL 用户名'PASSWORD': 'your_mysql_password',    # MySQL 密码'HOST': 'localhost',                  # 数据库主机,通常是 localhost'PORT': '3306',                       # MySQL 默认端口}
}
步骤2:定义users表的类型; (方法一)
  • Django中可以操作多个应用,

  • 打开myapp/models.py,并定义User模型

    from django.db import models

    class User(models.Model):
    id = models.AutoField(primary_key=True) # 自增主键
    username = models.CharField(max_length=45) # 用户名
    password = models.CharField(max_length=45) # 密码
    status = models.BooleanField(default=True) # 状态 (映射为 TINYINT(1))

    class Meta:db_table = 'users'  # 映射到 MySQL 中的 users 表managed = False     # 告诉 Django 不去管理(创建/迁移)此表
    
步骤3:编写视图获取所有用户信息;
  • 在 myapp/views.py 中编写一个视图函数,用于获取 users 表的所有记录

    from django.http import JsonResponse
    from .models import User

    def get_all_users(request):
    try:
    # 查询所有用户
    users = User.objects.all().values(‘id’, ‘username’, ‘password’, ‘status’)
    users_list = list(users) # 转换为列表以便返回 JSON 响应
    return JsonResponse({‘status’: ‘success’, ‘data’: users_list}, safe=False)
    except Exception as e:
    return JsonResponse({‘status’: ‘error’, ‘message’: str(e)}, status=500)

步骤4:配置URL路由
  • 在myapp/urls.py 中添加路由,让接口与视图函数关联

    from django.urls import path
    from .views import get_all_users

    urlpatterns = [
    path(‘users/’, get_all_users, name=‘get_all_users’), # 绑定接口到视图函数
    ]

  • 然后在主项目中的urls.py中包含myapp路由即可;

    from django.urls import path
    from .views import get_all_users

    urlpatterns = [
    path(‘users/’, get_all_users, name=‘get_all_users’), # 绑定接口到视图函数
    ]

步骤5:测试接口(浏览器/postman都可)

在这里插入图片描述

操作数据库的时候为啥没有直接书写SQL代码?

  • 使用了Django ORM(对象关系映射,Object-Relational Mapping),它是 Django 提供的一个强大的抽象工具,用于代替直接写 SQL 语句来操作数据库。
Django ORM的工作原理;
  • 模型与数据库表的映射;

    • 在 models.py 中定义的 User 模型,对应的是数据库中的 users 表。
    • **Django会根据模型自动生成SQL语句来增删改查数据库; **
  • Django ORM 方法与 SQL 的关系

    • 当你使用 ORM 的方法(如 User.objects.all())时,Django 会在内部转换成对应的 SQL 查询,并向数据库发送请求。你不需要手动书写 SQL,Django 会为你生成高效的 SQL 查询。
  • 例如

    users = User.objects.all().values(‘id’, ‘username’, ‘password’, ‘status’)

    相当于sql

    SELECT id, username, password, status FROM users;

Django ORM的优势
  • 提高开发效率:通过 Python 代码实现数据库操作,无需手动编写 SQL。
  • 跨数据库兼容性:同一段代码可以在不同数据库(如 SQLite、MySQL、PostgreSQL)上运行,Django 自动生成对应数据库的 SQL。
  • 安全性:Django ORM 内部会自动处理一些常见的安全问题,如 SQL 注入。

使用raw() 方法来执行自定义SQL;

方法1,
  • 如果需要执行更复杂的SQL查询(联表查询、子查询), 可以使用raw()方法;

    from django.db import connection
    from .models import User

    def get_all_users_raw(request):
    with connection.cursor() as cursor:
    cursor.execute(“SELECT id, username, password, status FROM users”)
    rows = cursor.fetchall()
    users_list = [
    {‘id’: row[0], ‘username’: row[1], ‘password’: row[2], ‘status’: row[3]}
    for row in rows
    ]
    return JsonResponse({‘status’: ‘success’, ‘data’: users_list})

方法2;使用raw()和ORM
  • 可以结合ORM的raw()方法来直接执行SQL查询;即将SQL语句直接放到raw()中, 具体效果如下:

    users = User.objects.raw(“SELECT id, username, password, status FROM users”)
    for user in users:
    print(user.username)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot多环境配置

问题背景 以后在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线…

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测

WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测 目录 WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于WOA-CNN-GRU-Attention、…

鸿蒙动态路由实现方案

背景 随着CSDN 鸿蒙APP 业务功能的增加,以及为了与iOS、Android 端统一页面跳转路由,以及动态下发路由链接,路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理,类似于 iOS与Android的实…

【Go】Go Gorm 详解

1. 概念 Gorm 官网:https://gorm.io/zh_CN/docs/ Gorm:The fantastic ORM library for Golang aims to be developer friendly,这是官网的介绍,简单来说 Gorm 就是一款高性能的 Golang ORM 库,便于开发人员提高效率 那…

Chrome谷歌浏览器如何能恢复到之前的旧版本

升级了谷歌最新版不习惯,如何降级版本 未完待续。。 电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。 怎么恢复Chrome 之前版本&a…

技术晋升读书笔记—华为研发

读完《华为研发》第三版,我深感震撼,书中的内容不仅详实地记录了华为公司的成长历程,还揭示了华为成功背后的管理理念和创新思路。这本书通过真实的案例和数据,展示了华为如何从一个小企业发展成全球通信行业的领导者。 一、关键人…

数据可视化:让数据讲故事的艺术

目录 1 前言2 数据可视化的基本概念2.1 可视化的核心目标2.2 传统可视化手段 3 数据可视化在知识图谱中的应用3.1 知识图谱的可视化需求3.2 知识图谱的可视化方法 4 数据可视化叙事:让数据讲故事4.1 叙事可视化的关键要素4.2 数据可视化叙事的实现方法 5 数据可视化…

【OpenCV(C++)快速入门】--opencv学习

0 配置环境 配置环境网上很多资料&#xff0c;这里就不赘述了。 笔者使用的是VS2022opencv4.9.0 测试配置环境 // 打开摄像头样例 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs/imgcod…

归并排序算法

归并排序 1算法介绍 和选择排序一样&#xff0c;归并排序的性能不受输入数据的影响&#xff0c;但表现比选择排序好的多&#xff0c;因为始终都是O(n log n&#xff09;的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用…

unity学习18:unity里的 Debug.Log相关

目录 1 unity里的 Debug.log相关 2 用Debug.DrawLine 和 Debug.DrawRay画线 2.1 画线 1 unity里的 Debug.log相关 除了常用的 Debug.Log&#xff0c;还有另外2个 Debug.Log("Debug.Log"); Debug.LogWarning("Debug.LogWarning"); Debug.LogErro…

c语言第一天

前言&#xff1a; bili视频2. 【初识C语言】第一个C语言项目_哔哩哔哩_bilibili 我感觉我意志不坚定&#xff0c;感觉要学网络安全&#xff0c;我又去专升本了&#xff0c;咋搞啊 多学一点是一点&#xff0c;我看到day1团队的人&#xff0c;一天学12个小时&#xff0c;年入2…

PyTorch DAY2: 搭建神经网络

如今&#xff0c;我们已经了解了 PyTorch 中张量及其运算&#xff0c;但这远远不够。本次实验将学会如何使用 PyTorch 方便地构建神经网络模型&#xff0c;以及 PyTorch 训练神经网络的步骤及方法。 知识点 PyTorch 构建神经网络Sequential 容器结构使用 GPU 加速训练模型保存…

2025 年 Java 最新学习资料与学习路线——从零基础到高手的成长之路

2025 年 Java 最新学习资料与学习路线——从零基础到高手的成长之路 大家好&#xff0c;欢迎来到我的频道&#xff01;今天我们要聊聊 Java ——这门陪伴了很多程序员成长的编程语言。无论你是编程新手&#xff0c;还是已经走了一段编程路&#xff0c;但还不确定如何深入学习 …

riscv架构下linux4.15实现early打印

在高版本linux6.12.7源码中&#xff0c;early console介绍&#xff0c;可参考《riscv架构下linux6.12.7实现early打印》文章。 1 什么是early打印 适配内核到新的平台&#xff0c;基本环境搭建好之后&#xff0c;首要的就是要调通串口&#xff0c;方便后面的信息打印。 正常流…

【论文阅读笔记】基于YOLO和ResNet深度卷积神经网络的结直肠息肉检测

作者&#xff1a;李素琴、吴练练、宫德馨、胡珊、陈奕云、朱晓云、李夏、于红刚 效果视频链接&#xff1a;https://www.xhnj.com/m/video/1008384.htm 小结 从算法的角度来说&#xff0c;作为2020发布的论文&#xff0c;使用的技术是比较落后的了。一个息肉检测项目&#xff0…

win32汇编环境,窗口程序中基础列表框的应用举例

;运行效果 ;win32汇编环境,窗口程序中基础列表框的应用举例 ;比如在窗口程序中生成列表框&#xff0c;增加子项&#xff0c;删除某项&#xff0c;取得指定项内容等 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;以下是ASM文件 ;>>>>>>>>>>>…

Lora理解QLoRA

Parameter-Efficient Fine-Tuning (PEFT) &#xff1a;节约开销的做法&#xff0c;fine-tune少量参数&#xff0c;而不是整个模型&#xff1b; Low-Rank Adaptation (LoRA) &#xff1a;是PEFT的一种&#xff1b;冻结原参数矩阵&#xff0c;只更新2个小参数矩阵。 原文经过对比…

YOLOv5训练长方形图像详解

文章目录 YOLOv5训练长方形图像详解一、引言二、数据集准备1、创建文件夹结构2、标注图像3、生成标注文件 三、配置文件1、创建数据集配置文件2、选择模型配置文件 四、训练模型1、修改训练参数2、开始训练 五、使用示例1、测试模型2、评估模型 六、总结 YOLOv5训练长方形图像详…

基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Titans 架构中的记忆整合:Memory as a Context;Gated Memory;Memory as a Layer

Titans 架构中的记忆整合 Titans 架构中的记忆整合 Memory as a Context(MAC)变体:在处理长序列数据时,将序列分段,对于当前段 S ( t ) S^{(t)}