uniapp-uniCloud的基本使用(编写云存储的地区级联选择器)

news/2024/2/24 8:37:27/文章来源:https://blog.csdn.net/qq_63358859/article/details/135543091

目录

新建项目,创建 uniCloud 服务空间并关联

1. 新建项目

2. 创建 uniCloud 服务空间并关联

manifest.json内未配置Appld,请重新获取后再

云数据库的使用

城市选择和云数据库 

介绍

云端数据

DB Schema概述


新建项目,创建 uniCloud 服务空间并关联

1. 新建项目

勾选 启用uniCloud

在这个文件夹上点击右键,关联云服务空间

 

2. 创建 uniCloud 服务空间并关联

新建云服务空间

选择开启不同收费版本

新建成功

选择关联

关联成功

manifest.json内未配置Appld,请重新获取后再


uniCloud本地调试服务启动失败,错误信息为:manifest.json内未配置Appld,请重新获取后再试

新建uniapp项目会出现以下报错,说明还没有创建APPID。


解决办法:
打开DCloud开发者中心,新建APPid即可,地址:https://dev.dcloud.net.cnicon-default.png?t=N7T8https://dev.dcloud.net.cn/

1.创建应用,请先保证之前没有创建过,直接点击获取可能会将原有的配置覆盖掉。

2.如果是新项目没有创建过APPID可以自己忽略第一步,直接点击获取即可,系统会自动根据你的项目名称创建出一个新的应用APPI

云数据库的使用

在项目的unicloud文件夹上点击右键,打开unicloud控制台,

点击创建

 

创建一张中国城市表

完成之后,我们可以看到数据表就建立好了。 

 

可以查看表结构

 

下载表结构,右键,下载所有DB Schema

这一步是可选的(但是当我们用官网的表时候,一定要记得下载) 

 

城市选择和云数据库 

要使用hbuliderx运行到浏览器才可以关联,不能使用命令行


 

<uni-data-picker> 是一个选择类datacom组件。

支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。

候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。

<uni-data-picker> 组件尤其适用于地址选择、分类选择等选择类。

<uni-data-picker> 支持本地数据、云端静态数据(json),uniCloud云数据库数据。

<uni-data-picker> 可以通过JQL直连uniCloud云数据库,配套DB Schema,可在schema2code中自动生成前端页面,还支持服务器端校验。

在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。

介绍

注意事项

为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。

  • 组件需要依赖 sass 插件 ,请自行手动安装
  • <uni-data-picker> 内部包含了弹出层组件 <uni-data-pickerview> 外层的布局可能会影响弹出层,详情
  • 云端数据需要关联服务空间
  • 下面示例中使用的表 opendb-city-china(中国城市省市区数据,含港澳台), 在uniCloud控制台使用opendb创建,详情

 

云端数据

step-searhBooleantrue/falsetrue分步查询时,点击节点请求数据
step-search-urlString--分步查询时,动态加载云端数据url格式,https://xxx.com/{parentValue}(当前版本暂不支持)
self-fieldString--分步查询时当前字段名称
parent-fieldString--分步查询时父字段名称
collectionString--表名。支持输入多个表名,用 , 分割
fieldString--查询字段,多个字段用 , 分割
whereString--查询条件,内容较多,另见jql文档:详情
orderbyString--排序字段及正序倒叙设置

 

  • collection:保存和云数据库字段一致
  •  field:查询的字段
  • orderby:排序

分步查询 

  • step-searh 点击节点请求数据
  • self-field  当前字段名称
  •  parent-field 父字段名称
<template><view><uni-data-picker placeholder="请选择地址" popup-title="请选择城市" collection="opendb-city-china" field="code as value, name as text" orderby="value asc" :step-searh="true" self-field="code" parent-field="parent_code"@change="onchange" @nodeclick="onnodeclick"></uni-data-picker></view>
</template>
<script>export default {data() {return {}},methods: {onchange(e) {const value = e.detail.value},onnodeclick(node) {}}}
</script>

 

DB Schema概述

DB Schema是基于 JSON 格式定义的数据结构的规范。

每张表/集合,都有一个表名.schema.json的文件,来描述表的信息、字段的信息。

一个表的简单schema.json示例如下

{"bsonType": "object", // 固定节点"description": "该表的描述","required": [], // 必填字段列表"properties": { // 该表的字段清单"_id": { // 字段名称,每个表都会带有_id字段"description": "ID,系统自动生成"// 这里还有很多字段属性可以设置},"field2": { // 字段2,每个表都会带有_id字段"description": ""// 这里还有很多字段属性可以设置}}
}

DB Schema有很多重要的作用:

  • 描述数据表结构。一目了然的阅读每个表、每个字段的用途。
  • 设置字段的默认值(defaultValue/forceDefaultValue),比如服务器当前时间、当前用户id等。
  • 设定字段值域能接受的格式(validator),比如数字、字符串、布尔值,是否可为空,还可以指定的数据要求的正则格式,不符合的格式无法入库。
  • 设定字段之间的约束关系(fieldRules),比如字段结束时间需要晚于字段开始时间。
  • 设定多个表的关联关系,字段间映射关系(foreignKey),将多个表按一个虚拟联表直接查询,大幅简化联表查询。
  • 设定数据操作权限(permission)。什么样的角色可以读/写哪些数据,都可以在这里配置。
  • 根据schema自动生成前端界面(schema2code),包括列表、详情、新建和编辑页面,自动处理校验规则。

除schema外jql还支持使用js编写schema扩展,在数据的增删改查时触发相应的触发器,详见:DB schema 扩展

MongoDB支持通过 $jsonSchema 操作符在插入和更新文档时进行结构验证(非空、类型校验等), $jsonSchema 支持 JSON Schema的草案4,包括core specification和validation specification。uniCloud在MongoDB基础上进行了JSON Schema扩展。

编写DB Schema是uniCloud的数据库开发的重要环节。但必须通过JQL操作数据库才能发挥DB Schema的价值

所以注意,在云函数中使用传统MongoDB API操作数据库时DB Schema不生效。不管在客户端还是云端,都必须使用JQL操作数据库。

  • 如果你的应用可以通过clientDB完成,那么这样将无需编写服务器代码,整体开发效率会极大提升。客户端操作数据库时必须完全编写DB Schema,尤其权限部分。

  • 如果应用的权限系统比较复杂,使用clientDB不如使用云对象方便,也应该编写好除了权限部分以外的其他的schema。这样联表查询、tree查询、默认值、值域校验等其他功能仍然可以方便使用。

    具体来说,如自己在云函数中编写权限控制代码,则需要把DB Schema的权限都设为false,在云函数中将操作角色设为admin(通过setuser API),以跳过schema的权限验证。

    当然,云函数中代码控制的权限和DB Schema中的权限也可以混合使用,简单权限交由DB Schema处理,负责权限再编写代码处理。

所以建议开发者编写好schema,无论云端还是前端操作数据库。最多是云函数处理权限时忽略schema中的权限部分。

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

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

相关文章

统计学-R语言-4.3

文章目录 前言直方图茎叶图箱线图练习 前言 本篇介绍的是数值型数据怎么进行数据可视化&#xff0c;本篇介绍的有直方图、茎叶图、箱线图。 直方图 直方图&#xff08;Histogram&#xff09;用于描述连续型变量的频数分布&#xff0c;实际应用中常用于考察变量的分布是否对称…

Java零基础——Vue基础篇

1.【熟悉】Vue简介 1.1 简介 它是一个构建用户界面单页面的框架 Vue是一个前端框架 https://www.pmdaniu.com/#file UI网站 UI 一般开发者使用蓝湖 工具 看着UI图 写接口 https://lanhuapp.com/web/#/item 是一个轻量级的MVVM&#xff08;Model-View-ViewModel&#xff…

maven管理使用

maven基本使用 一、简介二、配置文件三、项目结构maven基本标签实践(例子) 四、pom插件配置五、热部署六、maven 外部手动加载jar打包方式Maven上传私服或者本地 一、简介 基于Ant 的构建工具,Ant 有的功能Maven 都有,额外添加了其他功能.本地仓库:计算机中一个文件夹,自己定义…

Linux实操学习

Linux常用操作 一、帮助命令1. man1.1 基本语法1.2 快捷键1.3 注意事项 2. help2.1 基本语法2.2 注意事项 3. 常用快捷键 二、文件目录类1. 常规操作1.1 pwd1.2 cd1.3 ls 2. 文件夹操作2.1 mkdir2.2 rmdir 3. 文件操作3.1 touch3.2 cp3.3 rm3.4 mv 4. 文件查看4.1 cat4.2 more4…

国内外好用的 LLM 列表

视频来源&#xff1a;https://www.bilibili.com/video/BV1c64y157Qm/?vd_source1e841703c91b5b77fd20e5707bae49d2 下图是测试括号闭合能力的得分

windows系统下docker软件中使用ubuntu发行版本的linux系统

1.软件下载 官网下载地址 下载安装之后&#xff0c;再去微软商店下载wsl软件&#xff0c;可以直接用&#xff0c;或者也可以使用命令行拉取&#xff08;下面会讲&#xff09; 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言&#xff1a;输入 winr 打开命令行进行下面…

软件测试|使用Python抓取百度新闻的页面内容

简介 作为技术工程师&#xff0c;在繁忙的工作中我们不一定有时间浏览发生的热点新闻&#xff0c;但是懂技术的我们不需要访问网站来看当下发生的大事&#xff0c;我们可以使用网络爬虫的技术来获取当下最新最热的新闻&#xff0c;本文就来介绍一下使用Python抓取一下百度新闻…

鸿蒙APP和Android的区别

鸿蒙&#xff08;HarmonyOS&#xff09;和Android是两个不同的操作系统&#xff0c;它们有一些区别&#xff0c;包括架构、开发者支持、应用生态和一些设计理念。以下是鸿蒙APP和Android APP之间的一些主要区别&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#…

码牛课堂首推——鸿蒙南北双向开发学习路线图标准版~

鸿蒙&#xff01;鸿蒙&#xff01;鸿蒙&#xff01; 要说2023-2024年IT圈最火爆的名词&#xff0c;一定是鸿蒙&#xff01; 2023年9月25日&#xff0c;华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本&#xff0c;这意味着鸿蒙原生应用开发将彻底摆脱Android手机系…

了解Python中的requests.Session对象及其用途

前言 在Python的网络编程中&#xff0c;requests库是一个非常流行的HTTP客户端库&#xff0c;用于发送各种类型的HTTP请求。在requests库中&#xff0c;requests.Session对象提供了一种在多个请求之间保持状态的方法本文将探讨Python中的requests.Session对象及其用途&#xf…

大数据Doris(五十六):SQL函数之地理位置函数

文章目录 SQL函数之地理位置函数 一、​​​​​​​ST_AsText(GEOMETRY geo)

动态规划day09(打家劫舍,树形dp)

目录 198.打家劫舍 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难 213.打家劫舍II 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难 337.打家劫舍 III(树形dp) 看到题目的第一想法 看到代码随想录之后的想法 自己实…

cad的模型怎么打散导入3d---模大狮模型网

将CAD中的模型打散并导入3D建模软件&#xff0c;需要以下步骤&#xff1a; 将CAD中的模型进行分组或分层&#xff1a;在CAD中&#xff0c;将模型按照不同的组或层进行分组或分层。这样可以方便地控制每个部分的显示和隐藏&#xff0c;在导入3D建模软件后&#xff0c;也可以更方…

鸿蒙开发-UI-渲染控制

鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 鸿蒙开发-UI-组件-状态管理 鸿蒙开发-UI-应用-状态管理 文章目录 前言 一、渲染控制概述 二、条件渲染 1.使用规则 2.更新机制 三、循环渲染 1.接口…

POI-tl 知识整理:整理1 -> 利用模板向word中写入数据

1 文本传值 Testpublic void testText() throws Exception {XWPFTemplate template XWPFTemplate.compile("D:\\Idea-projects\\POI_word\\templates.docx");Map<String, Object> map new HashMap<>();map.put("title", "Hi, girl"…

Python 自学(八) 之模块

目录 1. import语句导入模块 P206 2. from ... import 语句导入模块 P207 3. 模块的搜索目录 sys.path P209 4. 以主程序的形式执行 __name__ P212 5. python中的包 P213 1. import语句导入模块 P206 同一目录下&…

AI教我学编程之C#类的基本概念(1)

前言 在AI教我学编程之C#类型 中&#xff0c;我们学习了C#类型的的基础知识&#xff0c;而类正是类型的一种. 目录 区分类和类型 什么是类&#xff1f; 对话AI 追问 实操 追踪属性的使用 AI登场 逐步推进 提出疑问 药不能停 终于实现 探索事件的使用 异步/交互操作 耗时操…

nginx代理七牛云http资源,节省https费用(亲测有效)

七牛云https费用太高了&#xff0c;通过配置服务器https代理到http访问&#xff01; location ~ /qiniu/(.*) { proxy_pass http://qiniu.myweb.cn/$1; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarde…

小程序学习-13

生命周期函数&#xff1a;自动按次序执行 onLoad和onReady比较常用在onReady中可以改标题&#xff08;如下图&#xff09; WXS是用来帮助开发者渲染页面结构的 过滤器&#xff1a;渲染数据之前&#xff0c;对数据做一层包装处理&#xff0c;过滤器处理的结果最终会渲染到页面上…

SpringBoot-项目部署

SpringBoot项目部署可以通过将项目打成可执行的jar包或war包来实现&#xff0c;也可以使用容器化技术如Docker将项目部署到云平台中。在部署时需要注意配置文件的位置和启动参数的设置&#xff0c;同时确保目标环境中的Java版本与项目所需的Java版本一致。部署完成后&#xff0…