`

ruby on rails 开发web应用程序【1

阅读更多
ruby on rails 开发web应用程序【1】

虽然还是测试版本,但 Ruby on Rails 已经成为进行 Web 应用程序开发的一个新途径。Rails 的成功之处在于能够自动化大部分常见类型的 Web 应用程序的创建,而且在您希望添加定制或者有特殊要求时,并不会受到限制。不仅如此,同那些只能完成 Web 应用程序单方面需求的自由软件(Free Software)库相比,Rails 包含了非常完整的一套工具。<o:p></o:p>

Ruby on Rails 正在令整个 Web 开发领域受到震憾。让我们首先了解底层的技术: <o:p></o:p>

  • Ruby 是一门免费的、简单的、直观的、可扩展的、可移植的、解释的脚本语言,用于快速而简单的面向对象编程。类似于 Perl,它支持处理文本文件和执行系统管理任务的很多特性。<o:p></o:p>
  • Rails 是用 Ruby 编写的一款完整的、开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应用程序。<o:p></o:p>

作为一个完整的框架,这意味着 Rails 中的所有的层都是为协同工作而构造的,所以您不必自己再重复,可以完全只使用一门单一的语言。在 Rails 中,所有内容(从模板到控制流再到业务逻辑)都是用 Ruby 编写的。Rails 支持基于配置文件和注释的反射(reflection)和运行时扩展。<o:p></o:p>

本文详细介绍了 Rails 的组成部分,并介绍了它的工作原理。<o:p></o:p>

Rails 介绍
关于 Rails,首先需要理解的是它的模型/视图/控制器(model/view/controllerMVC)架构。虽然这种技术不是 Rails 所特有的 —— 甚至不是 Web 应用程序所特有的(相对于其他程序),但是 Rails 具有非常清晰而专一的 MVC 思维方式。如果您并不使用 MVC 方法,那么 Rails 的用处将大为降低(与遵循其模式的情况相比)。 <o:p></o:p>

模型
Rails
应用程序的模型部分主要是它所使用的底层数据库。实际上,在很多情形中 Rails 应用程序正是以一种受管理的方式对关系型数据库管理系统(RDBMS)中的数据执行操作的一个途径。 <o:p></o:p>

ActiveRecord 类是 Rails 的一个核心组成部分,它将关系型表映射为 Ruby 对象,使其成为控制器可以操作并能在视图中显示的数据。Rails 应用程序特别倾向于使用广为应用的 MySQL 数据库,不过也有与很多其他 RDBMS 的绑定,比如 IBM® DB2®<o:p></o:p>

如果您愿意,您可以添加 Ruby 代码来在应用程序模型中执行额外的验证,加强数据关联,或者触发其他操作。应用程序的 app/models/ 目录中的 Ruby 文件能够调用 ActiveRecord 的多种验证方法。不过,您也可以将模型代码留作一个存根,而只是依赖保存数据的 RDBMS 的约束。例如,我在这个示例中所开发的应用程序只包含这个骨架模型代码(至少在开始时是): <o:p></o:p>

清单 1. 骨架模型 app/models/contact.rb<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
class Contact < ActiveRecord::Base<o:p></o:p>
<o:p> </o:p>
end<o:p></o:p>
<o:p> </o:p>

控制器
控制器以其抽象形式执行应用程序的逻辑。也就是说,应用程序的 app/controllers/ 目录中的 Ruby 脚本能把模型数据导入为变量,保存回去,或对其进行修改和处理。不过,控制器不关心用户如何适当地显示或者输入数据。在通常的 MVC 模型中,这可以让用户能够以多种方式与同一控制器进行交互:本地 GUI Web 界面,以及视力较弱的人使用的语音界面都可以与相同的控制器进行交互。 <o:p></o:p>

不过,Rails 不像那样非常通用;相反,它仅局限于在 Web 页中提供和收集数据。虽然如此,但是您可以修改那些 Web 页的布局 —— 颜色、字体、表格、样式表单,等等 —— 与控制器代码无关。 <o:p></o:p>

视图
Rails
视图是我们编写 Ruby 代码的地方。Rails 包含有一门用于 .rhtml 的非常好的模板语言,它将纯粹的 HTML 与嵌入的 Ruby 代码组合起来。 Rails 应用程序界面的最表层外观通常是由 CSS 样式表单控制的。.rhtml 格式是一种增强的 HTML。实际上,一个简单的 HTML 文件本身也是一个合法的 RHTML 模板,不过,不应该忽略 RHTML 为您提供的脚本控制。 <o:p></o:p>

RHTML 是真正的模板格式 —— 不仅是在 HTML 中嵌入代码的方式 —— 这是一种更为有效的方法。如果您熟悉 PHP,那么可以考虑 PHP 本身与 Smarty 模板之间的对照。也就是说,嵌入的脚本只是将代码与未被解释的 HTML 混合在一起;当需要向客户机输出某些内容时,代码部分仍要负责执行 print 语句。 <o:p></o:p>

与之不同的是,模板引擎向 HTML 添加了一组定制的标签,让您能够将条件、循环以及其他逻辑作为增强的 HTML 标记的一部分来表示。 <o:p></o:p>

生成代码
Rails
所提供的工具主要是一组代码生成器。相对于那些强迫我使用严格的工作空间和 IDE 的开发环境,我更喜欢这种方法。 Rails 不会妨碍您,但是却会为您省去大部分手工编程的工作 —— 或者,通过提供“可自由获得的”初步(first-pass)支架(scaffolding),至少帮助您轻松将需要手工编码的工作分为多个部分。 <o:p></o:p>

支架 概念是 Rails 中的核心概念。非常简单的应用程序可能完全不用编码,让 Rails 在运行时动态地生成客户机 HTML 页面。第一遍生成代码时创建的只是粗略的支架;接下来您可以生成更详细的能够定制的控制器、视图和模型。不过在开始时不需要生成太多。 <o:p></o:p>

Rails 对其文件的组织是固定的而且非常普通的,不过这种组织相对严格。如果您试图强行使用其他文件和代码组织方式,那么您可能得付出努力去修改 Rails 环境。再者说,我找不到不使用 Rails 所提供的组织方式的理由;在大部分情况下,它“fits your brain”(Ruby 的支持者喜欢这样讲)。例如,如果您从头开始设计一个框架(至少如果您以“Ruby 方式”思考),那么这些目录名称及其组织可能与您的选择非常接近。 <o:p></o:p>

构建一个简单的应用程序
Ruby on Rails Web 站点上有一些教程,可以完整地引导您创建一个简单的 Rails 应用程序(见 参考资料)。这里的示例程序与之类似,因为正确开始构建 Rails 应用程序的方式是确定的。由于此介绍的长度相对较短,所以我 极力 推荐那些较长的教程中的一篇,以使得您能够打好更为全面的基础。 <o:p></o:p>

示例应用程序是一个基本的通讯录。它演示了创建应用程序的一般步骤: <o:p></o:p>

1.      生成模型(在此步骤中创建 MySQL 数据库和表)。<o:p></o:p>

2.      生成应用程序(包括生成基本代码和目录)。<o:p></o:p>

3.      启动 Rails(并配置数据库的访问)。<o:p></o:p>

4.      创建一些内容(包括生成支架模型和控制器,并告知控制器去使用那个支架)。<o:p></o:p>

我们将详细研究每一个步骤。 <o:p></o:p>

生成 AddressBook 模型
对于任何应用程序,您需要做的第一件事情是为它创建一个存放数据的数据库。技术上这个步骤不必最先进行,不过需要在早期完成;应该在编写任何应用程序代码(甚至是自动生成的代码)之前创建数据库,这应该是显然的。所以,让我们在 MySQL 数据库中创建一个数据库,并在此数据库中创建第一张表。(阅读其他文档以了解如何安装运行 MySQL 或其他 RDBMS。)<o:p></o:p>

我们假定 MySQL 已经安装并且可用。 <o:p></o:p>

清单 2. 创建 MySQL 数据库和表<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites]$ cat AddressBook.sql<o:p></o:p>
<o:p> </o:p>
CREATE DATABASE IF NOT EXISTS AddressBook;<o:p></o:p>
<o:p> </o:p>
USE AddressBook;<o:p></o:p>
<o:p> </o:p>
CREATE TABLE IF NOT EXISTS contacts (<o:p></o:p>
<o:p> </o:p>
  id smallint(5) unsigned NOT NULL auto_increment,<o:p></o:p>
<o:p> </o:p>
  name varchar(30) NOT NULL default '',<o:p></o:p>
<o:p> </o:p>
  created_on timestamp(14) NOT NULL,<o:p></o:p>
<o:p> </o:p>
  updated_on timestamp(14) NOT NULL,<o:p></o:p>
<o:p> </o:p>
  PRIMARY KEY (id),<o:p></o:p>
<o:p> </o:p>
  UNIQUE KEY name_key (name)<o:p></o:p>
<o:p> </o:p>
) TYPE=MyISAM COMMENT='List of Contacts';<o:p></o:p>
<o:p> </o:p>
[~/Sites]$ cat AddressBook.sql | mysql<o:p></o:p>
<o:p> </o:p>

在这第一张表中有些地方需要注意。最重要的是每一张表都必须拥有一个 id 列,列名称就是 idRails 使用主键列 id 来完成各种记录保持和引用任务。域 created_on updated_on 是不需要的,不过,如果您使用了它们,那么 Rails 会自动地“在后台”维护它们;在大部分情况下使用这些时间戳没有什么不好。所以,您还要添加的“真正” 数据就只是通讯录内容的名称。 <o:p></o:p>

另一个稍微古怪的方面是,Rails 为不同的内容使用单数和复数的名称。根据上下文,各种条目会被重命名为单数或复数形式。表的名称应该使用复数格式。我没有使用不规则复数单词的经验;datum data 等单词可能会令 Rails 出现问题。 <o:p></o:p>

生成 AddressBook 应用程序
既然已经拥有了一个能够交互的数据库,就可以创建 AddressBook 应用程序了。第一个步骤是简单地运行 rails 来生成基本目录和支架代码: <o:p></o:p>

清单 3. 生成基本代码和目录<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites]$ rails AddressBook<o:p></o:p>
<o:p> </o:p>
create<o:p></o:p>
<o:p> </o:p>
create  app/apis<o:p></o:p>
<o:p> </o:p>
create  app/controllers<o:p></o:p>
<o:p> </o:p>
create  app/helpers<o:p></o:p>
<o:p> </o:p>
create  app/models<o:p></o:p>
<o:p> </o:p>
create  app/views/layouts<o:p></o:p>
<o:p> </o:p>
create  config/environments<o:p></o:p>
<o:p> </o:p>
create  components<o:p></o:p>
<o:p> </o:p>
[...]<o:p></o:p>
<o:p> </o:p>
create  public/images<o:p></o:p>
<o:p> </o:p>
create  public/javascripts<o:p></o:p>
<o:p> </o:p>
create  public/stylesheets<o:p></o:p>
<o:p> </o:p>
create  script<o:p></o:p>
<o:p> </o:p>
[...]<o:p></o:p>
<o:p> </o:p>
create  README<o:p></o:p>
<o:p> </o:p>
create  script/generate<o:p></o:p>
<o:p> </o:p>
create  script/server<o:p></o:p>
<o:p> </o:p>
[...]<o:p></o:p>
<o:p> </o:p>

我删减了运行 rails 的输出;所忽略了那些行只是提醒您已经创建的各种文件和目录。在您的系统上试运行它,浏览生成的所有文件。我已经在代码中显示了一些最重要的文件和目录。 <o:p></o:p>

运行 Rails
创建了 AddressBook/ 目录和所需要的子目录后,您需要执行一次惟一的初始配置。首先,通过修改 YAML 配置文件来设置数据库,如下: <o:p></o:p>

清单 4. 配置数据库访问<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites]$ cd AddressBook<o:p></o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ head -6 config/database.yml # after editing<o:p></o:p>
<o:p> </o:p>
development:<o:p></o:p>
<o:p> </o:p>
  adapter: mysql<o:p></o:p>
<o:p> </o:p>
  database: AddressBook<o:p></o:p>
<o:p> </o:p>
  host: localhost<o:p></o:p>
<o:p> </o:p>
  username: some_user<o:p></o:p>
<o:p> </o:p>
  password: password_if_needed<o:p></o:p>
<o:p> </o:p>

最后,您需要提供数据。Rails 附带了它自己的单一功能的 Web 服务器,即 WEBrick,非常适用于我们的试验。您可能也会遵循 Ruby on Rails Web 站点上的说明来配置 Apache 或者其他服务器,以通过 FCGI(或者普通的 CGI,但是普通的 CGI 将会较慢)向 Rails 应用程序提供服务。 <o:p></o:p>

清单 5. 启动 WEBrick 服务器<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ ruby script/server -d<o:p></o:p>
<o:p> </o:p>
=> Rails application started on http://0.0.0.0:3000<o:p></o:p>
<o:p> </o:p>
[2005-03-21 17:57:38] INFO  WEBrick 1.3.1<o:p></o:p>
<o:p> </o:p>
[2005-03-21 17:57:38] INFO  ruby 1.8.2 (2004-12-25) [powerpc-darwin7.8.0]<o:p></o:p>
<o:p> </o:p>

创建一些内容
要在 WEBrick 端口上看到一个欢迎页面,先前的步骤就足够了。例如,在我的本地系统中,现在可以访问 http://gnosis-powerbook.local:3000/。不过,为了操作定制数据库,需要生成稍微多一些代码。可以使用脚本 generate 来完成此任务,这个脚本创建在 AddressBook/ 应用程序目录中: <o:p></o:p>

清单 6. 支架模型和控制器代码的生成<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ ruby script/generate model contact<o:p></o:p>
<o:p> </o:p>
      exists  app/models/<o:p></o:p>
<o:p> </o:p>
      exists  test/unit/<o:p></o:p>
<o:p> </o:p>
      exists  test/fixtures/<o:p></o:p>
<o:p> </o:p>
      create  app/models/contact.rb<o:p></o:p>
<o:p> </o:p>
      create  test/unit/contact_test.rb<o:p></o:p>
<o:p> </o:p>
      create  test/fixtures/contacts.yml<o:p></o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ ruby script/generate controller contact<o:p></o:p>
<o:p> </o:p>
      exists  app/controllers/<o:p></o:p>
<o:p> </o:p>
      exists  app/helpers/<o:p></o:p>
<o:p> </o:p>
      create  app/views/contact<o:p></o:p>
<o:p> </o:p>
      exists  test/functional/<o:p></o:p>
<o:p> </o:p>
      create  app/controllers/contact_controller.rb<o:p></o:p>
<o:p> </o:p>
      create  test/functional/contact_controller_test.rb<o:p></o:p>
<o:p> </o:p>
      create  app/helpers/contact_helper.rb<o:p></o:p>
<o:p> </o:p>

注意,在相应的表名中,这里应该使用单数的 contact,而不是复数的 contacts<o:p></o:p>

现在需要编辑一个或多个生成的文件(只需稍加编辑)来让控制器去使用支架: <o:p></o:p>

清单 7. 告知控制器去使用支架<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ cat app/controllers/contact_controller.rb<o:p></o:p>
<o:p> </o:p>
class ContactController < ApplicationController<o:p></o:p>
<o:p> </o:p>
  model :contact<o:p></o:p>
<o:p> </o:p>
  scaffold :contact<o:p></o:p>
<o:p> </o:p>
end<o:p></o:p>
<o:p> </o:p>

现在可以通过类似于 http://rails.server/contact/ URL (在我的测试用例中是 http://gnosis-powerbook.local:3000/contact/)来查看和修改数据库的内容。

 

ruby on rails 开发web应用程序【2】

创建可定制的内容
前面的代码创建了一个查看和修改数据库的功能完全的界面,不过,所有格式化、显示以及业务逻辑(比如本来就有的)都由 Rails 动态完成,没有任何重大修改。为了创建一些更为定制的内容,需要生成更多一些代码。现在我们所需要的是让 Rails 显式地写出它在运行时隐式地生成的所有支架,以使得我们能够修改它。 <o:p></o:p>

8. 显式控制器和视图代码生成<o:p></o:p>

<o:p> </o:p>
<o:p> </o:p>
[~/Sites/AddressBook]$ ruby script/generate scaffold Contact<o:p></o:p>
<o:p> </o:p>
  dependency  model<o:p></o:p>
<o:p> </o:p>
      [...]<o:p></o:p>
<o:p> </o:p>
      create  app/views/contacts<o:p></o:p>
<o:p> </o:p>
      exists  test/functional/<o:p></o:p>
<o:p> </o:p>
      create  app/controllers/contacts_controller.rb<o:p></o:p>
<o:p> </o:p>
      create  test/functional/contacts_controller_test.rb<o:p></o:p>
<o:p> </o:p>
      create  app/helpers/contacts_helper.rb<o:p></o:p>
<o:p> </o:p>
      create  app/views/layouts/contacts.rhtml<o:p></o:p>
<o:p> </o:p>
   
分享到:
评论

相关推荐

    java毕设项目之ssm基于SSM的高校共享单车管理系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    YOLO算法-贴纸检测数据集-212张图像带标签-部分覆盖-未涵盖-完全覆盖.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    zigbee CC2530无线自组网协议栈系统代码实现协调器按键控制终端LED灯和继电器动作.zip

    1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2530上运行,如果是其他型号芯片,请自行移植。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。

    手语图像分类数据集【已标注,约2,500张数据】

    手语图像分类数据集【已标注,约2,500张数据】 分类个数【36】:0、1、a、b等【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 CNN分类网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】

    CNCAP 2024打分表

    CNCAP 2024打分表

    基于小程序的智慧校园管理系统源代码(java+小程序+mysql+LW).zip

    系统可以提供信息显示和相应服务,其管理智慧校园管理系统信息,查看智慧校园管理系统信息,管理智慧校园管理系统。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    【图像去噪】基于matlab PolSAR GWLS滤波器图像去噪【含Matlab源码 9937期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    影音互动科普网站-JAVA-基于SpringBoot的哈利波特书影音互动科普网站设计与实现(毕业论文)

    影音互动科普网站功能描述 影音互动科普网站旨在通过多媒体形式(视频、音频、互动内容等)传播科学知识,提高公众的科学素养。该网站结合娱乐与教育,提供易于理解的科普内容,吸引不同年龄层次的用户参与和学习。以下是该网站的主要功能描述: 1. 用户注册与登录 用户注册:用户可以通过电子邮箱、手机号或社交账号(如微信、微博等)注册,提供基本信息并设置密码。 用户登录:支持通过注册的账号登录,保障个人信息的安全性,并提供自动登录功能。 2. 科普视频与音频库 视频内容:网站提供各类科普视频,包括短视频、纪录片、讲座、实验演示等,覆盖物理、化学、生物、地理、天文等多个领域。 音频内容:提供科普音频节目,如科普广播、播客、专题讲座等,便于用户在日常生活中进行学习。 视频分类:按科目、难度、年龄层、时长等维度对视频和音频进行分类,帮助用户更精准地找到感兴趣的内容。 字幕与多语言支持:提供字幕、翻译和多语种版本,帮助不同语言的用户学习。 3. 互动问答与讨论区 专家问答:用户可以向科普专家提问,专家提供详尽的解答,解决用户的科学疑惑。 社区讨论:用户可以在视频下方或专题页面中发表评论、提问或与其他用户

    倪海厦讲义及笔记,易学数据测算

    倪海厦讲义及笔记,易学数据测算

    【组合数学答案】组合数学-苏大李凡长版-课后习题答案

    内容概要:本文档是《组合数学答案-网络流传版.pdf》的内容,主要包含了排列组合的基础知识以及一些经典的组合数学题目。这些题目涵盖了从排列数计算、二项式定理的应用到容斥原理的实际应用等方面。通过对这些题目的解析,帮助读者加深对组合数学概念和技巧的理解。 适用人群:适合初学者和有一定基础的学习者。 使用场景及目标:可以在学习组合数学课程时作为练习题参考,也可以在复习考试或准备竞赛时使用,目的是提高解决组合数学问题的能力。 其他说明:文档中的题目覆盖了组合数学的基本知识点,适合逐步深入学习。每个题目都有详细的解答步骤,有助于读者掌握解题思路和方法。

    管理系统开发指南:功能要求、技术栈及安全控制

    内容概要:本文是一篇完整的管理系统开发指南,详细介绍了功能要求、技术栈选择、数据库设计、用户界面搭建以及安全控制等方面的内容。功能要求包括用户管理、权限控制、数据管理、系统日志、通知与消息、统计分析和扩展模块。使用的技术栈涵盖了后端(Java、Python、C#等)和前端(React、Vue.js、Angular等)技术,以及数据库设计和安全控制措施。 适合人群:具备一定开发经验的软件工程师和技术管理人员。 使用场景及目标:适用于企业级管理系统开发项目,旨在构建一个高效、安全且易于扩展的系统。开发者可以参考本文档进行系统的设计和实现,确保系统满足业务需求。 其他说明:本文档提供了详细的步骤和最佳实践,帮助开发者更好地理解和应用管理系统开发的各种技术。通过结合实际案例和实践经验,本文档能够为开发者提供有价值的指导。

    听器听力损伤程度分级表.docx

    听器听力损伤程度分级表.docx

    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度 关键词:微网优化调度 条件风险价值 合作博弈 纳什谈判 参考文档:A cooperative Stack

    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度 关键词:微网优化调度 条件风险价值 合作博弈 纳什谈判 参考文档:《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》完美复现 仿真平台:MATLAB yalmip+cplex+mosek 主要内容:代码主要做的是一个基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网动态定价与调度策略,提出了一个双层能源管理框架,实现多个微网间的P2P能源交易,上层为零商的动态定价模型,目标是社会福利最大化;下层是多个产消者的合作博弈模型,优化各产消者的能量管理策略。 同时,采用纳什谈判法对多个产消者的合作剩余进行公平分配,还考虑了运行风险,采用条件风险价值(CVaR)随机规划方法来描述零商的预期损失。 求解方面,双层模型被基于KKT条件转为单层模型,模型可以高效求解。 这段代码是一个基于合作型Stackelberg博弈的微网

    YOLO算法-监控数据集-873张图像带标签-警方-警车-救护车-消防车-跌倒的人-消防员.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (175526236)【动漫网页设计】源码免费分享,让你的网站更有趣!

    20块钱买的【动漫网页设计】源码,免费分享出来啦,如果要积分那是系统自动涨的啦。 内容概要:本资源是一份动漫网页设计的源码,价格仅为20元,作者将其免费分享给大家。该源码包含了动漫元素的设计,包括背景、图标、按钮等,同时也提供了一些常见的网页布局和交互效果。通过该资源,可以学习到动漫网页设计的基本原理和技巧。 适用人群:本资源适用于对动漫网页设计感兴趣的人群,包括网页设计师、UI设计师、前端开发工程师等。同时,对于想要学习动漫网页设计的初学者也非常适用。 使用场景及目标:该资源可以用于学习和实践动漫网页设计的技巧和原理。通过学习该源码,可以了解到动漫网页设计的基本要素和设计思路,同时也可以借鉴其中的设计元素和交互效果,应用到自己的网页设计中。 其他说明:本资源是作者自己设计的,经过了多次修改和优化,具有一定的参考价值。同时,作者也将其价格设置的非常低,希望更多的人可以学习到动漫网页设计的技巧和方法。如果您对该资源有任何疑问或建议,欢迎在评论区留言,作者会尽快回复。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    C++程序设计-参考答案

    自考 本科 C++程序设计-课本 参考答案

    每周质量安全排查报告.docx

    每周质量安全排查报告.docx

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    内存搜索工具(易).rar

    内存搜索工具(易).rar

    2024 AGM Meritech Market Section (External).pdf

    AI大模型研究相关报告

Global site tag (gtag.js) - Google Analytics