精华内容
下载资源
问答
  • c#通过纯代码创建桌面快捷方式、创建程序菜单、将网页添加到收藏夹
  • 体检查询系统10_我的程序 系统结构:读加密配置,写加密配置,取加密配置节名,取加密配置名,删除加密配置小节,配置文件_写用户信息,配置文件_删除用户,配置文件_取用户,配置文件
  • 手机网站封装小程序的实战步骤,里面的每一都必须遵守,不然最后会失败
  • 微信小程序——快递查询

    千次阅读 2019-04-25 18:15:43
    最近在学习微信小程序,一个简单的快递查询程序却让人头疼不已,不知道用哪个快递查询api,不知道如何传递api参数,不知道事件如何监听··· 现在将过程记录下来,供大家相互参考学习~ 思维导图 目录 产品...

    前言

    最近在学习微信小程序,一个简单的快递查询小程序却让人头疼不已,不知道用哪个快递查询api,不知道如何传递api参数,不知道事件如何监听···

    现在将过程记录下来,供大家相互参考学习~

    思维导图

    目录

    产品需求

    前期准备

    编写界面

    逻辑实现

    显示信息

    Bug调试

    源代码


    产品需求

    在文本框输入快递单号,点击查询,在下面显示快递信息。

    最终效果预览:

    前期准备

    1.准备一个快递查询的API

    推荐:apishop(https://www.apishop.net

    在这里推荐apishop的原因是,apishop里面提供快递查询接口只需要提供运单号,而像聚合数据showapi易源接口阿里云等网站虽然也能提供快递查询接口,但是它们都需要同时提供运单号和公司编码才能进行数据请求。

    进入apishop官网后,需要进行一系列的注册认证~

    查看请求示例:

    可以看到这里的请求参数只有apikey和expressNumber是必须的,而公司类型可以自动识别出来。

    2.查看并保存你的API Key

    在你注册认证完成之后,在控制台页面可以看到你的apikey:

    3.准备一个真实的运单号

    你可以从自己的历史快递消息中,复制保存好一个运单号码,以便于开发测试的时候使用。

    编写界面

    1.修改顶部导航文字

    在app.json中修改如下:

    "navigationBarTitleText": "快递查询"

    2.添加一个输入框和一个按钮,并为它们绑定事件

    <!--index.wxml-->
    <input placeholder='请输入运单号' bindinput='input'></input>
    <button type="primary" bindtap='btnClick'>查询</button>

    3.修改输入框和按钮的样式

    /**index.wxss**/
    input {
      border: 1px solid green;
      width: 80%;
      padding: 5px;
      margin: 10px;
    }
    button {
      margin: 5px;
    }

    效果:

    逻辑实现

    1.编写getExpressInfo方法调用快递查询接口

    • 在app.js中编写getExpressInfo方法,并且用微信提供的wx.request发起网络请求,调用我们之前申请的接口
    • 设置两个变量,一个expressNumber为要查询的快递单号,一个cb为返回查找到的内容到data中的方法
    //app.js
    getExpressInfo: function (expressNumber,cb){
        wx.request({
          url: 'https://api.apishop.net/common/express/getExpressInfo?apiKey=你的apikey&expressNumber=' + expressNumber,
          data: {
            x: '',
            y: ''
          },
          header: {
            'apiKey': '你的apikey' 
          },
          success(res) {
            cb(res.data)
          }
        })
      },

    cb是指callback( )回调函数,回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。

    2.在data中设置两个变量

    //index.js
    data: {
        motto: 'Hello World',
        userInfo: {},
        hasUserInfo: false,
        canIUse: wx.canIUse('button.open-type.getUserInfo'),
        expressNu:null,//用来保存输入的运单号
        expressInfo:null//用来保存查询到的快递信息
      },

    3.编写输入框的事件

    //index.js
    input:function(e){
        this.setData({expressNu:e.detail.value})
      }
    //setData()函数用于将数据从逻辑层发送到视图层,同时改变对应的this.data​

    4.编写按钮的事件

    //index.js
    getUserInfo: function(e) {
        console.log(e)
        app.globalData.userInfo = e.detail.userInfo
        this.setData({
          userInfo: e.detail.userInfo,
          hasUserInfo: true
        })
     }

    显示信息

    1.使用wx:for遍历数组并输出

    2.使用scroll-view组件让信息滚动显示

    <!--index.wxml-->
    <scroll-view scroll-y style="height: 400px;">
        <view>{{expressInfo.result.expName}}</view><!--显示快递公司名称-->
        <!--快递信息保存在expressInfo下的result中的list数组中,用for循环遍历显示出来-->
        <view wx:for="{{expressInfo.result.list}}">
         {{item.status}} 【{{item.time}}<!--item表示当前项-->
        </view>
    </scroll-view>

    Bug调试

    出现错误提示:url不在以下 request 合法域名列表中

    运行小程序时,会遇到错误信息:url不在以下 request 合法域名列表中

    这是因为小程序微信公众平台设置小程序开发设置中服务器合法域名必须是https,而我们自己的url是http://开头的

    此时的处理方式为:工具—项目详情—勾选不校验安全域名、web-view 域名、TLS 版本以及 HTTPS 证书。

     源代码

    app.json:

    {
      "pages": [
        "pages/index/index",
        "pages/logs/logs"
      ],
      "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "快递查询",
        "navigationBarTextStyle": "black"
      },
      "sitemapLocation": "sitemap.json"
    }

    index.wxml:

    <!--index.wxml-->
    <view class="container">
      <input placeholder='请输入运单号' bindinput='input'></input>
      <button type="primary" bindtap='btnClick'>查询</button>
      <scroll-view scroll-y style="height: 400px;">
        <view>{{expressInfo.result.expName}}</view>
        <view wx:for="{{expressInfo.result.list}}">
         {{item.status}} 【{{item.time}}
        </view>
      </scroll-view>
    </view>

    index.wxss

    /**index.wxss**/
    input {
      border: 1px solid green;
      width: 80%;
      padding: 5px;
      margin: 10px;
    }
    button {
      margin: 5px;
    }

    index.js:

    //index.js
    //获取应用实例
    const app = getApp()
    
    Page({
      data: {
        motto: 'Hello World',
        userInfo: {},
        hasUserInfo: false,
        canIUse: wx.canIUse('button.open-type.getUserInfo'),
        expressNu:null,
        expressInfo:null
      },
      //事件处理函数
      bindViewTap: function() {
        wx.navigateTo({
          url: '../logs/logs'
        })
      },
      onLoad: function () {
        if (app.globalData.userInfo) {
          this.setData({
            userInfo: app.globalData.userInfo,
            hasUserInfo: true
          })
        } else if (this.data.canIUse){
          // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
          // 所以此处加入 callback 以防止这种情况
          app.userInfoReadyCallback = res => {
            this.setData({
              userInfo: res.userInfo,
              hasUserInfo: true
            })
          }
        } else {
          // 在没有 open-type=getUserInfo 版本的兼容处理
          wx.getUserInfo({
            success: res => {
              app.globalData.userInfo = res.userInfo
              this.setData({
                userInfo: res.userInfo,
                hasUserInfo: true
              })
            }
          })
        }
      },
    
      btnClick:function(){
        var thispage = this;
        //console.log(this.data.expressNu)
        app.getExpressInfo(this.data.expressNu,function(data){
          //console.log(data)
          thispage.setData({expressInfo:data})
        })
      },
    
      input:function(e){
        this.setData({expressNu:e.detail.value})
      },
    
      getUserInfo: function(e) {
        console.log(e)
        app.globalData.userInfo = e.detail.userInfo
        this.setData({
          userInfo: e.detail.userInfo,
          hasUserInfo: true
        })
      }
    })
    

     app.js:

    //app.js
    App({
      onLaunch: function () {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)
    
        // 登录
        wx.login({
          success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })
        // 获取用户信息
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.userInfo']) {
              // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
              wx.getUserInfo({
                success: res => {
                  // 可以将 res 发送给后台解码出 unionId
                  this.globalData.userInfo = res.userInfo
    
                  // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
                  // 所以此处加入 callback 以防止这种情况
                  if (this.userInfoReadyCallback) {
                    this.userInfoReadyCallback(res)
                  }
                }
              })
            }
          }
        })
      },
      getExpressInfo: function (expressNumber,cb){
        wx.request({
          url: 'https://api.apishop.net/common/express/getExpressInfo?apiKey=你的apikey&expressNumber=' + expressNumber,
          data: {
            x: '',
            y: ''
          },
          header: {
            'apiKey': '你的apikey' 
          },
          success(res) {
            cb(res.data)
          }
        })
      },
      globalData: {
        userInfo: null
      }
    })

     

    展开全文
  • web网页抽奖程序

    热门讨论 2014-01-19 15:19:00
    通过EXCEL数据导入抽奖奖项信息和抽奖员工数据。 使用说明: 1.解压后打开“将此测试数据复制到设置中.txt... 上百度搜索“鉴澄净水器”进入官方网站,滚动到页面底部,找到"QQ给我留言”,为了给网站宣传一下,呵!
  • 1.2 教务查询系统的现状和发展前景 3 1.3 系统的技术架构 3 1.4 论文框架 4 2 系统需求分析 5 2.1 系统概述 5 2.2 系统功能需求 5 1.用户登录 5 2.首页 5 3.公选课信息查询 5 4.学校校历 6 5.考试查询 6 6.成绩查询 ...

    目录
    1 绪论 2
    1.1 研究背景 2
    1.2 教务查询系统的现状和发展前景 3
    1.3 系统的技术架构 3
    1.4 论文框架 4
    2 系统需求分析 5
    2.1 系统概述 5
    2.2 系统功能需求 5
    1.用户登录 5
    2.首页 5
    3.公选课信息查询 5
    4.学校校历 6
    5.考试查询 6
    6.成绩查询 6
    7.等级考试 6
    8.新闻公告 6
    9.我的课程 6
    10.个人信息 6
    2.3 系统用例图 6
    2.4 技术平台 7
    2.4.1 Spring Boot 7
    2.4.2 微信小程序 8
    2.4.3 Maven 9
    2.4.4 Bootstrap 9
    2.4.5 Jsoup爬虫框架 9
    3 系统设计 10
    3.1 系统总体设计 10
    3.2 系统业务流程图 10
    4 系统详细设计 12
    4.1 系统功能详解 12
    4.1.1 系统时序图 13
    4.2 Html页面数据解析 15
    4.2.1Html页面解析流程 16
    5 系统功能的具体实现 17
    5.1 系统的主窗口 17
    5.2 登录模块 19
    5.3 周课表模块 20
    5.4 成绩查询模块 20
    5.5 等级考试模块 22
    5.6 新闻公告模块 23
    5.7 我的课程模块 24
    5.8 考试查询模块 25
    5.9 学校校历模块 26
    5.10 我的公选课模块 27
    5.11 我的信息模块 27
    6 系统测试 29
    6.1 测试方法的选择 29

    1. 白盒测试: 29
    2. 黑盒测试: 29
      6.2 测试内容 29
      6.3 测试环境 30
      6.4 测试评价 30
      6.5 开发过程的总结 31
      结束语 32
      致谢 33
      参考文献 34

    1 绪论
    在互联网技术以及移动智能设备快速发展的今天,人们对于跨时空和跨地域进行智能化的学习以及交流越来越追捧[1]。为了使当今高校教务管理能够有条不紊的进行,进一步的探索移动互联网时代高校教务管理工作的有效途径,充分认识并利用移动互联网的优势,将当下最流行的微信平台与传统教务系统相结合,具有十分重要的意义。
    本课题《基于微信公众平台的教务查询系统的设计与实现》使用的前端开发工具是微信Web开发者工具,此系统并没有使用传统的前后台相结合的方式,也没有涉及到数据库的使用,而是将前后端分离,采用Jsoup技术来解析学校教务网的URL地址以及HTML页面。通过Java语言、Jsoup技术来对教务查询小程序进行开发实现。此小程序结合大学生对教务查询系统的日常使用需求,学生可以在服务端页面进行的查询服务如下:新闻公告查询、周课表查询、成绩查询、等级考试成绩查询、学期课程查询、考试日程安排查询、学校校历查询、公共选修课信息查询以及基础的用户登录等功能。
    1.1 研究背景
    智能手机、微信在高校中的普及为微信平台应用于高校师生的教学和信息查询提供了基础保证,而传统基于PC端的高校教务系统已经满足不了学生教师的需求,为了解决这一问题已经有部分高校以微信公众平台为基础开发出移动教务系统,以移动智能终端作为访问入口,通过智能手机可以随时随地访问教务系统,并进行查询等一系列的操作,此举使师生之间沟通交流更为方便,也提高了工作学习的效率。
    微信是腾讯公司2011 年推出的一个为智能终端提供即时通讯服务的免费应用程序,可以通过朋友圈、公众平台、第三方平台等服务与好友分享精彩内容。微信的应用在我国高校学生中已基本普及。鉴于微信的便捷性、易用性、普及性等方面的考虑,传统的教务系统和微信公众平台的结合是大势所趋。微信公众平台为开发者提供了丰富的接口,利用这些接口开发者可以在较短时间内设计实现一个基于微信平台的教务查询系统。
    1.2 教务查询系统的现状和发展前景
    从相关数据反应,国外的高校教务管理系统不断沿着多终端、互联网和云存储的方向发展,当国内高校教务系统着手于PC端开发的时候,国外的教务系统则开始着眼于移动智能端教务系统的开发,可不受时空地域限制了解教学信息,使高校师生在教学生活方面更加便捷。而云存储技术的应用,使得系统的信息存储更加庞大,这对于高校学生选修课程提供了方便,也为不同学校之间的课程学习也提供了渠道,让教学和学习更加自由。同时,部分高校开发出来了针对网络平台的教务管理系统,不单单为校内和校外选修学习提供了方便,还吸引了更多喜欢交流学习的人参与高校活动,丰富了高校学习活动的氛围以及学习圈子。在几年之前,有条件的学校已经开始依托校园网围绕本校教务管理实际情况开发各管理模块;而条件差的学校只能使用不联网的教务系统,系统的功能十分简陋,仅实现其中一些相关的模块,也并不是所有的教务管理都能实现计算机信息管理。现在,在互联网飞速发展的状况以及需求的拉动之下,各个高校已经开始注重软件建设,以“强调应用”为主题、以软件开发为主的应用系统改造的新的阶段,主要是以PC端的教务查询系统为主,利用Spring+Spring MVC+MyBatis框架来实现[2]。当然现在绝大多数高校的教务系统已经趋于完善并逐渐向移动端转化,移动端的教务系统相对于传统PC端的教务系统更加的灵活、便捷,也是日后教务系统发展的趋势。
    截至2016年底,全国已经有约9.27亿用户注册了微信,而到2018年底,微信月活跃用户已达10亿,其中占比最高的是高校学生。因此各大高校开始依托微信公众平台来进行移动端教务系统的开发,并在近几年普及开来。在2017年微信小程序出现以后,年底就有58万个小程序诞生[3]。已经有部分高校依托微信平台开发出来教务查询系统小程序并投入使用,更加方便教师和学生的操作,提高了工作效率。例如闽南科技学院依托微信平台开发的教务系统小程序已经投入使用,并且相关功能基本完善。根据腾讯最新公布的数据,小程序的使用者已经高达1.7亿,小程序的数量也在急速攀升,几乎覆盖了全国大小城市[4]。
    1.3 系统的技术架构
    小程序版的教务查询系统相对于传统网页版的教务系统更加的方便、高效、美观。例如:查看方便、不受时间地域限制以及页面简洁美观等。这些优点更能让学生便捷高效的学习,查询他们所需要的信息。
    本课题实现的教务查询小程序:后端使用JAVA来开发,采用的是Springboot框架、Jsoup网页解析技术以及Maven技术;前端技术采用微信小程序、WEUI技术以及Wxparse技术。真正实现了开发方便、管理简单且易于操作的优点。
    1.4 论文框架
    本论文主要介绍了基于微信平台的校园教务查询系统的开发过程,包括绪论、需求分析、系统设计、详细功能模块设计、功能显示、系统测试等,共分为六章,每章内容分别如下:
    第一章,绪论。简要介绍了基于微信平台的校园教务系统的现状和研究背景,对教务查询系统的发展前景进行讨论,并简单阐述了论文各章节的内容。
    第二章,系统需求分析。主要介绍了系统的需求,根据需求分析了系统的用例,并对系统开发过程中应用到的一些技术的特点和这些技术对系统的作用进行介绍和分析。
    第三章,系统详细功能模块设计。分析了系统的功能模块以及业务流程,给出系统的总体框架。
    第四章,系统详细设计。具体分析系统的功能,按照功能绘制系统时序图,并对页面数据解析做了详细的步骤描述。
    第五章,系统功能的具体实现。详细介绍了用户登录进入主窗口的页面以及实现的几大模块。
    第六章,系统测试。包括系统测试环境,系统测试方法,测试内容以及对系统的评价和总结。

    2 系统需求分析
    在软件开发过程中要学会自己去分析需求,这是软件开发中一项必须要经历的过程。在软件开发中,无论采用哪种开发技术,都需要在研发前进行一系列的需求分析。以此确定用户对软件在功能、性能以及环境等方面的需求,将用户需求精准化、完全化,确保软件的实用性[5]。
    需求分析是确定软件的细节设计、功能和性能,是软件的一个重要组成部分[6]。做好需求分析,以更好地满足用户的需求,延长软件的生命周期,降低软件开发成本。
    基于微信平台的校园教务系统是一个操作简单、便捷的系统工程,该系统主要用于对高校教务运作管理。根据登录用户来说,主要是学生查询界面,针对于学生而服务,使用户进行更科学化、正规化管理,提高管理效率、降低管理成本。
    2.1 系统概述
    本课题实现的是一个基于微信平台的教务查询系统,本系统主要供学生日常教务查询使用。学生需要登录之后才可以进入首页来浏览系统内容、各个功能模块以及查看个人信息等。在登录之后,用户可以进行新闻公告查询、课表查询、公选课信息查询、成绩查询、等级考试查询、校历查询和考试时间查询等功能模块的操作。
    2.2 系统功能需求
    基于微信平台的校园教务系统的主要功能是让学生能够方便快捷的查询自己的课表信息、考试信息、成绩信息等,以达到方便、高效的目的。该系统具有以下优点:方便学生查询信息,降低成本;使学校更加高效方便的服务于学生,提高办公效率。
    本系统主要模块:
    1.用户登录
    为了防止本系统数据的泄露,用户只有在输入了正确的账号和密码之后才能进行相关操作。
    2.首页
    是本系统的主窗口,给用户提供了最主要的信息展示以及导航效果。
    3.公选课信息查询
    可以显示本学期以及之前所选公共课的信息。
    4.学校校历
    可以查看本学年的校历以及放假日程。
    5.考试查询
    查询本学期期末考试时间以及补考时间。
    6.成绩查询
    查询本学期考试成绩以及历史期末考试成绩。
    7.等级考试
    查询每次的英语等级考试成绩和计算机等级考试的成绩。
    8.新闻公告
    查看学校所发布的新闻及重要通知。
    9.我的课程
    查看本学期课程安排,包括课程名字以及教师名字等信息。
    10.个人信息
    可以看到自己的身份证、学院、班级等信息。
    2.3 系统用例图
    用例图是由参与者、用例以及它们之间的关系构成的用于描述系统功能的动态视图,主要用来描述用户需求。
    基于微信平台的校园教务系统的用例如图2.1所示:

    在这里插入图片描述
    2.4 技术平台
    本课题基于Java网络爬虫和微信小程序实现。前端参考了Bootstrap,Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成[7]。整个系统使用Spring Boot框架进行后台搭建以及数据网络传输,此后台相当于网站的后台服务,用于处理小程序服务请求,接收请求后再去教务网解析数据返回给小程序。使用Jsoup爬虫框架至校园教务网站抓取相关数据,使用微信小程序作为客户端,展示登录用户的数据,其中微信小程序引入了wxparse插件来解析html片段并展示数据至wxml,引入WXUI作为小程序的UI框架[8]。同时,整个后端项目使用maven管理项目,构建项目,不再以单独引入jar这种方式引入依赖,这样更加的方便高效。
    2.4.1 Spring Boot
    Spring Boot只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具[9]。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
    Spring Boot具有以下特点:

    1. 创建独立的Spring应用程序。
    2. 嵌入的Tomcat,无需部署WAR文件。
    3. 简化Maven配置。
    4. 自动配置Spring。
    5. 摒弃繁琐的xml配置,使用application.properties自由组合配置需要的属性。甚至web项目都不需要WEBAPP目录。
    6. 提供了一系列大型项目中常见的非功能性特性:如嵌入式服务器、安全指标、健康检测、外部配置等。
      2.4.2 微信小程序
      微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
      2017年1月9日,张小龙宣布微信小程序正式上线。
      微信小程序其实就是一个基于微信运行的程序,腾讯未来会把微信作为一个移动端OS,在微信基础上运营一个企业的小程序,这样方便用户使用,不需要下载和安装。
      微信将“小程序”定义为“一种新的应用形态”。微信方面强调:小程序、订阅号、服务号、企业号目前是并行的体系。
      小程序的推出并非意味着微信要来充当应用分发市场的角色,而是给一些优质服务提供一个开放的平台。一方面,小程序可以借助微信联合登录,和开发者已有的 App 后台的用户数据进行打通,但不会支持小程序和 App 直接的跳转。
      随着小程序正式上线,用户可以通过二维码、搜索等方式体验到开发者们开发的小程序。用户只要将微信更新至最新版本,体验过小程序后,便可在发现页面看到小程序TAB,但微信并不会通过这个地方向用户推荐小程序。
      小程序提供了显示在聊天顶部的功能,这意味着用户在使用小程序的过程中可以快速返回至聊天界面,而在聊天界面也可快速进入小程序,实现小程序与聊天之间的便捷切换。
      2.4.3 Maven
      Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务基于Java平台的项目创建、依赖管理和项目信息管理。Maven是Apache的顶级项目,解释为“专家、内行”。Maven自身是纯java开发的,是以通过一小段描述信息来管理项目的构建报告和文档的项目管理工具软件[10]。
      Maven为开发人员提供了一个构建完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
      此外,Maven能够很方便的帮你管理项目报告、生成站点、管理JAR文件等等。
      Maven具有如下几个优点:依赖管理、一键构建、跨平台和应用于大型开发项目可提高效率。
      2.4.4 Bootstrap
      Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等[11]。当然也包含了十几个自定义的jQuery 插件。
      2.4.5 Jsoup爬虫框架
      Jsoup 是一款基于Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM、CSS以及类似于jQuery的操作方法来取出和操作数据[12]。

    3 系统设计
    本系统采用的前后端分离实现,即小程序负责UI展示并发送http请求到后端,通过json数据进行展示,即前端与后端仅通过json数据关联。传统的方式则是将数据写入session,然后在web页面通过代码获取session数据后再将数据进行展示。
    3.1 系统总体设计
    本系统主要是为学生服务,学生的登录账号则是由学生入学的学号生成,学生可以在系统当中对所有模块进行查询,并且可以查看个人信息。功能模块如图3.1所示:
    在这里插入图片描述
    3.2 系统业务流程图
    在教务查询小程序中,学生必须在正确输入账户信息后,才可以对周课表、等级考试、考试日程等进行查询。用户平台的业务流程图如图3.2所示:
    在这里插入图片描述
    4 系统详细设计
    在开发过程中,需求和设计问题造成系统不正确、不完整是项目进度拖延甚至失败的一个主要因素。因此在有限时间以及有限资源下,一定是先解决当下最核心的问题,预测未来可能发生的问题,一步步解决最痛点的问题[13]。也就是说,系统设计是个迭代的过程,在迭代过程中发现问题并修复问题,即满足需求的系统是不断迭代出来的,这是一个持续的过程。所以我们在开始的时候也要有一个好的系统设计,这样未来能达到一个更好的目标。
    4.1 系统功能详解
    基于微信平台的教务查询系统主要分为学生进行查询的功能模块界面以及学生个人信息界面,依据基于微信平台的教务查询系统中所需要实现的基本功能,将所有功能分解为以下几个主要的模块来实现。具体的操作模块如下:
    1.用户登录:
    用户可以在该模块进行账户的登录。用户在登录的过程中,会有相应的信息提示来告知用户当前登录的信息。用户输入正确的账号密码即可进入主页面。
    2.周课表
    用户进入周课表模块后可以查询到本周所要上的课以及所在教学楼,这是每周都可以更新的,方便学生的学习活动。点击返回标志可以返回到主页面。
    3.成绩查询
    点击成绩查询图标,进入到期末考试成绩页面。页面最上面一排是各列所表示的信息,第一列显示的是学期,第二列显示的是课程代码,第三列显示的是课程名称,第四列显示的是学分,第五列显示的是所得成绩,第六列显示的是此科目所得绩点,最后一列显示的是本科目一共有多少学时。
    4.新闻公告
    新闻公告页面可以由两个途径进入:一是可以通过点击新闻公告图标进入新闻公告页面查看本学期新闻公告;二是点击主页面滚动新闻下的“查看更多”也可以进入新闻公告页面。
    5.我的课程
    点击我的课程图标进入本学期课程页面,可以查看本学期课程代码、课程名称、课程类别、考核方式、总学时、学分、上课老师以及实践周次。
    6.考试查询
    点击考试查询图标可以查看本学期考试安排,包括了学分制期末考试安排以及不及格考试安排,在考试安排中可以查看课程代码、课程名称、考试时间、考试地点以及监考老师。
    7.等级考试
    用户点击等级考试这一图标,进入到等级考试成绩查询页面。等级考试成绩页面分为八列:依次是学号、考生姓名、考试时间、考核方式、语种代码、语种名称、准考证号以及考试成绩。等级考试成绩主要存放的是每次英语四六级考试成绩以及计算机等级考试成绩。
    8.学校校历
    点击学校校历即可看到本学年的校历,是一张校历图片,主要包含了节假日以及寒暑假的放假时间。
    9.我的公选课
    当用户点击我的公选课时,进入到公选课信息页面。公选课信息页面包含了每学期所选公共课,并且包含了学期信息、课程代码、公选课的名称、课程类别、学分、上课教师以及上课时间。
    10.个人信息
    个人信息与主页分开,是一个单独的页面。用户点击个人图标,即可查看自己的班级编号、班级名称、学号、姓名、性别、出生日期、学制、院系名称以及专业名称。在页面的顶端还可获取与之相关联微信的头像以及昵称。
    4.1.1 系统时序图
    学生在登录的情况下可以查询自己的期末考试成绩,待后台接受查询请求,返回数据后即可查看,其时序图如图4.1所示:
    在这里插入图片描述
    。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。。。。

    全部内容点击下载:论文下载地址》》》》

    展开全文
  • 网页级别批量查询系统系统结构:关键词显示, ======窗口程序集1 || ||------关键词显示 || ||------__启动窗口_创建完毕 || ||------_按钮添加_被单击 || ||------_列表框1_列表被选择 || ||------_按钮
  • 但是我这个报错了,后经查找错误日志发现可能是自己建的额外没用的网站,文件访问权限的原因,后把网站删掉了,就安装好了。 安装好后,运行webService 出现这个问题: 没有为请求的 URL 配置默认文档,并且没有...

    VS2017运行webService 时报错:

    于是,开始找原因,用VS2012打开时,报错,没有截图,但是类似这个问题,

    只不过,我的问题提示的是未能配置为ASP.NET 4.5。

    随后我查找如何配置ASP.NET 4.0,需要如下操作:

     

    点开Internet Information Services下的Web管理工具的全部,点击确定

    接下来就是要设置IIS的.net framework版本

    在运行中输入inetmgr

    点击右上角的更改.NET Framwork版本,选择如图所示

    最后,Ctrl+R,打开命令窗口,输入%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

    正常情况下会出现这样的提示:

    但是我这个报错了,后经查找错误日志发现可能是自己建的额外没用的网站,文件访问权限的原因,后把网站删掉了,就安装好了。

    安装好后,运行webService 出现这个问题:没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览。依照下面的方法,启用了,最后可以运行webService了

    首先检查电脑中的IIS服务管理是否启用,启用方式:打开“打开启用或关闭Windows功能”,找到IIS服务,并勾选需要打开的服务,开启后,打开管理工具,看到IIS管理器,就启用了IIS服务。再次调试程序,问题可解决。(或通过开始--运行--cmd,打开命令行提示符,输入命令如下C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 来运行注册iis。)

    仍有问题,可尝试以下操作:使用 IIS 管理器启用目录浏览(如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在)打开 IIS 管理器。在“功能”视图中,双击“目录浏览”。在“目录浏览”页上,在“操作”窗格中单击“启用”。确认站点或应用程序配置文件中的configuration/system.webServer/directoryBrowse@enabled 特性被设置为 True。

    展开全文
  • 微信小程序内嵌网页链接

    千次阅读 2019-03-20 16:51:27
    微信小程序内嵌网页链接 微信小程序和浏览器的环境不同,微信小程序中的所有外部连接都必须部署业务域名成功后才能实现跳转访问 不管是a标签的超链接,还是iframe等等都需要在微信公众平台部署业务域名才可访问 ...

    微信小程序内嵌网页链接

    微信小程序和浏览器的环境不同,微信小程序中的所有外部连接都必须部署业务域名成功后才能实现跳转访问

    不管是a标签的超链接,还是iframe等等都需要在微信公众平台部署业务域名才可访问

    若是内嵌微信公众号文章的话则不需要部署,但需要关联微信公众号

    需要提前注意几点:
    1.个人和海外类型的小程序暂不支持使用!
    2.使用微信官方组件web-view,此组件会覆盖页面中所有其他组件,铺满整个小程序页面,除了小程序原生的tabbar
    3.部署业务域名时要求使用的是https
    4.部署业务域名时要求业务域名需经过ICP备案,若是海外域名则无法部署
    使用微信官方组件web-view:
    在这里插入图片描述

    下面来介绍具体步骤:

    内嵌公众号文章

    要求:公众号文章需与小程序需关联

    1.关联公众号

    在这里插入图片描述

    2.使用web-view嵌入公众号文章

    < !-- html -->
     <!-- 指向关联的公众号文章的地址 -->
    <web-view src="https://XXXXXXXXXXXX/"></web-view>
    

    内嵌外部网页

    1.下载部署校验文件

    登陆微信开放平台小程序页面,在“业务域名”中添加,如下图 :
    在这里插入图片描述在这里插入图片描述
    在此下载校验文件,并将校验文件放入指定位置:

    1.业务域名需经过ICP备案,新备案域名需24小时后才可配置。域名格式只支持英文大小写字母、数字及“- ”,不支持IP地址。配置业务域名后,可打开任意合法的子域名。
    2.将文件放置在域名根目录下,例如wx.qq.com,并确保可以访问该文件。
    例如如果想保存的业务为https://test.com/,下载下来的校验文件为AbC.txt,则需要确保https://test.com/AbC.txt能够访问。

    2.添加业务域名

    校验文件部署成功后在此添加业务域名

    注意几点:

    1.业务域名是不需要加前面的https://的
    2.业务域名须填写根域名,例如:如果下载下来的校验文件为AbC.txt,并且https://test.com/AbC.txt能够访问 那么只需填写test.com

    在这里插入图片描述
    目前不少开发者在设置业务域名时,发现检查校验文件失败,可先按照如下步骤进行自查:

    1.业务域名需经过ICP备案,新备案域名需24小时后才可配置。域名格式只支持英文大小写字母、数字及“- ”,不支持IP地址。配置业务域名后,可打开任意合法的子域名。
    2.将文件放置在域名根目录下,例如wx.qq.com,并确保可以访问该文件。
    例如如果想保存的业务为https://test.com/,下载下来的校验文件为AbC.txt,则需要确保https://test.com/AbC.txt能够访问。
    3.校验文件内容错误。校验文件内容一般是非HTML数据,如果下载下来的校验文件内容为HTML数据,一般为登录态过期。请重新登录小程序下载校验文件。
    4.使用4G网络尝试访问链接,确认自身服务器没有拦截请求(常见于设置了白名单或者防火墙的服务器,需开发者自行确认下)
    5.https证书过期。请确保https证书处于有效期内。
    6.使用curl 测试链接,确保curl能够正常访问链接,且curl出来的内容为校验文件内容。
    7.使用time curl https://test.com/abc.txt查看链接时间,建议耗时在1s之内。
    8.请确保url中的文件名与下载下来的文件名大小写一致。如下载的文件是AbC.txt,确保url是https://test.com/AbC.txt,不能是https://test.com/abc.txt
    9.部分用户的服务器配置较陈旧,安全性差(如配置 768位 的 DH),为了保证通信安全,微信后台不支持,请更新服务器配置。
    (1)通过https://cloud.tencent.com/product/tools#userDefined12,检测网址是否支持TLS1.2。
    (2)可通过工具 https://www.ssllabs.com/ssltest/analyze.html 检查自己的服务器,对该工具标红的各项漏洞逐项修补,建议更新配置直到该工具打分为 C及以上 。
    10. 如上述检查都没有问题,请重新下载校验文件重试,确保上传到服务器的文件内容与新下载的文件内容一致。

    3.使用web-view嵌入外部链接

    <!-- html -->
    <!-- 指向嵌入外部链接的地址 -->
    <web-view src="https://XXXXXXXXXXXX/"></web-view>
    

    关闭校验

    最后,如果想暂时预览效果,可在开发者工具中设置关闭校验
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 前言:老王之前看的一些快递查询程序的制作教程基本都是利用百度api store的接口进行开发的,然鹅...这个网站已经用不了了,so...教程里的一些部分就不是很适合,新手看起来会有些蓝瘦(比如本菜鸟hhhhh....)这里...
  • 微信小程序开发--------【笔记】 笔记-2020-07-27 1.前端页面绑定一个事件 getData <button type="primary" bindtap="getData">点击获取数据</button> 2.在js文件中写getData函数,测试是否绑定成功 ...
  • 只是一个使用Python,一些JavaScript和一些简单HTML的简单Minecraft Server查询网站应用程序。 该项目适用于希望托管网站以专门显示Minecraft服务器当前状态的人们。 如何安装? 先决条件和依赖 Apache或任何其他...
  • 微信小程序跳转到H5网页

    万次阅读 2019-06-17 19:04:54
    程序是一种不用下载就能使用的应用,也是一门槛非常高的创新,经过将近两年的发展,已经构造了新的小程序开发环境和开发者生态。小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,现在...
  • 正如 Electron 官方所说“如果你可以建一个网站,你就可以建一个桌面应用程序”。作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和...
  • 程序webview内网页实现微信支付

    万次阅读 热门讨论 2019-08-14 21:23:37
    程序支持webview以后,我们开发的好多h5页面,就可以直接在小程序里使用了,比如我们开发的微信商城,文章详情页,商品详情页,就可以开发一套,多处使用了。我们今天来讲一讲。在小程序的webview里实现微信支付...
  • 将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。 A2:...
  • “未能加载文件或程序集“xxx”或它的某一个依赖。试图加载格式不正确的程序。”这个错误可能在IIS或VS中出现,一般是平台和dll版本不一致导致的。一、VS中解决方案在用VS打开新web项目的时候,编译运行可能会报着...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 399,517
精华内容 159,806
关键字:

网页查询项程序