StrApi基本使用

1.创建项目(这里只使用默认的sqllite)

点击链接进入官网查看先决条件,看看自己的node,python等是否符合版本要求

运行以下命令进行创建项目(网慢导致下载失败的话可以尝试使用手机热点给电脑使用,我就是这样解决的,也可以看我csdn的资源这里进行下载)

yarn create strapi-app my-project --quickstart
// 或者使用下面的
npx create-strapi-app@latest my-project --quickstart

安装完成后稍等一会会自动启动项目,如果是使用的我的压缩包的话解压后在项目里面使用yarn run develop或者npm run develop进行运行

2.创建管理员账户

项目运行后会生成一个地址,到浏览器打开地址是一个管理员登录界面,初次进入项目相当于注册账号了,因此第一次进入项目切记账号密码不要忘记,使用可视化工具打开.tmp/data.db会发现本质上是在admin_users表里面新增了一条管理员数据,但是邮箱和密码是被加密了

3.将项目改成中文界面

  • 找到src/admin/app.example.js(用于参考的配置文件)
  • ctrl+c/ctrl+v复制一模一样的一份到同级目录下
  • 将新复制的改名app.js
  • 将app.js里面的第二十七行的zh-Hans注释放开
  • 重启项目
  • 根据生成的管理界面的链接再次打开界面
  • 登录后点击左下角的头像部分
  • 点击Profile
  • 最下面一行第一个选择框是选择语言的,这时候会发现多了个中文选择
  • 勾选即可(原来是没有中文选择的,默认英文)
  • 点击右上角的save即可

4.创建数据表,添加字段

4.1数据表创建

Strapi提供了两种内容类型

  • Collection Types:数据集合
  • Single Types:单个数据

这里根据实际需求创建对应的数据表即可

注意:最下面的一栏的组件是字段的组合,可以用它来创建可重用的字段集

4.2字段创建

根据实际需求的数据,选择对应的类型,并添加字段

注意:

  1. 数据默认会添加ID作为标记
  2. 数据默认会添加创建日期字段(因此这部 分可以不用自行创建)

创建单个数据表步骤:

  • 点击左侧的Content-Type Builder
  • 点击Create new single type
  • 在弹出的框设置下显示名称(右边两个框会自动生成,这里不用管)
  • 可以看下高级设置,根据自己需求选择,这里默认勾选了草稿,这里不需要,就先去掉了,本地化也不需要
  • 点击继续(这时候已经创建好了单个数据表,后面是给这张表添加字段了)
  • 例如新增个文本类型字段,点击文本,输入字段名,选择是较短类型文字还是较长类型文字
  • 点击高级设置,将字段的限制更为严谨点(这里我只勾选了必须的和唯一的)
  • 点击添加另一个字段或者点击完成后,在界面上找到添加一个新字段都是新增字段
  • 直到符合需求的字段都写好后,点击完成即可

这里说一下媒体类型

  • 选择类型为媒体文件
  • 写完名称后面可以选择单一或者是多个媒体(像头像之类的直接选择单一头像)
  • 点击高级设置,选择类型,图片类型的只限制图片即可,也就是选择第一个
  • 点击完成

这样就新建好了一个test表,里面有三个字段了

在这里插入图片描述

点击保存才会真正保存起来,各位不要忘了点击右上角的保存按钮

点击了保存之后,会重启项目,稍微等待重启即可

创建多个数据表步骤

  • 点击左侧的Content-Type Builder
  • 点击->创建一个新的 Content Type
  • 跟刚刚一样,填写表名,点击高级设置,草稿取消,点击继续
  • 然后就是添加字段了,跟刚刚一样(这里就不重复了)

删除表步骤

  • 点击左侧的Content-Type Builder
  • 点击某个表进到页面
  • 点击表名旁边的编辑
  • 点击删除即可(然后等服务器重启)

手动添加数据

  • 点击左侧的内容管理器
  • 点击某一需要修改数据的表
  • 修改即可

5.添加媒体库(相当于一个仓库,可以存一堆媒体文件,并且可以留着使用)

  • 点击媒体库
  • 点击新建文件夹(也可以直接上传,个人建议新建文件夹分类管理)
  • 点击上传即可(这里支持本地上传和URL链接上传)
  • 手动新增数据为媒体文件数据时就可以选择媒体库里面的文件了

6.开放接口

默认接口没开,需要开放接口才可以访问接口

默认提供REST API风格的接口

开放接口步骤如下:

  • 找到左侧设置点一下
  • 点击用户及权限插件下面的角色
  • 找到public(公共的)
  • 点击编辑
  • 下面权限名称和我们表名称相同的就是对应的表权限了
  • 点击旁边的箭头展开(这时就可以看到对应的接口类型了)
  • 例如这里先开放查询接口,点击find,右侧菜单就会同步出现一个接口路由啦
  • 点击右上角保存(注意看管理系统端口开放的是1337端口)
  • 打开ApiFox调用get请求,地址为(http://localhost:1337/api/test)

在这里插入图片描述

在这里插入图片描述

populate参数

通过上面接口 可以发现媒体文件没有被查询出来,这是由于Strapi由于为了性能考虑,默认不会将媒体文件查询出来

默认情况下,查询结果不填充任何关系、媒体字段、组件或动态区域通过 population 查询参数为查询填充各种字段

核心用法:

  1. populate=*填充所有
  2. populate[0]=字段名1&populate[1]=字段名2 :按需填充字段

使用 populate 参数获取上一步没有查询到的媒体字段

使用方式如下

  • 在ApiFox中get请求地址如下:http://localhost:1337/api/test?populate[0]=icon
  • 在ApiFox中get请求地址如下:http://localhost:1337/api/test?populate=*

有多个媒体参数情况下

  • 在ApiFox中get请求地址如下:http://localhost:1337/api/test?populate[0]=icon&populate[1]=icon2

然后就会发现媒体文件也能查询出来了

创建分类表并设置数据

创建分类的集合数据表

  • 点击左侧的Content-Type Builder

  • 点击->创建一个新的 Content Type

  • 设置显示名称为tag(因为是集合类型,生成接口会自动拼成tags)

  • 点击高级设置,取消草稿模式,点击继续

  • 选择文本字段,起名为title,较短的文字

  • 点击高级设置,选择必须的,唯一的

  • 点击完成并点击右上角保存

  • 点击内容管理器,选择刚刚创建的tag类型

  • 点击右侧创建新条目

  • 创建新条目,输入名字后点击保存,然后点击发布,再次点击集合页面就会发现已经添加了

  • 我这里重复创建四次代表四个分类(美食,运动,萌宠,美景)

  • 找到左侧设置点一下

  • 点击用户及权限插件下面的角色

  • 找到public(公共的)

  • 点击编辑

  • 下面权限名称和我们表名称相同的就是对应的表权限了

  • 点击旁边的箭头展开(这时就可以看到对应的接口类型了)

这里也就是集合类型和单张表的区别啦,可以看到接口类型和单张表相比会多出几个

在这里插入图片描述

  • 这里我选择find和findOne,然后右边自动生成接口路由
  • 点击保存
  • 去apifox查询接口
  • 执行find接口链接:http://localhost:1337/api/tags

在这里插入图片描述

  • 执行findOne接口链接:http://localhost:1337/api/tags/1

在这里插入图片描述

创建对应的分类的下面的文章表

  • 创建方式跟上面一样
  • 名称选择article
  • 字段名为title(文章标题,text类型,较短文字,必须的,唯一的)
  • cover(封面,媒体类型,图片类型)
  • content(内容,富文本类型)
  • 创建完之后点击保存
  • 跟之前一样去设置这个集合的数据以及开放接口

设置分类表和文章表之间的关系

建立关系字段

关系字段:
关系字段允许与另一个内容类型建立关系,该内容类型必须是集合类型

有6种不同类型的关系
1.单程:内容类型A有一个内容类型B
2.一对一:内容类型A具有并属于一个内容类型B
3.一对多:内容类型A属于多个内容类型B
4.多对一:内容类型B有许多内容类型A
5.多对多:内容类型A具有并属于许多内容类型B
6.多种方式:内容类型A有许多内容类型B

建立关系

  • 点击左侧的content-type-builder
  • 找到tag分类表,点击右上角添加一个新字段
  • 找到引用类型,设置和文章表的关系(这里会有六个图标,分别对应上面介绍的六种类型的关系)
  • 在右侧下拉框选择article(文章表),设置关联的字段名tag
  • 选择第三个图标,也就是一对多的关系
  • 右上角点击保存
  • 点击左侧内容管理器
  • 找到文章表随便点击一个编辑,会发现增加了一个tag标签,下拉就可以看到分类的名称
  • 选择对应的分类
  • 点击保存发布

接口测试

建立了关系之后,就可以在查询的时候通过populate字段查询出建立关系的数据

1.基于文章查询所属分类

  • 使用路径参数id查询出对应的分类(这时候会发现没查出来,出于性能考虑,携带下下面参数才能真正查询出来)
    • 使用查询参数populate[0]=tag查询分类 http://localhost:1337/api/articles/1?populate[0]=tag
  • 使用查询参数populate[1]=cover查询封面 http://localhost:1337/api/articles/1?populate[1]=cover
  • 使用populate=*一并查询 http://localhost:1337/api/articles/1?populate= *

2.基于分类查询出对应文章

  • 使用路径参数id查询出对应的分类

  • 使用populate填充2个字段形式populate[0]=articles查询出文章 http://localhost:1337/api/articles/1?populate[0]=articles

  • 执行完上面第二步以后会发现,关联的文章能查到,但是封面没了(还是出于性能考虑,Strapi默认不会查询多级,可以按照第四步将封面查询出来)

  • http://localhost:1337/api/tags/1?populate[articles][populate][0]=cover
    // 上面这个链接参数意思就是告诉Strapi要查询articles下面的参数[populate][0]代表要查询1个参数,值cover就代表要查询的就是cover这个字段
    

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

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

相关文章

深度神经网络——什么是线性回归?

线性回归是一种用于预测或可视化的算法 两个不同特征/变量之间的关系。 在线性回归任务中,要检查两种变量: 因变量和自变量。 自变量是独立的变量,不受其他变量的影响。 随着自变量的调整,因变量的水平将会波动。 因变量是正在研究…

【计算机毕设】基于SpringBoot的房产销售系统设计与实现 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 随着房地产市场的发展和互联网技术的进步,传统的房产销售模式逐渐向线上转移。设计并实现一个基于Spring Boot的房产销售系统&#xff0…

NFT Insider #132:Solana链上NFT销售总额达到55.49亿美元, The Sandbox成立DAO

引言:NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto (https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、…

VMware虚拟机安装Ubutu

打开vmware按步骤安装 选择安装虚拟机路径 选择下载好的镜像 开启虚拟机 等待 回车确认 空格选择/取消 等待等待好按回车 输入用户名,密码就好了

2024就业寒潮下的挑战与机遇:能否守住饭碗,人工智能能否成为新春天?

前言 随着时代的飞速发展,2024年的就业市场迎来了前所未有的挑战。数以百万计的高校毕业生涌入市场,使得就业竞争愈发激烈。然而,在这股就业寒潮中,我们也看到了新的曙光——人工智能的崛起。这一新兴行业以其独特的魅力和巨大的…

12 FreeRTOS 调试与优化

1、调试 1.1 打印 在FreeRTOS工程中使用了microlib,里面实现了printf函数。 只需要实现一下以下函数即可使用printf。 int fputc(int ch; FILE *f); 假如要从串口实现打印函数: int fputc( int ch, FILE *f ) {//指定串口USART_TypeDef* USARTx USAR…

地质灾害位移应急监测站

地质灾害位移应急监测站是一种专门用于地质灾害预警和应急响应的设施,它能够实时监测和分析山体、建筑物、管道等的位移变化情况。以下是关于地质灾害位移应急监测站的详细介绍: 主要组成部分 传感器:安装于需要监测的位置,用于…

【全开源】Java短剧系统微信小程序+H5+微信公众号+APP 源码

打造属于你的精彩短视频平台 一、引言:为何选择短剧系统小程序? 在当今数字化时代,短视频已经成为人们日常生活中不可或缺的一部分。而短剧系统小程序源码,作为构建短视频平台的强大工具,为广大开发者提供了快速搭建…

html+css web前端 多边形

<!DOCTYPE html><html><head><meta charset"UTF-8"><title>多边形</title><style type"text/css">#pentagon_6_1 {position: absolute;top: 0px;height: 0; width: 100; border-left: 100px solid rgb(255, 255…

机器人动力学模型与MATLAB仿真

机器人刚体动力学由以下方程控制&#xff01;&#xff01;&#xff01; startup_rvc mdl_puma560 p560.dyn 提前计算出来这些“disturbance”&#xff0c;然后在控制环路中将它“抵消”&#xff08;有时候也叫前馈控制&#xff09; 求出所需要的力矩&#xff0c;其中M项代表克服…

堆排序详细理解

目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击&#xff1a;二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …

java中回调与Timer类的使用

回调&#xff1a;回调&#xff08;callback)是一种常见的程序设计模式。在这种模式中&#xff0c;可以指出某个特定事件发生时应该采取的动作。 Timer类&#xff1a;java.swing包中的Timer类&#xff0c;可以使用它在给定的时间间隔时发出通告。如程序中有一个时钟&#xff0c…

水位监测站的工作原理

TH-SW2在雨季&#xff0c;河道和湖泊的水文信息监测对于防洪减灾、水资源管理和环境保护等方面具有至关重要的意义。水文监测站作为实现这一目标的基础设施&#xff0c;发挥着关键作用。水文监测站是观测及搜集河流、湖泊、水库等水体的水文、气象资料的基层水文机构。在雨季&a…

算法与数据结构:红黑树

ACM大牛带你玩转算法与数据结构-课程资料 本笔记属于船说系列课程之一&#xff0c;课程链接&#xff1a; 哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep66799?csourceprivate_space_class_null&spm_id_from333.999.0.0 你也可以选择购买『船说系列课程-年度会…

【计算机毕设】基于Spring Boot的课程作业管理系统 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 课程作业管理系统旨在为教师和学生提供一个便捷的平台&#xff0c;用于发布、提交和评定课程作业。本系统旨在提高作业管理的效率&#xff0c;促进教…

NetMizer 日志管理系统前台RCE漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 NetMizer日志管理系统是一个与NetMizer流量管理设备配合…

nginx的安装002

之前001讲述了nginxyum安装现在讲一下nginx如何本地离线安装 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 首先访问nginx官网&#xff0c;下载。 用wget命令下载&#xff0c; [rootlocalhost ~]# wget -c https://nginx.org/download/nginx-1.26.0.tar.gz …

【网络原理】HTTP|认识请求“报头“|Host|Content-Length|Content-Type|UA|Referer|Cookie

目录 认识请求"报头"(header) Host Content-Length Content-Type User-Agent(简称UA) Referer &#x1f4a1;Cookie&#xff08;最重要的一个header&#xff0c;开发&面试高频问题&#xff09; 1.Cookie是啥&#xff1f; 2.Cookie怎么存的&#xff1f; …

在PostGIS中检查孤线(Find isolated lines in PostGIS)

场景 在PostGIS中有一张线要素表,需要检查该表中的孤线,并且进行自动纠正的计算。 其中孤线定义为两端端点都不在任何其他线的顶点上。 本文介绍在PostGIS中的线要素点,通过函数计算指定线要素表中的孤线,并计算最接近的纠偏位置。 In PostGIS, there is a table of line …

07-操作元素(键盘和鼠标事件)

在前面的文章中重点介绍了一些元素的定位方法&#xff0c;定位到元素后&#xff0c;就需要操作元素了。本篇总结了web页面常用的一些操作元素方法&#xff0c;可以统称为行为事件。 一、简单操作 点击按钮&#xff08;鼠标左键&#xff09;&#xff1a;click()清空输入框&…