写一个菜谱网站,数据库应该怎么设计?AI回答我动手!

news2025/1/15 8:39:00

大部分问题使用chatglm4-9b进行回答,总体效果不错,大家可以来试试。关于如何使用ChatGLM4-9b模型,可以参考:在启智AI平台实践ChatGLM4-9B聊天机器人@MindSpore-CSDN博客

设计数据库

问题

写一个菜谱网站,数据库应该怎么设计?

回答

设计一个菜谱网站数据库时,需要考虑数据的结构化、扩展性和性能。以下是一个基本的数据库设计方案,包括几个主要的数据表及其字段:

### 1. 用户表(Users)
- `user_id`:主键,唯一标识一个用户
- `username`:用户名,唯一
- `password`:用户密码,加密存储
- `email`:用户邮箱
- `created_at`:用户创建时间
- `updated_at`:用户最后更新时间

### 2. 菜谱表(Recipes)
- `recipe_id`:主键,唯一标识一个菜谱
- `user_id`:外键,关联到用户表,表示菜谱的创建者
- `title`:菜谱标题
- `description`:菜谱描述
- `ingredients`:所需食材,可以是一个JSON字段或者单独的食材表
- `instructions`:烹饪步骤,可以是一个文本字段或者步骤表
- `image_url`:菜谱图片链接
- `created_at`:菜谱创建时间
- `updated_at`:菜谱最后更新时间

### 3. 食材表(Ingredients)
- `ingredient_id`:主键,唯一标识一个食材
- `name`:食材名称
- `category`:食材分类(如蔬菜、肉类、调料等)
- `unit`:食材计量单位(如克、升、个等)

### 4. 步骤表(Steps)
- `step_id`:主键,唯一标识一个步骤
- `recipe_id`:外键,关联到菜谱表,表示步骤所属的菜谱
- `step_number`:步骤顺序
- `description`:步骤描述

### 5. 分类表(Categories)
- `category_id`:主键,唯一标识一个分类
- `name`:分类名称(如家常菜、外国菜等)

### 6. 用户收藏表(UserFavorites)
- `favorite_id`:主键,唯一标识一个收藏
- `user_id`:外键,关联到用户表,表示收藏者
- `recipe_id`:外键,关联到菜谱表,表示收藏的菜谱

### 7. 评论表(Comments)
- `comment_id`:主键,唯一标识一条评论
- `recipe_id`:外键,关联到菜谱表,表示评论所属的菜谱
- `user_id`:外键,关联到用户表,表示评论者
- `content`:评论内容
- `created_at`:评论创建时间

### 数据库设计注意事项:
- **规范化**:确保数据表遵循第三范式,避免数据冗余。
- **索引**:为常用查询字段(如用户名、邮箱、菜谱标题等)创建索引,提高查询效率。
- **安全性**:密码等敏感信息应加密存储,确保数据安全。
- **扩展性**:设计时应考虑未来可能的扩展,如增加新的字段或表。

这个设计方案是一个基础框架,根据实际需求,可能还需要添加其他表或字段,例如用户角色、菜谱标签、菜谱评分等。

创建数据库

问题

创建一个数据库,输出python下mysql语句,数据库有如下内容:

### 1. 用户表(Users)
- `user_id`:主键,唯一标识一个用户
- `username`:用户名,唯一
- `password`:用户密码,加密存储
- `email`:用户邮箱
- `created_at`:用户创建时间
- `updated_at`:用户最后更新时间

### 2. 菜谱表(Recipes)
- `recipe_id`:主键,唯一标识一个菜谱
- `user_id`:外键,关联到用户表,表示菜谱的创建者
- `title`:菜谱标题
- `description`:菜谱描述
- `ingredients`:所需食材,可以是一个JSON字段或者单独的食材表
- `instructions`:烹饪步骤,可以是一个文本字段或者步骤表
- `image_url`:菜谱图片链接
- `created_at`:菜谱创建时间
- `updated_at`:菜谱最后更新时间

### 3. 食材表(Ingredients)
- `ingredient_id`:主键,唯一标识一个食材
- `name`:食材名称
- `category`:食材分类(如蔬菜、肉类、调料等)
- `unit`:食材计量单位(如克、升、个等)

### 4. 步骤表(Steps)
- `step_id`:主键,唯一标识一个步骤
- `recipe_id`:外键,关联到菜谱表,表示步骤所属的菜谱
- `step_number`:步骤顺序
- `description`:步骤描述

### 5. 分类表(Categories)
- `category_id`:主键,唯一标识一个分类
- `name`:分类名称(如家常菜、外国菜等)

回答 

以下是创建上述数据库和表的MySQL语句:

```sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS FoodRecipesDB;
USE FoodRecipesDB;

-- 创建用户表
CREATE TABLE IF NOT EXISTS Users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- 创建菜谱表
CREATE TABLE IF NOT EXISTS Recipes (
    recipe_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    ingredients TEXT, -- 假设使用JSON存储食材
    instructions TEXT,
    image_url VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

-- 创建食材表
CREATE TABLE IF NOT EXISTS Ingredients (
    ingredient_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    category VARCHAR(255) NOT NULL,
    unit VARCHAR(50) NOT NULL
);

-- 创建步骤表
CREATE TABLE IF NOT EXISTS Steps (
    step_id INT AUTO_INCREMENT PRIMARY KEY,
    recipe_id INT NOT NULL,
    step_number INT NOT NULL,
    description TEXT NOT NULL,
    FOREIGN KEY (recipe_id) REFERENCES Recipes(recipe_id)
);

-- 创建分类表
CREATE TABLE IF NOT EXISTS Categories (
    category_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);
```

这些语句将创建一个名为`FoodRecipesDB`的数据库,并在其中创建五个表:`Users`、`Recipes`、`Ingredients`、`Steps`和`Categories`。每个表都有相应的字段和约束,包括外键约束来维护表之间的关系

已经创建好数据库后,下一个问题是:

python怎么连接和处理数据库

问题:

python怎么连接和处理数下面创建好的数据库

```sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS FoodRecipesDB;
USE FoodRecipesDB;

-- 创建用户表
CREATE TABLE IF NOT EXISTS Users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- 创建菜谱表
CREATE TABLE IF NOT EXISTS Recipes (
    recipe_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    ingredients TEXT, -- 假设使用JSON存储食材
    instructions TEXT,
    image_url VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

```

回答:

要连接和处理上述创建的数据库,你可以使用Python的`mysql-connector-python`库来连接MySQL数据库,并使用SQL语句来执行查询和操作。以下是一个示例代码,展示如何连接到数据库,创建用户,插入数据,以及查询数据。

首先,确保你已经安装了`mysql-connector-python`库。如果没有安装,可以通过以下命令安装:

```bash
pip install mysql-connector-python
```

然后,你可以使用以下Python代码来连接数据库并执行操作:

import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password, db_name):
    connection = None
    try:
        connection = mysql.connector.connect(
            host=host_name,
            user=user_name,
            passwd=user_password,
            database=db_name
        )
        print("Connection to MySQL DB successful")
    except Error as e:
        print(f"The error '{e}' occurred")
    return connection

def execute_query(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        connection.commit()
        print("Query executed successfully")
    except Error as e:
        print(f"The error '{e}' occurred")

def main():
    connection = create_connection("localhost", "your_username", "your_password", "FoodRecipesDB")
    
    # 创建用户
    create_user_query = """
    INSERT INTO Users (username, password, email) 
    VALUES ('john_doe', 'password123', 'john@example.com')
    """
    execute_query(connection, create_user_query)
    
    # 创建菜谱
    create_recipe_query = """
    INSERT INTO Recipes (user_id, title, description, ingredients, instructions, image_url) 
    VALUES (1, 'Chicken Curry', 'A delicious chicken curry recipe.', 
            '{"ingredients": ["chicken", "tomatoes", "onions", "curry powder"]}', 
            'Cook the chicken, then add the tomatoes and onions.', 
            'http://example.com/chicken_curry.jpg')
    """
    execute_query(connection, create_recipe_query)
    
    # 查询菜谱
    select_recipe_query = "SELECT * FROM Recipes"
    execute_query(connection, select_recipe_query)
    
    # 关闭连接
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL connection is closed")

if __name__ == "__main__":
    main()

请确保替换`your_username`和`your_password`为你的MySQL用户名和密码。这段代码首先创建了一个数据库连接,然后执行了创建用户和菜谱的SQL语句,最后查询了菜谱表并关闭了数据库连接。

添加用户

问题

在mysql中,创建用户,并赋予某个数据库的权限,应该怎么操作?

回答

input:在mysql中,创建用户,并赋予某个数据库的权限,应该怎么操作?  

在MySQL中,创建用户并赋予某个数据库的权限通常涉及以下步骤:

1. 登录到MySQL服务器。
2. 使用现有的管理员账户(如root)。
3. 创建一个新的用户。
4. 为该用户分配权限。
5. 刷新权限。

以下是具体的SQL命令示例:

```sql
-- 登录到MySQL服务器
mysql -u root -p

-- 创建一个新的用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

-- 选择数据库
USE your_database_name;

-- 为新用户分配权限
GRANT SELECT, INSERT, UPDATE, DELETE ON your_database_name.* TO 'newuser'@'localhost';

-- 刷新权限,使上述权限生效
FLUSH PRIVILEGES;
```

请将上述命令中的`newuser`替换为你希望创建的用户名,`password`替换为你希望设置的密码,`your_database_name`替换为你希望赋予权限的数据库名称。

注意:
- 用户名`newuser`和数据库名称`your_database_name`可以根据你的需求进行修改。
- 权限(SELECT, INSERT, UPDATE, DELETE)可以根据需要调整,例如,如果你只需要读取权限,则可以只授予SELECT权限。
- `localhost`指定了用户可以访问MySQL服务器的地址。如果你希望用户可以从任何地址访问,可以将`localhost`替换为`%`。
- 在实际操作中,出于安全考虑,建议使用更复杂的密码,并限制用户只能从特定的IP地址访问MySQL服务器。

代码实践

创建数据库

-- 创建数据库
CREATE DATABASE IF NOT EXISTS FoodRecipesDB;
USE FoodRecipesDB;

-- 创建用户表
CREATE TABLE IF NOT EXISTS Users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- 创建菜谱表
CREATE TABLE IF NOT EXISTS Recipes (
    recipe_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    ingredients TEXT, -- 假设使用JSON存储食材
    instructions TEXT,
    image_url VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

-- 创建食材表
CREATE TABLE IF NOT EXISTS Ingredients (
    ingredient_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    category VARCHAR(255) NOT NULL,
    unit VARCHAR(50) NOT NULL
);

-- 创建步骤表
CREATE TABLE IF NOT EXISTS Steps (
    step_id INT AUTO_INCREMENT PRIMARY KEY,
    recipe_id INT NOT NULL,
    step_number INT NOT NULL,
    description TEXT NOT NULL,
    FOREIGN KEY (recipe_id) REFERENCES Recipes(recipe_id)
);

-- 创建分类表
CREATE TABLE IF NOT EXISTS Categories (
    category_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

可以看到全部成功创建

root@localhost [FoodRecipesDB]> show tables;
+-------------------------+
| Tables_in_foodrecipesdb |
+-------------------------+
| categories              |
| ingredients             |
| recipes                 |
| steps                   |
| users                   |
+-------------------------+
5 rows in set (0.00 sec)

chatglm4的mysql语句生成真的很不错!

创建用户并分配权限

-- 创建一个新的用户food

CREATE USER 'food'@'localhost' IDENTIFIED BY 'foodpassword';

-- 为新用户分配权限

GRANT SELECT, INSERT, UPDATE, DELETE ON FoodRecipesDB.* TO 'food'@'localhost';

-- 刷新权限,使上述权限生效

FLUSH PRIVILEGES;

-- 创建一个新的用户food

CREATE USER 'food'@'localhost' IDENTIFIED BY 'foodpassword';

-- 为新用户分配权限

GRANT SELECT, INSERT, UPDATE, DELETE ON FoodRecipesDB.* TO 'food'@'localhost';

-- 刷新权限,使上述权限生效

FLUSH PRIVILEGES;

python操作数据库

首先安装mysql的python库,本人系统里的python是python3.11

pip3.11 install mysql-connector-python

 将下面代码存为food.py文件:

import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password, db_name):
    connection = None
    try:
        connection = mysql.connector.connect(
            host=host_name,
            user=user_name,
            passwd=user_password,
            database=db_name
        )
        print("Connection to MySQL DB successful")
    except Error as e:
        print(f"The error '{e}' occurred")
    return connection

def execute_query(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        connection.commit()
        print("Query executed successfully")
    except Error as e:
        print(f"The error '{e}' occurred")

def main():
    connection = create_connection("localhost", "food", "foodpassword", "FoodRecipesDB")
    
    # 创建用户
    create_user_query = """
    INSERT INTO Users (username, password, email) 
    VALUES ('Bruce_Lee', 'password123', 'bruce@example.com')
    """
    execute_query(connection, create_user_query)
    
    # 创建菜谱
    create_recipe_query = """
    INSERT INTO Recipes (user_id, title, description, ingredients, instructions, image_url) 
    VALUES (1, 'Chicken Curry', 'A delicious chicken curry recipe.', 
            '{"ingredients": ["chicken", "tomatoes", "onions", "curry powder"]}', 
            'Cook the chicken, then add the tomatoes and onions.', 
            'http://example.com/chicken_curry.jpg')
    """
    execute_query(connection, create_recipe_query)
    
    # 查询菜谱
    select_recipe_query = "SELECT * FROM Recipes"
    execute_query(connection, select_recipe_query)
    
    # 关闭连接
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL connection is closed")

if __name__ == "__main__":
    main()

运行

python3.11 food.py 

报错:

python3.11 food.py
Connection to MySQL DB successful
Query executed successfully
Query executed successfully
The error 'Unread result found' occurred

原来需要连接数据库时加上这句参数: buffered=True 

最终代码

import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password, db_name):
    connection = None
    print(f"create_conection user_name:{user_name} db_name:{db_name}")
    try:
        connection = mysql.connector.connect(
            host=host_name,
            user=user_name,
            passwd=user_password,
            database=db_name,
            buffered=True,
        )
        print("Connection to MySQL DB successful")
    except Error as e:
        print(f"The error '{e}' occurred")
    return connection

def execute_query(connection, query):
    cursor = connection.cursor()
    print(f"execute_query query:{query}")
    try:
        cursor.execute(query)
        connection.commit()
        print("Query executed successfully")
        if query.strip().upper().startswith("SELECT"):  
            results = cursor.fetchall()  # 仅对 SELECT 语句读取结果 
#             print(f"query results:{results}")
    except Error as e:
        print(f"The error '{e}' occurred")

def main():
    connection = create_connection("localhost", "food", "foodpassword", "FoodRecipesDB")
    
    # 创建用户
    create_user_query = """
    INSERT INTO Users (username, password, email) 
    VALUES ('Bruce_Lee', 'password123', 'bruce@example.com')
    """
    print(f"创建用户")
    execute_query(connection, create_user_query)
    
    # 创建菜谱
    create_recipe_query = """
    INSERT INTO Recipes (user_id, title, description, ingredients, instructions, image_url) 
    VALUES (1, 'Chicken Curry', 'A delicious chicken curry recipe.', 
            '{"ingredients": ["chicken", "tomatoes", "onions", "curry powder"]}', 
            'Cook the chicken, then add the tomatoes and onions.', 
            'http://example.com/chicken_curry.jpg')
    """
    print(f"创建菜谱")
    execute_query(connection, create_recipe_query)
    
    # 查询菜谱
    select_recipe_query = "SELECT * FROM Recipes;"
    print(f"查询菜谱")
    execute_query(connection, select_recipe_query)
    
    # 关闭连接
    if connection.is_connected():
#         cursor.close()
        connection.close()
        print("MySQL connection is closed")

if __name__ == "__main__":
    main()

成功运行后输出:

python3.11 food.py
create_conection user_name:food db_name:FoodRecipesDB
Connection to MySQL DB successful
创建用户
execute_query query:
    INSERT INTO Users (username, password, email) 
    VALUES ('Bruce_Lee', 'password123', 'bruce@example.com')
    
The error '1062 (23000): Duplicate entry 'Bruce_Lee' for key 'users.username'' occurred
创建菜谱
execute_query query:
    INSERT INTO Recipes (user_id, title, description, ingredients, instructions, image_url) 
    VALUES (1, 'Chicken Curry', 'A delicious chicken curry recipe.', 
            '{"ingredients": ["chicken", "tomatoes", "onions", "curry powder"]}', 
            'Cook the chicken, then add the tomatoes and onions.', 
            'http://example.com/chicken_curry.jpg')
    
Query executed successfully
查询菜谱
execute_query query:SELECT * FROM Recipes;
Query executed successfully
MySQL connection is closed

 调试

execute_query query:SELECT * FROM Recipes The error 'Unread result found' occurred

错误解释:

这个错误通常出现在使用MySQL数据库时,当你尝试执行一个查询,而之前的查询结果集尚未被读取完毕时。MySQL数据库驱动会阻止新的查询执行,以保证之前的结果集不会被覆盖。

解决方法:

  1. 确保你在执行新的查询之前完全读取了之前的结果集。这可以通过调用如mysqli_fetch_assoc()PDOStatement::fetchAll()等方法来实现。

  2. 如果你使用的是MySQLi,可以在执行新的查询前调用mysqli_free_result()来释放结果集。

  3. 如果使用的是PDO,可以调用PDOStatement::closeCursor()来关闭游标,释放结果集。

示例代码(MySQLi):

$result = mysqli_query($conn, "SELECT * FROM Recipes");
 
// 读取并处理结果集
while ($row = mysqli_fetch_assoc($result)) {
    // 处理每一行
}
 
// 释放结果集
mysqli_free_result($result);
 
// 现在可以安全执行新的查询
mysqli_query($conn, "SELECT * FROM OtherTable");

这是php代码,python里,可以试试cursor.close()

但是试过,没效果

最终在CSDN查到,需要加上buffered=True这句:

connection = mysql.connector.connect(
            host=host_name,
            user=user_name,
            passwd=user_password,
            database=db_name,
            buffered=True,
        )

加上之后,问题解决!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mongodb-7.0.14分片副本集超详细部署

mongodb介绍: 是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片副本)集群。 环境准备 系统系统 BC 21.10 三台服务器:192.168.123.247/248/249 安装包&#xff1a…

STM32L010F4 最小系统设计

画一个 STM32L010F4 的测试板子...... by 矜辰所致前言 最近需要用到一个新的 MCU: STM32L010F4 ,上次测试的 VL53L0X 需要移植到这个芯片上,网上一搜 STM32L010F4,都是介绍资料,没有最小系统,使用说明等。…

element plus的el-select分页

摘要&#xff1a; el-select的数据比较多的时候&#xff0c;必须要分页&#xff0c;处理方案有全部数据回来&#xff0c;或者添加搜索功能&#xff0c;但是就有个问题就是编辑的时候回显问题&#xff0c;必须要保证select的数据有对应的id与name匹配回显&#xff01; <el-fo…

Pytest基于fixture的参数化及解决乱码问题

我们知道&#xff0c;Pytest是Python技术栈下进行自动化测试的主流测试框架。支持灵活的测试发现、执行策略&#xff0c;强大的Fixture夹具和丰富的插件支持。 除了通过pytest的parametrize标签进行参数化外&#xff0c;我们通过fixture的param参数也可以比较方便地实现参数化…

Android从上帝视角来看PackageManagerService

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章&#xff0c;技术文章也可以有温度。 前言 阅读该篇之前&#xff0c;建议先阅读下面的系列文章&#xff1a; Android深入理解包管理–PackageManagerService和它的“小伙伴…

SPI

Flash-W25Q64 -- 这一章的重点是重点是知道标准SPI通信&#xff0c;地址会算&#xff0c;FLASH时序要会看 目录 Flash-W25Q64 回顾 FLASH SPI简介 单片机&#xff08;32&#xff09;上的SPI W25Q64 模块之间应该怎么通信呢&#xff1f;-- 看时序图 代码编写 更改代码…

Vue Data UI——Vue 3 数据可视化组件库

文章目录 1、Vue Data UI2、核心特点2.1.Vue 3 的深度集成2.2 丰富的可视化组件2.3 灵活的定制性2.4 易于集成2.5 文件导出功能2.6 多主题支持3、如何在项目中使用 Vue Data UI?3.1 安装 Vue Data UI3.2 全局注册组件3.3 局部引入组件3.4 使用通用组件3.5 TypeScript 集成4、总…

城市交通系统优化策略:透视拥堵之困,探索流畅之道

在快速城市化的今天&#xff0c;交通拥堵已成为众多大中型城市的“城市病”&#xff0c;严重影响居民生活质量、经济运行效率及环境质量。本文旨在深度剖析城市交通拥堵的根源&#xff0c;并提出一系列行之有效的优化策略&#xff0c;旨在构建更加顺畅、高效、绿色的城市交通系…

R语言实现logistic回归曲线绘制

方式一&#xff1a;编制函数 x<-rnorm(10000)#设置随机种子 #编写绘图函数代码快 f <- function(x){y 1/(1 exp(-x))plot(x,y)}#sigmoid函数 f(x)​ 方式二&#xff1a;Sigmoid函数代码 x<-rnorm(10000)#设置随机种子 #编写绘图函数代码块 #y<-1/(1exp(-x)) y&…

【NOIP1997 普及组第一题】棋盘问题

题目背景 NOIP1997 普及组第一题 题目描述 设有一个NM 方格的棋盘 (1≤N≤100,1≤M≤100) 求出该棋盘中包含有多少个正方形、多少个长方形&#xff08;不包括正方形&#xff09;。 例如&#xff1a;当 N2,M3时&#xff1a; 正方形的个数有 8 个&#xff1a;即边长为 1 的正…

北斗短报文平板终端|军用三防平板|国产加固平板|防爆工业平板

在当今数字化浪潮的推动下&#xff0c;各行各业对智能终端设备的需求日益多样化与专业化&#xff0c;特别是在工业领域&#xff0c;一款集通信、定位、导航及耐用性于一身的设备显得尤为重要。北斗三代短报文工业平板电脑正是应此需求而生&#xff0c;它不仅是一款普通的平板电…

睿赛德科技正式推出RT-Thread开源 4+服务,助力企业用户发展

RT-Thread始于2006 年&#xff0c;是100%由中国开发者编写的开源嵌入式操作系统。经过10多年的发展&#xff0c;已经成为国内最流行的嵌入式操作系统&#xff0c;广泛应用于工业、 电力、轨道交通、智慧城市、智能家居、穿戴、车载、甚至航空航天等领域。 RT-Thread的成功基于对…

基金好书入门阅读笔记《基金作战笔记:从投基新手到配置高手的进阶之路》笔记3

公募基金的分类方式按投资范围分 80%以上资产投资于股票的&#xff0c;叫股票基金&#xff1b;80%以上资产投资于债券的&#xff0c;叫债券基金&#xff1b;80% 以上资产投资于其他基金的&#xff0c;叫FOF; 80%以上资产投资于货币市场的&#xff0c;叫货币基金&#xff1b;以上…

【AI绘画】Midjourney进阶:中心点构图详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 &#x1f4af;前言&#x1f4af;什么是构图为什么Midjourney要使用构图 &#x1f4af;中心点构图中心点构图的特点使用场景提示词书写技巧测试 &#x1f4af;小结 &#x1f4af;前言 【AI绘画】Midj…

freertos的任务管理

任务函数 任务被实现为C函数。它们唯一特别的地方是它们的原型&#xff0c;它必须返回void并接受void指针参数。以下是函数原型。 void ATaskFunction( void *pvParameters );每个任务本身都是一个小程序。它有一个入口点&#xff0c;通常会在无限循环中永远运行&#xff0c;…

MWD天气图像多分类数据集,用于图像分类-共6个类别,共60000张图像数据 ,含有模型

MWD天气图像多分类数据集&#xff0c;用于图像分类- MWD天气图像多分类数据集&#xff0c;用于图像分类-共6个类别&#xff0c;共60000张图像数据 &#xff0c;含有模型 MWD天气图像多分类数据集及模型介绍 数据集概述 名称&#xff1a;MWD天气图像多分类数据集图像数量&…

大规模多传感器滑坡检测数据集,利用landsat,哨兵2,planet,无人机图像等多种传感器采集数据共2w余副图像,mask准确标注滑坡位置

大规模多传感器滑坡检测数据集&#xff0c;利用landsat&#xff0c;哨兵2&#xff0c;planet&#xff0c;无人机图像等多种传感器采集数据共2w余副图像&#xff0c;mask准确标注滑坡位置 大规模多传感器滑坡检测数据集介绍 数据集概述 名称&#xff1a;大规模多传感器滑坡检测…

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 目录 AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 一、简单介绍 二、Docker 下载安…

界面控件Kendo UI for jQuery 2024 Q3亮点 - 支持切换编辑模式

随着最新的2024 Q3版本&#xff0c;Progress使用户能够使用现成的页面模板和构建块更快地构建令人惊叹的应用程序&#xff0c;使您的Telerik和Kendo UI开发体验更好。 Telerik和Kendo UI 2024 Q3版本将焦点放在新推出的页面模板和构建块上&#xff0c;每个页面模板和构建块都预…

SaaS架构:中央库存系统架构设计

大家好&#xff0c;我是汤师爷~ 近年来&#xff0c;越来越多的零售企业大力发展全渠道业务。在销售额增长上&#xff0c;通过线上的小程序、直播、平台渠道等方式&#xff0c;拓展流量变现渠道。在会员增长方面&#xff0c;通过多样的互动方式&#xff0c;全渠道触达消费者&am…