CodeWave智能开发平台--02--目标:文档快速阅读--02新手入门

简介: CodeWave智能开发平台--02--目标:文档快速阅读--02新手入门

摘要

本文是网易数帆CodeWave智能开发平台系列的第04篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,并对新手入门的内容重新排序

CodeWave智能开发平台的04次接触

CodeWave参考资源

网易数帆CodeWave开发者社区课程中心

网易数帆CodeWave开发者社区文档中心

网易数帆CodeWave开发者社区考试认证

经过上篇文章的初级入门,对CodeWave低代码平台有了一定的认知,在模板的范围内开发一个特点的程序还是比较容易的,但同时需要说明的是,低代码平台有很多自己的逻辑,如果都学完在操作,实在是需要较长时间,本文是文档快速阅读的第2部分,新手入门☀️☀️

下图是软件项目开发的流程,在进行低代码新手学习时,可以认为主要实现了09编码调试部分。

这部分怎么说呢,从文档的角度来说,已经够详细了,不需要重复,但从学习的连贯性和完整性来说,是需要再抄写一遍的。如果有CodeWave的基础,以下的部分是可以跳过的。

新手入门–CodeWave词典库

平台基础概念

概念 含义
应用 低代码应用是指采用低代码开发平台进行开发的应用程序。相比于传统的代码编写方式,低代码应用开发平台提供了更高层次的抽象和自动化,使得开发者可以通过拖拽、配置等简单的方式创建应用程序
IDE 在低代码平台中,IDE(Integrated Development Environment,集成开发环境)是指可视化开发工具,提供了可视化的界面和拖拽式的元素组件,帮助用户快速、简单地创建应用程序。用户可以使用IDE来设计和创建应用程序的界面,定义应用程序的数据模型和业务逻辑,以及进行调试和部署。低代码平台中的IDE通常具有易用性高、拓展性强、自动化程度高等特点,使得用户可以快速地创建复杂的应用程序,而无需具备专业的编程技能
数据 数据的可视化设计器,支持包括数据源定义、数据模型的定义和修改等功能。通过数据设计器,用户可以定义和管理数据源和数据模型,并将其用于创建数据可视化图表和仪表盘
逻辑 逻辑的可视化设计器,支持包括逻辑流程设计、条件和规则定义、事件触发和处理等功能。通过逻辑设计器,用户可以将业务流程转化为具体的实现代码,从而帮助他们更好地管理和控制业务流程
页面 页面的可视化设计器,支持包括布局设计、组件选择和设置、样式和主题定义等功能。通过页面设计器,用户可以创建和定制各种用户界面,以满足不同的应用程序需求
流程 流程的可视化设计器,支持包括业务流程定义、流程图设计、流程网关设计等功能。通过流程设计器,用户可以将工作流程转化为具体的实现代码,从而帮助他们更好地管理和控制工作流程

新手入门–可视化设计

可视化开发页面区块划分如下图所示,分别提供如下功能:

应用信息与操作:支持应用的预览、发布、自定义主题样式等操作。

目录树:提供流程、页面、逻辑、数据四种可视化设计模块的切换及其下设计内容管理与树形展示。

标签页:支持各个编辑页面的灵活切换与关闭。

画布/操作面板:可视化设计的主要操作区域。

组件/属性面板:组件页签下提供基础组件和扩展组件,方便用户拖拽至画布区进行编辑,属性页签用于编辑组件的相关信息、事件和样式。

信息台:展示日志、问题等应用相关信息。

新手入门–应用开发流程

低代码平台提供应用的全生命周期管理。在整个应用开发过程中,从应用创建,到应用开发迭代,再到应用上线和运维,都是通过可视化的方式进行管理。开发者通过可视化设计器进行数据模型、逻辑、页面、流程的编辑和权限的配置,预览应用进行功能测试,一键发布到生产环境交付使用。

下面按照应用开发流程,进行介绍。

新手入门–低代码应用创建

创建应用可以创建空白应用,也可以基于模板创建应用

新手入门–数据模型设计

概念 含义
数据源 数据源是数据库配置的集合,包含开发环境数据库和生产环境数据库,每个数据源下均可独立管理数据实体
实体 实体是数据的一种载体,允许您将结构化数据持久保存在数据库中并实现数据库模型。每一个实体对应一张数据库表,实体的属性对应数据库表的列
数据结构 数据结构是一种用户自定义的数据类型,用于将多个不同类型的数据组合成一个结构体,类似于传统编程语言 C 中的 struct 定义出的类型
枚举 枚举是一种自定义的数据类型,用于定义一组有穷序列集

创建实体时,会默认自动生成createdTime(创建时间)、createdBy(创建者ID)、updatedTime(更新时间)、updatedBy(更新者ID)4个系统属性,不可修改系统属性类型、默认值等基本信息。

当实体新增一条记录时,createdTime列会自动添加创建时间。

当实体某条记录有数据更新时,updatedTime列会自动添加更新时间

这一个步骤的方式也很简单,现设计好实体,如

属性名称 属性标题 数据类型
id 主键 Long
createdTime 创建时间 DateTime
name 产品名称 String
category 产品分类 String
price 产品价格 Double
purchaseDate 进货日期 Date

再在数据的实体中添加就好

如果需要完成增删改查等操作,只需要在相应的页面这把这个实体拖进去就可以

新手入门–逻辑

我的理解:逻辑就是一个封装好的函数,对于一些入门的简单案例,可以先不用特别考虑这一块,边用边加上即可。

概念 含义
输入参数 传递给逻辑的一组已知的值,用于执行逻辑后续的计算或操作
输出参数 逻辑执行完毕后回传给调用方的值,输出参数仅支持0个或1个
变量 计算机程序中存储数据的一种基本方式。它是一个被命名的内存空间,用于存储能够被程序读取和修改的值。在程序执行期间,可以通过变量名来访问这些值,并对其进行操作
局部变量 限定在某一作用域内的变量,如页面中的局部变量和逻辑中的局部变量,仅支持在当前页面或逻辑中使用
前端全局变量 在低代码平台中,前端全局变量可以存储一些在多个页面之间需要共享的数据,可用于页面之间传递数据
服务端全局变量 服务端全局变量存储了请求会话上下文,包含http的Request、Respose以及当前登录用户信息。
服务端逻辑 应用的各个设计器中均可调用的逻辑
页面逻辑 仅支持被当前页面调用的逻辑
实体逻辑 创建实体后自动生成的逻辑,支持通过调用实体逻辑实现数据库表的增删改查功能
事件逻辑 一种特殊的页面逻辑,为组件或页面下的某个事件所绑定的逻辑。事件逻辑自动带出事件参数,不可添加输出参数,使用者只要聚焦逻辑体设计即可
组件逻辑 组件内部实现的一些方法,如数据表格的reload等,可供组件外部进行调用并实现组件配套功能或效果
系统逻辑 系统逻辑是平台提供的一系列扩展功能,包含流程逻辑、浏览器、认证与权限、配置和文件处理相关逻辑
逻辑分类
页面中的功能由逻辑实现,逻辑按照作用域区分为页面逻辑和服务端逻辑。

页面逻辑:作用于指定前端页面的逻辑,不支持跨页面调用。

服务端逻辑:作用于整个应用,支持被所有逻辑和流程调用,在各页面中的调用需要通过页面逻辑来完成。

逻辑流转

逻辑有开始和结束节点,每个逻辑由多个逻辑项组成,逻辑项按照开始到结束的顺序流有序执行。

内置函数

为了降低开发难度,系统预先定义了一些功能,处理特定场景下的需求,比如字符串处理,日期时间处理等等,这些称之为内置函数;内置函数可以在任何一个逻辑中使用,也可以在动态绑定中使用。

事件逻辑

组件逻辑

页面逻辑

服务端逻辑

服务端逻辑是服务端逻辑,可以在整个应用范围内使用。页面逻辑与服务端逻辑大部分逻辑组件均相同,但仍有部分组件仅可在页面逻辑中使用或仅可在服务端逻辑中使用。

页面逻辑特有组件:弹出消息、跳转页面、JS代码块。

服务端逻辑特有组件:数据查询、SQL查询。

新手入门–页面布局和呈现

具体详见:页面布局和呈现

概念 含义
PC端/H5端 应用程序中的用户界面,它可以是PC端、H5端等不同形式的界面。用户支持在同一个应用中添加并编辑多个端,在不同的端上,用户可以访问和使用应用程序的同一套后端逻辑和数据,且支持各端定义不同的用户界面以适应各类用户场景
页面 用户在浏览器中看到的Web页面。可以包含文本、图像、视频、表格、表单等各类元素,用于向用户展示信息和提供交互功能
子页面 Web页面中的次级页面,用于在父级页面的基础上展示更详细或更具体的内容
面包屑 用于Web页面导航的一种元素,通常位于页面的顶部或者页面主体区域上方,用来显示用户当前所处的位置和路径
事件 用户与Web页面交互时发生的动作,如鼠标点击、键盘输入、页面滚动等。当这些动作发生时,浏览器会触发相应的事件,Web开发者可以通过JavaScript等技术来监听这些事件并做出相应的响应
页面和页面跳转

选中欢迎页,右键点击出现菜单,选择设为默认跳转页。

打开总览页,选中侧边栏项P5-1:社区跳转页面,单击右侧图标设置链接表达式。(和事件一样,会弹出一个框)

选择跳转页面P5_1_CommunityLink(社区跳转页面),可以设置高锚点和页面打开方式,完成设置后,发布预览后即可查看效果。

页面布局

线性布局介绍

布局是页面排版的关键组件,我们以线性布局组件为例,支持如下3种布局模式:

内联布局:将当前元素修改为内联布局模式,各个内联布局模式的元素将默认排布在同一行中,若空间不足以排布下一个内联布局元素,则该元素将会换行。

块级布局:将当前元素修改为块级布局模式,各个块级布局模式的元素之前和之后均会换行。

弹性布局:在弹性布局模式中,子元素可以在任何方向上排布,也可以弹性伸缩其尺寸,既可以增加尺寸以填满未使用的空间,也可以收缩尺寸以避免溢出父元素。

在属性中可以调整布局

变量和动态绑定

变量根据作用域可以分为:

页面变量

逻辑变量

前端全局变量。

页面变量:

包含输入参数和局部变量,仅能被当前页面下的逻辑调用。

右键页面,可以添加局部参数和添加局部变量

逻辑变量:

包含输入参数、输出参数和局部变量,仅能被当前逻辑调用。

这个逻辑暂时还没看懂

前端全局变量:

前端所有页面的全局变量,支持被所有页面调用。若该变量在多个页面下有赋值操作,则某时刻取值该变量时的结果为最近一次的赋值。

动态绑定的过程滤过,见文档

双向绑定

双向绑定滤过,有点类似vue

组件显示条件

有点类似用js写一个if判断,显示是否有下一页等。滤过

未完待续

接下来的文章中,我将按照教程,进行实践,带你从入门敬请期待哦

先分享一个基于python和前端三剑客开发程序的过程

基于代码开发前后端的过程

python构建web服务

flask内容参考:Flask框架入门教程(非常详细)

flask安装与运行测试

安装flask

pip install flask

创建一个webapp.py文件,内容如下

from flask import Flask
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)
#程序实例需要知道每个url请求所对应的运行代码是谁。
#所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
@app.route("/")
#url映射的函数,要传参则在上述route(路由)中添加参数申明
def index():
    return "Hello World!"
# 直属的第一个作为视图函数被绑定,第二个就是普通函数
# 路由与视图函数需要一一对应
# def not():
#     return "Not Hello World!"
# 启动一个本地开发服务器,激活该网页
app.run()

运行代码

python webapp.py

终端输出如下:

& D:/ProgramData/Anaconda3/envs/py10/python.exe d:/zjdemo/webapp.py
 * Serving Flask app 'webapp'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
127.0.0.1 - - [20/Nov/2023 08:20:47] "GET / HTTP/1.1" 200 -     
127.0.0.1 - - [20/Nov/2023 08:20:47] "GET /favicon.ico HTTP/1.1" 404 -

在浏览器输入

http://127.0.0.1:5000

返回如下

flask返回html页面

返回一个html页面+动态渲染

在工程目录下,创建一个templates目录,在

在templates目录下创建一个jsdemo.html,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    fieldset,#d1 {
      padding: 10px;
      width: 300px;
      margin: 0 auto;
    }
  </style>
</head>
<body>
  <form id="form1" name="form1" method="post" action="">
    <fieldset>
      <legend>按时</legend>
      输入表格的行数:<input type="text" id="row" value="3" placeholder="请输入表格的行数" required autofocus><br>
      输入表格的列数:<input type="text" id="col" value="5" placeholder="请输入表格的列数" required autofocus><br>
      <input type="button" id="ok" value="产生表格" onclick="createTable()"/>
    </fieldset>
  </form>
  <div id="d1"></div>
  <script type="text/javascript">
    function createTable(){
      n=1;
      var str="<table width='100%' border='1' cellspacing='0' cellpadding='0'><tbody>";
      var r1=document.getElementById("row").value;
      var c1=document.getElementById("col").value;
      for(i=0;i<r1;i++)
      {
        str=str+"<tr align='center'>";
        for(j=0;j<c1;j++)
        {
          str=str+"<td>"+(n++)+"</td>";
        }
        str=str+"</tr>";
      }
      var d1=document.getElementById("d1");
      d1.innerHTML=str+"</tbody></table>";
    }
    createTable()
  </script>
</body>
</html>

在webapp_html.py中添加如下代码

@app.route("/jsdemo")
def jsdemo():
    return render_template("jsdemo.html")
重新启动web服务,运行代码
```python
python webapp_html.py

输出如下:

(py10) PS D:\zjdemo> & D:/ProgramData/Anaconda3/envs/py10/python.exe d:/zjdemo/webapp_html.py
 * Serving Flask app 'webapp_html'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

在浏览器中输入

http://127.0.0.1:5000/jsdemo

返回为:

此时工程的完整目录如下:

备注:html渲染的过程

说说页面渲染的过程

浏览器渲染流程(精讲)

相关文章
|
13天前
|
Java 开发工具 Maven
开发工具,能力强的伙伴可以直接参考官方文档
该教程详细介绍了如何使用Gluon将JavaFX项目编译成exe文件,涵盖开发工具配置、环境搭建及异常处理。开发工具包括Idea 2023.3、Gluon插件、Git和Maven等。环境搭建需安装VS 2022 Community、JDK 11或17+及GraalVM CE Gluon 22.1.0.1-Final,并配置相应环境变量。通过拉取示例项目、修改`pom.xml`并执行`build.bat`完成编译。教程还提供了异常处理及将编译动作绑定到Maven生命周期的方法。
33 0
|
机器学习/深度学习 存储 人工智能
Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)
Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)
|
14天前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
29 0
|
2月前
|
敏捷开发 弹性计算 测试技术
阿里云云效产品使用合集之应用模板功能如何用于之前已创建的项目的关联
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
C++ 开发者
技术经验分享:dumpbin的使用方法_dumpbin的基础使用
技术经验分享:dumpbin的使用方法_dumpbin的基础使用
99 0
|
4月前
|
开发者 容器
CodeWave智能开发平台--03--目标:应用创建--03页面子页面设计
CodeWave智能开发平台--03--目标:应用创建--03页面子页面设计
|
4月前
|
存储 JavaScript API
《VitePress 简易速速上手小册》第7章 高级功能与动态内容(2024 最新版)(上)
《VitePress 简易速速上手小册》第7章 高级功能与动态内容(2024 最新版)
196 2
|
4月前
|
存储 缓存 自然语言处理
《VitePress 简易速速上手小册》第7章 高级功能与动态内容(2024 最新版)(下)
《VitePress 简易速速上手小册》第7章 高级功能与动态内容(2024 最新版)
115 1
|
4月前
|
数据可视化 数据管理 数据建模
CodeWave智能开发平台--02--目标:文档快速阅读--01快速构建一个应用
CodeWave智能开发平台--02--目标:文档快速阅读--01快速构建一个应用
|
4月前
|
开发者
CodeWave智能开发平台--03--目标:应用创建--02数据模型设计
CodeWave智能开发平台--03--目标:应用创建--02数据模型设计