微信小程序--搜索电影app

微信小程序开发课程学习总结(关于电影的内容) 微信小程序开发课程学习总结(关于电影的内容)最终效果课程学习网址让我们开始第一步一堆页面简介app.js 文件app.json文件app.wxss文件好了正式开始第一个页面新闻详情页面电影模块关于Template(模板)的说明 引言:这个只针对超级萌新没有学过小程序的人,比如我,大佬忽略 最终效果 由于我懒就不截其他的了,大概效果是这样,总共分两个模块,一个新闻模块,一个电影模块,over. ... 阅读详情

    code:点击  

    做完“天气预报”之后就尝试做“豆瓣电影app”了,学到不少东西,下面是详细步骤:

     各个页面效果如下图所示:

 


        看起来还可以吧,接下来先到豆瓣api官网看看,网址:https://developers.douban.com/wiki/?title=api_v2。

如下图所示,一步一步来做准备工作,都是现成的 API ,调用还是挺方便的。





大致目录结构如下:


好了,了解完各个页面需要调用的 API 之后,先进行简单的页面布局,一个一个来做,先来贴首页(正在热映)的布局代码,后面几个页面的布局都可以公用这份代码的!

hotMovies.wxml 文件代码如下:

<view class="wrapper">
  <!--顶部轮播图-->
  <swiper indicator-dots="{{indicatorDots}}" indicator-color="{{indicatorColor}}" indicator-active-color="{{indicatorActivedColor}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
    <block wx:for="{{imgUrls}}">
      <swiper-item>
        <image src="{{item}}" class="slide-image" mode="scaleToFill" />
      </swiper-item>
    </block>
  </swiper>
  <view class="search">
     <input bindinput="keyword" placeholder="示例输入:'广州'or'guangzhou'" placeholder-style="color:#0ff"/>
     <button bindtap="requestHotMovies" data-keyword="{{keyword}}">搜索</button><!--data-keyword向函数传参keyword-->
  </view>
  <!--中间内容块(电影简介)-->
  <view wx:for="{{hotMovies}}" wx:for-item="item">
    <view class="content">
      <view class="picView">
        <image class="pic" src="{{item.images.medium}}" id="{{item.id}}" bindtap="toDetail" />
      </view>
      <view class="info">
        <view class="name">
          名称:{{item.title}}
        </view>
        <view class="score">{{item.rating.average}}分</view>
        <view class="type">
          类型:
          <block wx:for="{{item.genres}}" wx:for-item="type">
            {{type}},
            <!--注意不要使用<view>,不然调不出效果。。-->
          </block>
        </view>
        <view class="director">
          导演:
          <block wx:for="{{item.directors}}" wx:for-item="director">
            {{director.name}},
          </block>
        </view>
        <view class="actor">
          演员:
          <block wx:for="{{item.casts}}" wx:for-item="actor">
            {{actor.name}},
          </block>
        </view>
        <view class="time">年份: {{item.year}}</view>
      </view>
    </view>
  </view>
</view>


hotMovies.wxss 文件代码如下:

/**htoMovies.wxss**/
.wrapper{
  padding:0;
  margin:0;
  width:100%;
  height:100%;
}
.slide-image{
  width:750rpx;
  height:100%;
}
.search{
  position: absolute;
  left:0;
  top:-20rpx;
  width:100%;
  height:92rpx;
  display: flex;
  flex-direction: row;
}
input{
  height:1rem;
  flex-grow: 1; /**剩余空间都给我*/
  line-height: 70rpx;
  border:2rpx solid #ccc;
  margin:20rpx;
  border-radius: 10rpx;
  font-size: 0.8rem;
}
button{
  color:#0ff;
  width:130rpx;
  height:50rpx;
  line-height: 50rpx;
  margin:24rpx 30rpx 0rpx 0rpx;
  font-size: 0.8rem;
}
.content{
  width:100%;
  height:300rpx;
  padding:10rx;
  display: flex;
  flex-direction: row;
  border-bottom: 2rpx solid #CCCCCC;
}
.picView{
  float:left;
  padding:20rpx 15rpx;
}
.pic{
  width:210rpx;
  height:260rpx;
}
.info{
  float:left;
  display: flex;
  flex-direction: column;
  color:#888888;
  padding-top:20rpx;
  font-size: 30rpx;
}
.name{
  color:#000;
  width:100%;
  font-size: 32rpx;
  margin-bottom: -19rpx;
}
.score{
  position: relative;
  width:80rpx;
  float:right;
  top:-18rpx;
  color:#8C5A0D;
  right:-433rpx;
}
.type{
  display: flex;
  flex-direction: row;
  margin-bottom: 10rpx;
}
.director{
  display: flex;
  flex-direction: row;
  margin-bottom: 10rpx;  
}
.actor{
  margin-bottom: 10rpx;
}


hotMovies.js 文件代码如下:

//hotMovies.js
//获取应用实例
var app = getApp()
Page({
  data: {
    imgUrls: [
      '../../assets/imgs/1.jpg',
      '../../assets/imgs/2.jpg',
      '../../assets/imgs/3.jpg'
    ],
    indicatorDots: true,
    autoplay: true,
    interval: 5000,
    duration: 1000,
    indicatorColor: '#ff0',
    indicatorActivedColor: '#f00',
  },
  //事件处理函数
  bindViewTap: function () {
    wx.navigateTo({
      url: '../recommendMovies/recommendMovies'
    })
  },
  onLoad: function () {
    console.log('onLoad')
    var that = this;
    //调用应用实例的方法获取全局数据
    app.getUserInfo(function (userInfo) {
      //更新数据
      that.setData({

      })
    });
    that.requestHotMovies();
  },
  requestHotMovies: function (event) {
    var keyword = null;
    if(event){//点击了搜索按钮才有此值
      keyword = event.currentTarget.dataset.keyword;
    }
    var city = keyword ? keyword : '广州'; 
    console.log('city:'+city);
    var that = this;
    var url = 'https://api.douban.com/v2/movie/in_theaters';
    var data = {
      city: city
    };
    console.log('0:'+wx.getStorageSync('city'));
    wx.setStorageSync('city', city); //覆盖原来key的内容。
    console.log('1:' +wx.getStorageSync('city'));
    var hotMovies;
    //如果本地已经存储就不再请求
    hotMovies = wx.getStorageSync('hotMovies'+city);
    if (!hotMovies) {
      wx.request({
        url: url, //请求api的接口地址
        data: data,//传递的参数
        header: {
          'content-type': 'json'//不能写"application/json"否则报400错误。
        },
        success: function (res) {//请求数据成功后才执行的回调函数。
          /*console.log(res.data.subjects);*/
          hotMovies = res.data.subjects;
          console.log(hotMovies);
          that.setData({/**放在外部没效果,因为还没执行成功就分配了数据结果是空数据 */
            hotMovies: hotMovies
          });
          that.saveData(hotMovies,city);//第一次请求之后存储数据在本地
        }
      });
    }
    else {
      console.log(hotMovies);
      that.setData({
        hotMovies: hotMovies
      });
    }
  },
  toDetail: function (event) {//参数:事件对象
    console.log(event);
    wx.navigateTo({
      url: '/pages/detail/detail?id=' + event.currentTarget.id,
    })
  },
  saveData: function (data,city) {
    wx.setStorage({
      key: 'hotMovies'+city,
      data: data,
    })
  },
  keyword:function(event){
     this.setData({
	    keyword:event.detail.value /**获取input输入的值并设置到搜索值 */
	 });	  
  },
})


主要运用到了 swiper 组件进行图片的轮播,wx.request 组件请求 api 接口,获取正在热映电影的 api 接口地址为:

https://api.douban.com/v2/movie/in_theaters?city=yourCity。

用到了 for 循环等,注意for循环用<block></block>来循环比较好,不要用<view></view>,不然后者相当于<div></div>,会占据块空间,导致某些时候布局不便。用了 input 组件进行输入搜索关键字,还有 button 组件等等。

点击电影图片跳到详情页面用到了wx.navigateTo({ url:'urlPath' });方法。

因为考虑到频繁请求 api 接口有次数限制,所以我将第一次获取到的数据保存在本地,以后直接使用而不是重复请求,不过这样有个问题就是当它更新时数据不会更新过来,因为是“死”数据了,还没去尝试解决。要注意的一点时,请求 wx.request 时,header:{ 'conten-type':'json' }不能写成 'application/json' 不然会一直报400错误,应该是版本问题。

保存数据:key->data

wx.setStorage({
      key: 'hotMovies'+city,
      data: data,
    })
若要覆盖key的原来存放的值,使用
wx.setStorageSync('key', data);
读入数据:key
var data = wx.getStorageSync('key');

未完待续!





微信小程序实战教程 超级详细 1.首先创建小程序项目 删掉 三个文件夹里面的东西,后面重新创建 2.打开微信开发者工具 打开项目找到app.josn 3.我需要三个页面,所以创建首页,地图,和用户 4.配置 vant weapp : vant weapp地址:https://youzan.github.io/vant-weapp/#/search ①.点开miniprogram文件夹在终端中打开,在终端中输入“npm init”后,直接enter到最后, ②. init操作完成后 输入“npm i @vant/weapp -S - 阅读详情

相关推荐

基于微信小程序实现找电影视频小程序设计项目源码

小程序,开发工具导入项目即可查看源码分享 小程序是一个易上手的东西, 对于新手来说,多看官方文档,可以初步做出比较完整的小程序,正是因为简单上手,功能实现简单,小程序是越来越火,商业价值也越来越大。 1. 微信web开发者工具:微信小程序官网 这是个比较好用的编辑器,对于小程序编辑很方便。 2. 开发文档:微信小程序宝典秘籍 通过这个查找微信小程序的API,组件,框架等等。 3. 图标库: Iconfont-阿里巴巴矢量图标库 这个可以找到自己想要的几乎所有的小图标,十分方便。 4. Easy Mork: easy-mock 用于后台的模拟,得到JSON数据; 5. weui框架引入, 例如个人信息界面,用weui可以很快很方便的做 微信小程序开发和传统的H5开发还是有些不同的, 容易踩坑。 小程序是基于MVVM的的框架,合理利用数据绑定实现界面的更新是很关键的 开发时不要一股脑的写写写,多看看文档,你会发现你不小心原生写了个组件。。 进入开发平台,注册项目信息->在编辑器中上传版本->在开发版本中选择提交审核->审核通过->项目上线 更多内容下载项目即可查看

Vue2.5学习笔记(二)深入了解组件

1.组件使用的细节 1.2 子标签内使用组件 假设想在表格便签内使用一个组件作为行,直接使用组件是不行的,原因在于tbody内只能放tr便签,否则浏览器就会将tbody内的标签解析到外面,从而导致结构的错乱。 为了解决这个问题,我们可以使用is特性,将is特性设置为组件名称,这样既保证了tbody和tr之间的层级关系,也使用了组件。 1.2 非根组件的data必须是一个函数 一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝。 1.3 在Vue中操作DOM:使用ref

Zijeak的博客 4512

微信小程序项目总结《四》电影首页、电影更多开发

作者:Tong_T,来自授权地址 第七章 电影首页 movie.wxml (此图片来源于网络,如有侵权,请联系删除! ) 这里首先规划了单个电影小模版,由一张图片,名字,星星图片,评分组成;然后形成每一个电影list,循环重复。有模板的组件,对于后面的开发,百利而无一害,十分方便。而这一系列的模板都有star,movie,movie-list,movie-grid。下面来阐述其: stars-template.wxml  (此图片来源于网络,如有侵权,请联系删除! ) movie-template.wxml  (此图片来源于网络,如有侵权,请联系删除! ) movie-list-templat

微信小程序入门与实战之更多电影列表与电影搜索

在网络请求中我们可以采用下面这种形式: 如果我们可以不采用直接写在url的方式我们可以采用data的方式: 默认请求方式是GET我们可以通过设置method修改请求方式: 我们要实现的效果: 首先创建好more-movie页面:引入我们之前写好的movie自定义组件: 引入app: 定义data: 发起网络请求: 编写wxml代码,使用循环渲染: 实现效果: 使用样式: 布局代码: 也可以使用justify-content使页面平均分配: 实现效果: 通过自己定义data,并绑定点击事件: 跳转的

Lbsssss的博客 1992

Windows10下部署Heygem进行数字人生成

对于使用Heygem生成数字人,需要注意几个问题: + 需要使用Nvidia的显卡。 + 需要在Windows上进行本地部署。主要原因为客户端是Windows的,客户端对上传的视频写入硬编码的`D:\heygem_data\voice\data`目录,需要在容器上读取这些文件。 + 需要在Windows上部署Docker,将Windows的目录映射到容器中,由容器中的服务进行读取。 + 需要特别注意,一定要有D盘,这个D盘是Windows的D盘,不能是插入的USB设备后产生的D盘。 + 需要下载3个Doc

冀辉的博客 5619

AutoGenTestCase - AI大模型生成测试用例

AI技术助力高效软件测试:AutoGenTestCase工具介绍 传统手工测试存在效率低、覆盖不全等痛点。AutoGenTestCase工具集成DeepSeek、通义千问等AI大模型,能快速解析需求并自动生成标准化测试用例,将数小时工作缩短至分钟级。该工具部署简单,仅需配置APIKey即可运行,支持多种测试用例类型比例设置,并输出Markdown和Excel格式的测试用例。通过GitHub或网盘下载后,用户可按照教程完成APIKey配置、需求文档上传和用例生成等操作,显著提升测试效率与覆盖完整性。

YIqifeibaQI的博客 347

组件切换_小程序卡片切换效果组件wxCardSwiper

wxCardSwiper小程序卡片切换效果组件. 支持异步添加卡片数据, 手势滑动触发.源码地址: https://github.com/doterlin/wxCardSwiper使用方法将本项目文件中的components/cardSwiper文件夹复制到你项目的目录下,然后在页面的json配置及页面引入。自定义组件的引入和使用请参考官方文档。 本项目包含组件和页面demo,可直接运行(上滑翻到...

weixin_32685145的博客 586

2、TCGA数据处理(差异分析前处理)

注意:1、是R语言中用于读取文本文件并创建数据框的函数。它可以从文本文件中读取数据并将其存储为数据框的形式,每一列代表一个变量,每一行代表一个观察值。2、括号要成对,不能少了;3、file = 'TCGA-LIHC.htseq_counts.tsv'引号可以是单或双引号,建议单;4、逗号主要中英文,都是用英文模式才没错;5、.tsv文件类型必须要有,不能删除,否则读不进来;6、上面代码将TCGA-LIHC.htseq_counts.tsv文件读入并赋值给count1。

PLW_12的博客 2667

10--微信小程序card + 跳转(获取index)

页面block: <view> <view class="page_hd"> <navigator class="create" url="/pages/teacher/banji/add">创建班级</navigator> <navigator class="join" url="/pages/teacher/banji/join">加入班级</navigator> </view> <b.

xu_ze_qin的博客 1794

MacBook 本地化部署 Dify 指南

dify 怎么安装部署 有哪些坑 !

weixin_44542598的博客 1522

别再乱改宏定义了!STM32F103程序移植保姆级教程(从C8T6到ZET6实战)

本文详细解析了STM32F103程序从C8T6移植到ZET6的实战步骤,重点介绍了硬件差异、开发环境配置、时钟陷阱及外设处理等关键点。通过修改宏定义(如STM32F10X_HD)、调整启动文件和时钟配置,确保移植顺利进行。适合嵌入式开发者参考,避免常见移植问题。

weixin_42567497的博客 215

微信小程序lin-ui卡片(card)模版wxss样式

.card-dot { width: 18rpx; height: 18rpx; border-radius: 50%; border: 6rpx solid #3963bc; margin-left: 26rpx; } .card-top { display: flex; flex-direction: row; align-items: center; width: 750rpx; height: 100rpx; } .content-name { fo.

呀哈的博客 2079

HDLbits找茬实战:5个Verilog仿真Bug修复案例,新手避坑指南

本文通过HDLbits平台上的5个典型Verilog仿真Bug案例,详细解析了多路选择器位宽不匹配、模块实例化端口映射错误等常见问题,提供实用的修复方案和调试技巧,帮助Verilog新手快速掌握代码验证与仿真技能,避免常见陷阱。

weixin_42653691的博客 162

微信小程序--搜索电影app(续)

热门推荐页面各个文件代码如下: recommendMovies.wxml: 名称:{{item.title}} {{item.rating.average}}分 类型:

Inite的博客 2486

拆解博世、大陆的EMB方案:自增力机构如何省下83%的能耗?

本文深度解析了博世和大陆的电子机械制动(EMB)技术,重点探讨了自增力机构如何实现83%的能耗节省。通过对比电机直驱型和自增力型EMB的技术参数,揭示了自增力机构在能量优化和系统集成方面的创新优势,为汽车电动化和智能化提供了关键技术支持。

weixin_42665725的博客 391

103.在 Vue 3 中使用 OpenLayers 控制图层来显示/隐藏地图

是一个强大的开源库,可以用于构建各种地理信息系统应用。在 Vue 3 中,我们可以结合。方法,可以直接控制某个图层是否可见,而不需要删除或重新创建图层。在开始之前,确保你已经搭建了 Vue 3 项目,并安装了。本文将详细介绍如何在 Vue 3 组合式 API (,并实现按钮控制地图的显示/隐藏功能。会导致 OSM 瓦片地图无法加载。方法控制地图图层的显示与隐藏。安装完成后,即可开始编写代码。在本教程中,我们介绍了如何在。来实现地图的显示/隐藏功能。来实现交互式地图,并通过。在 WebGIS 开发中,

小彭的博客 1560

微信小程序—模拟豆瓣搜索电影(图文)

微信小程序—模拟豆瓣搜索电影 先新建search目录和page 1、在search.wxml页面 给input添加bindinput事件 给button绑定bindtap事件 <view id="container"> <input bindinput="keyWord" class="search" placeholder="搜索电影" /> <view w...

Poppy_LYT的博客 1725

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微信小程序豆瓣电影(上)

微信小程序豆瓣电影 前言 打开app.js文件,删除自带代码,只保留以下代码。 //app.js App({ }) 5.2 删除logs文件包。 5.3 打开app.json文件,删除"pages/logs/logs",保留以下代码。 { “pages”:[ “pages/index/index” ], “window”: { “backgroundTextStyle”: “light”, “navigationBarBackgroundColor”: “#41be57”, “navigationBarTi

xiaoying1223的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

制作电影影评网的html5代码,微信小程序之电影影评小程序制作代码

本文实例为大家分享了微信小程序制作影评小程序的具体代码,供大家参考,具体内容如下这是博主的项目包含的文件截图:首先如图建立文件夹和page页面然后app.json页面更新代码如下:{"pages": ["pages/hotpage/hotpage","pages/comingsoon/comingsoon","pages/search/search","pages/more/more"],"win...

weixin_36344862的博客 2387

基于uniapp+vue+微信小程序+安卓app电影院订票小程序H5网站设计-计算机毕业源码设计-计算机毕业源码设计

开发技术:uniapp + vue + ElementUI + 微信小程序 + 安卓app + Springboot 开发工具环境:HBuilder + 微信开发者工具 + VsCode + Idea + Mysql + JDK1.8 基于Uniapp框架实现一个跨平台的电影院订票项目,到时项目可以发布到安卓平台,ios平台,H5网站,安卓app和微信小程序,支付宝小程序等等,实现了一次开发多端发布,后端是基于Idea工具开发,采用ssm后端框架实现了服务器端接口通信,数据库采用了mysql,项目一共2个

计算机源码设计案例的博客 1981

做小程序有哪些好处????今天给大家普及一下

常说微信小程序怎么样怎么样,但对于大多数的用户而言,小程序能给自己带来什么好处,仍然是一个问题。今天,小橙序之家和你说说使用微信小程序,能带来什么好处? 节省手机内存空间小程序无需安装最大的特点就是能够帮用户节省宝贵的手机内存空间,市场上常用的App安装包基本上都是几十M,随随便便安装一个软件就会占用上百M的内存,甚至一些大的App(如QQ、微博、今日头条、爱奇艺等),安装使用后分分钟会占用内...

weixin_33716557的博客 181

微信小程序电影推荐demo实战开发小结(附源码及思维导图) ... ...

第一步 项目配置 一、编写app.json 对整个项目的公共配置 1、pages:配置页面路径(必须),列出所有的页面的路径,所有存在的页面都需要在此写出,否则在页面跳转的时候会报出找不到页面的错误2、window:窗口配置 ... 本文已获作者sesine授权转载,授权地址:http://www.jianshu.com/p/447b36463

大灰狼的小绵羊哥哥的博客 1万+

模拟豆瓣API的电影小程序

1、微信开发者工具 开发环境为微信web开发者工具,可以完成小程序的 API 和页面的开发调试、代码查看和编辑、小程序预览和发布等功能。 下载后,打开该工具,选择代码目录和申请的AppID,勾选quickStart选项,这样会创建几个基础页面。实现的功能是可以在首页查看豆瓣电影评分前250名并且可以点击跳转到详情页,在搜索页输入关键字搜索相关电影。 使用步骤 将仓库克隆到本地: bash $...

zqzq19950725的博客 1227

别人写的微信小程序,收藏借鉴!

github地址:https://github.com/yesifeng/wechat-weapp-movie提示:v2.0代码会跟文档有一些出入,但大部分都是相同的 第一步 项目配置 一、编写app.json 对整个项目的公共配置 1、pages:配置页面路径(必须),列出所有的页面的路径,所有存在的页面都需要在此写出,否则在页面跳转的时候会报出找不到页面的错误 2、window:窗...

XYYxyy55 1183

微信小程序一星期入门-完结篇--电影详情页的制作

文章目录微信小程序入门(七)--入门篇完结实现电影页面按钮的更多功能获取数据more-movie页面布局movies页面更多按钮绑定事件更多按钮的事件更多页面onLoad的更改实现movies电影页面的搜索功能注册组件使用上滑加载更多电影数据加载更多电影数据提示用户数据请求中下拉刷新数据开启页面的下拉刷新监听用户下拉动作实现下拉刷新增强阅读页面效果配置标题与动态配置标题配置标题动态配置标题电影详情页组件的独立性对post组件进行改进发射事件接收事件文章页面问题修正方式一方式二电影详情页的制作给自定义组件mo

听雨少年的博客 9979

微信小程序之豆瓣电影

效果图: 1.小程序下方的talbar,属于公共的设置,需要在app.json里面设置 2.引入的文件放置的位置,图片放在images 3.代码 当前热映 index/index.wxml &amp;lt;view class=&quot;container&quot;&amp;gt; &amp;lt;!-- 轮播图 --&amp;gt;

callmeCassie的博客 3686
上一篇: 微信小程序之天气预报
下一篇: 微信小程序--搜索电影app(续)
yibin94
博客等级 码龄11年 78粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值