零基础开发新闻小程序带评论点赞收藏功能,可以回复评论,借助小程序云开发云模板开发一款图文小程序,新闻列表新闻详情,登录注册功能

news2024/11/19 17:23:27

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台

一,技术选型和技术点

1,小程序前端
wxml
css
JavaScript
MINA原生小程序框架
2,数据库
云开发
云数据库
云存储
云数据库是云开发自带的数据库(json类型的弱关系型的基于MongoDB的数据库)
3,后台(云开发)
基于小程序官方自研的云开发和云函数实现后台数据的管理
后台网页使用cms(内容模型)

二,下载开发者工具

我们开始开发前要先下载微信开发者工具
大家可以自行去百度下,也可以到小程序官方网站下载

记得下载稳定版

官方下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

三,空白项目的创建

我们这里创建空白项目,主要就是为了进入开发者工具,去开通云开发。如果你已经导入石头哥源码,直接看第四章,开通云开发和cms即可。

首先是创建新项目,这里一定要记得用自己的appid,所以你要提前去注册一个属于自己的小程序,小程序的注册我小程序基础课里有讲过。
《10小时零基础入门小程序开发》

一定要用自己的appid,如果没有记得用身份证去注册一个小程序,不要注册测试小程序。下面有讲怎么拿到appid

3-1,获取appid

  • appid获取的位置如下图

3-2,创建项目

注意事项:
一定要用自己的appid
后端服务选择不使用云服务
模板选择 全部来源,然后点击全部分类,选择里面的不使用模板。

3-3,清除无用文件

把app.json里下面框里的代码删除

删除后如下

然后把components文件删除。

再把index.json里的代码删除

删除后如下

然后把index.wxml里的内容清空

四,开通云开发和cms

4-1,开通云开发

进入开发者工具以后,我们需要去开通云开发

云开发正常有一个月的免费使用。

4-2,开通云后台/云模板

开通云开发后台,云开发控制台如下

然后进入云开发控制台开通内容管理,如下图所示,点击更多,然后点击内容管理。

现在官方又改版了,入口是这样的。点击开通以后耐心等待几分钟就行。

默认的套餐只能创建5个数据表,我们学习基本上够用了,所以先选择免费版即可,我们先学习着。

开通后进入云后台

到这里只是开通了云后台和云模板,接下来还要继续开通cms

4-3,升级到基础版(选学)

默认的套餐只能创建5个数据表,我们学习基本上够用了,如果你自己再学习别的,数据表大于5个的话,就自己去升级下就行了。

这里给大家说下,升级基础版就行,正常有一个月的免费使用期。

4-4,开通cms内容管理

点击云后台,然后点击新增应用。

也可以点击我的应用,然后再点击创建应用,和上面一样的。
下图就是cms,一定要点击
点击管理后台,然后选中内容管理系统(CMS)

点击安装模板就行

然后就是耐心等待

开通后,点我的应用,就可以看到cms了。点击查看详情就可以访问cms了

通过访问地址就可以进入cms网页后台了。


但是这里我们需要登录,所以还要去设置下管理员账号。

4-5,注册cms登录账号

点我的应用,就可以看到cms了。点击查看详情就可以访问cms了

然后点击用户及权限管理

4-5-1,用系统账号设置密码

我们可以直接编辑系统默认的账号,这样只需要再设置下登录密码就行了。

添加密码

4-5-2,自己新建账号

如果没法新建一个管理员账号,就用上面一步的修改下密码,用默认账号就行。

角色一定要勾选工具管理员


如果没法新建管理员账号,就用上面一步的设置密码,用默认账号就行。

4-6,登录cms

点我的应用,找到内容管理系统,然后点击查看详情。

再点击右上角的立即访问。

也有的版本写的是 打开管理端

然后用设置的账号登录即可进入cms后台

但是我们第一次进入后台时,提示我们项目为空。

4-7,添加cms项目

那么我们就要去控制台添加cms项目了。点击我的应用,进入cms,然后点项目管理。


然后点击新建项目。记得要关联下自己的云开发环境

创建好以后如下

然后就可以去cms网页后台刷新下,这样就正式的开通新版本的cms内容管理了。

到这里准备工作就做好了,然后找石头哥继续后面的步骤就行了。

五,添加新闻表

我们借助云开发云模块的cms来对数据进行可视化管理,我们第一件要做的就是创建数据表,然后添加一些数据,这样我们小程序代码开发的时候才有数据可以显示到我们的页面上。

5-1,创建内容模型(数据表)

我们在cms后台,添加内容模型,其实内容模型就是我们云开发数据库里的表,只不过小程序官方在内容管理模板里叫做内容模型而已。
点击内容模型,然后点击新建模型(数据表)

添加news表,如下图。第三步的勾选一定要记得勾选上。

创建以后,就可以看到数据库里多了一个news数据表

5-2,添加字段

我们创建好数据表以后,接下来就要给数据表添加字段了。先想一想我们新闻数据都有那些字段。
比如标题,内容,封面。。。。。。。
接下来我就把一些常用的字段添加到我们的内容模型(数据表)里

我把一些字段及字段类型,列出来给到大家

字段字段描述内容类型
title标题单行字符串
time发布时间日期与时间
img封面图片
desc正文富文本

正文字段添加

time字段添加的时候,需要注意下,时间存储格式选择时间字符串

img封面添加

添加完以后如下

然后我们去添加几条新闻

5-3,添加新闻数据

如下图所示,点击新建

然后就是添加对应的数据,标题,时间,封面记得上传即可。

cms最大的亮点就是这个富文本,这样我们就可以像编辑博客一样编辑我们的新闻正文。

甚至于文章内还可以插入图片

然后点击创建,即可添加一条数据

然后数据库里点击下刷新,就可以看到我们添加的这条数据

自己多添加几条新闻数据,接下来小程序开发里需要用得到

六,开发新闻首页

6-1,初始化云开发环境

既然要用到云开发,那么我们就要先初始化云开发环境,在app.js里做云开发环境的初始化。
复制环境id

在app.js里做如下代码

然后就可以在代码中使用云开发了。

6-2,请求新闻列表数据

我们的新闻首页就是一个列表页,其实就是吧news表里的数据请求到页面上。如果大家有学过石头哥的云开发入门,就知道如何做数据请求了。
代码其实很简单,我们只需要在index.js里添加如下代码,就可以请求到数据啦。

但是我们请求到的数据却为空,这是为什么呢

接下来给大家说为什么

6-3,修改数据表权限

我们要修改一下数据表的权限,改成如下所示

使用自定义安全规则

{
  "read": true,
  "write": true
}

这个规则的目的就是为了让所有用户都可以请求到数据。
改完规则我们重新请求下数据,就可以请求到了

6-4,渲染数据到页面

我们简单的实现,主要是带大家写逻辑代码,如果大家有时间可以自己美化下页面

index.wxml如下

index.js代码如下

index.wxss样式如下

七,开打新闻详情页

我们在首页列表需要添加一下点击事件,实现点击跳转详情页
index.js
index.wxml
index.wxss
代码如下

// index.js
Page({
    onLoad() {
        // 请求新闻列表数据
        wx.cloud.database().collection('news').get()
            .then(res => {
                console.log("请求列表结果", res)
                this.setData({
                    list: res.data
                })
            })
    },
    // 跳到新闻详情页
    goDetail(e) {
        wx.navigateTo({
            url: '/pages/detail/detail?id=' + e.currentTarget.dataset.id,
        })
    }
})


<!-- index.wxml -->
<view wx:for="{{list}}" wx:key="index" class="item_root" bind:tap="goDetail" data-id="{{item._id}}">
    <image src="{{item.img}}" class="item_img"></image>
    <view>
        <view>{{item.title}}</view>
        <view>{{item.time}}</view>
    </view>
</view>

/* index.wxss */
.item_root {
    display: flex;
    padding: 15rpx;
    border-bottom: 1px solid gray;
}

.item_img {
    width: 200rpx;
    height: 160rpx;
    margin-right: 15rpx;
}

7-1,在app.json里注册detail详情页

在app.json的pages里注册 “pages/detail/detail” 然后点击编译,就可以自动生成detail页面了

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

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

相关文章

力扣:62. 不同路径

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业 1.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是&#xff1a;main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段&#xff0c;getShell&am…

【负载均衡式在线OJ项目day4】编译运行功能整合及打包网络服务

一.前言 前面两天完成了编译和运行两个子模块&#xff0c;今天的任务是完成CompileRun模块&#xff0c;它的任务如下&#xff1a; 解析来自客户端的Json字符串&#xff0c;反序列化提取编译运行需要的数据&#xff0c;即代码&#xff0c;时间限制和空间限制把代码写入临时文件…

太阳能无人机的多元化应用

随着新能源技术的不断发展和成熟&#xff0c;太阳能在无人机的应用技术已经成熟。太阳能无人机得到了量产和广泛的应用。传统无人机相比&#xff0c;太阳能无人机无需燃油&#xff0c;运行费用低廉&#xff0c;搭载多种高科技设备&#xff0c;能够高效、多元化地采集和分析各类…

公司活动想找媒体报道宣传怎样联系媒体?

作为公司宣传负责人,我深知媒体报道对于企业活动宣传的重要性。然而,在过去,每当有重要活动需要媒体曝光时,我总会被繁琐的媒体联系工作所困扰。 那时,我需要一家家地查询媒体联系方式,发送邮件、打电话,甚至亲自前往媒体机构进行沟通。然而,这样的过程不仅费时费力,而且效率低…

成本降低 90%,出海社交平台 Typing 基于 Databend 的大数据探

Typing&#xff08;输入中科技&#xff09;成立于 2022 年&#xff0c;是一家主要面向东南亚、拉美、中东等海外地区提供社交平台的出海企业。其社交平台类似于国内的 Soul、陌陌等&#xff0c;提供视频直播、语音聊天室、短视频、生活分享、文字聊天等社交功能&#xff0c;注册…

英语学习笔记5——Nice to meet you.

Nice to meet you. 很高兴见到你。 词汇 Vocabulary Mr. 先生 用法&#xff1a;自己全名 / 姓 例如&#xff1a;Mr. Zhang Mingdong 或 Mr. Zhang&#xff0c;绝对不能是 Mr. Mingdong&#xff01; Miss 女士&#xff0c;小姐 未婚 用法&#xff1a;自己全名 / 姓 例如&#…

区块链(打新)如何被割韭菜

看上去&#xff0c;像我只要去每个都买一遍新发行的代币&#xff0c;一定可以成功的 但是好像没有想象中这么简单&#xff0c;因为这些山寨币&#xff0c;庄家可以自己控盘的&#xff0c;看上去好像有跌宕起伏的买卖&#xff0c;但是一单掀桌子&#xff0c;庄家他自己都不玩了…

SOCKET编程(3):相关结构体与函数

相关结构体与函数 sockaddr、sockaddr_in结构体 sockaddr和sockaddr_in详解 struct sockaddr共16字节&#xff0c;协议族(family)占2字节&#xff0c;IP地址和端口号在sa_data字符数组中 /* Structure describing a generic socket address. */ struct sockaddr {__SOCKADDR…

推荐3个实用的github开源项目

目录&#xff1a; 1、AI生成高清短视频 2、媒体平台爬虫 3、文本转语音项目

ubuntu server 22.04 安装docker、docker-compose

ubuntu server 22.04安装docker有两种方式&#xff0c;第一种是使用ubuntu镜像源的软件包进行安装&#xff0c;第二种使用官方GPG密钥手动添加Docker存储库方式进行安装&#xff0c;两种方式都可以&#xff0c;但第二种方式略复杂&#xff0c;这里介绍第一种比较简单的安装方式…

图像ISP——AGC参数解析

前言 AWB和AGC是两种常见的自动调整功能。AWB用于自动调整图像的白平衡&#xff0c;以确保颜色在不同光照条件下仍然看起来自然。而AGC则用于自动调整图像的增益&#xff0c;以在不同的亮度条件下保持适当的曝光。 代码例程 static AWB_AGC_TABLE_S g_stAwbAgcTable {/* bvali…

深入解析Java中Set接口

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

【前端基础】CSS样式+Vue中绘制时间轴

深度选择器 在 Vue.js 中&#xff0c;/deep/、>>>、:deep 和 ::v-deep 这些都是深度选择器&#xff0c;用于修改子组件的样式。它们主要用于解决作用域样式和组件样式之间的冲突问题。 1. /deep/ 或 >>> /deep/ 和 >>> 是相同的选择器&#xff0c;…

spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别

目录 前言说明举例 前言 使用spring boot参数验证是常常会使用NotNull、NotBlank和NotEmpty三个判断是否不为空的注解&#xff0c;中文都有不能为空的意思&#xff0c;大部分使用者都傻傻分清它们之间到底有什么区别。今天就让咱们来一起探索它们之间的不同吧。 说明 注解名…

一文了解webpack和vite中Tree-Shaking

1、什么是Tree-Shaking 1.1 摇树优化&#xff08;Tree Shaking&#xff09;是Webpack中一种用于优化JavaScript代码的技术。它的目标是通过静态分析&#xff0c;从代码中剔除未被使用的模块&#xff0c;从而减少最终打包文件的大小。 1.2 Tree-shaking 它的名字来源于通过摇晃…

【线性代数】英语版听课笔记

线性代数 - 北京航天航空大学&#xff08;英文版&#xff09;_哔哩哔哩_bilibili 39.concept of vector space in this lecture we will studyvector space&#xff0c; the concept of basis dimension and coordinates 向量空间的维数&#xff1a;向量空间的基底所含向量的…

在 Ubuntu系统中,可以使用以下几种方法查看网络速率

1 使用终端命令&#xff1a;可以使用ifconfig命令查看网络接口的信息&#xff0c;包括网络接口名称、IP地址、子网掩码等。也可以使用nload命令查看网络流量和传输速率。 2 使用网络监控工具&#xff1a;例如nethogs&#xff0c;可以更加直观地查看网络吞吐量。 3 使用网络测…

*****水上飞机:继承,虚函数,虚继承

一题目 请设计以下航行器、飞机、船、水上飞机等 4 个类。 CRAFT 为航行器类&#xff0c;是公共基类&#xff0c;提供航行器的基本特性。包括&#xff1a; 一个保护数据成员&#xff1a;speed(速度)。 三个公有成员函数&#xff1a;构造函数(初始化速度)、析构函数和 Show 函数…

量化交易基础知识

目录 1 什么是量化交易2 谁可以成为一个量化交易员3 量化交易的优势与特点4 量化交易员的成长之路 1 什么是量化交易 量化交易也称算法交易&#xff0c;是一种严格按照计算机算法进行买卖证券决策的交易方式。更具体一点解释就是&#xff0c;量化交易利用数学模型、统计分析和计…