使用 Serverless(SCF) 快速架构院校查询小工具

终于终于,研究了半拉小时折腾出来了,今天给大家分享如何使用纯SCF来制作一个院校查询的小工具。

这个工具需要两个云函数,一个云函数为了独立调用方便做API的调用,另一个函数来展示我们的页面。

原理非常简单,如下图所示

完成的效果如下:

展示端:https://service-fib8bidg-1251746107.gz.apigw.tencentcs.com/release/showhtml

 

 

API端:https://service-4jpdvu5o-1251746107.gz.apigw.tencentcs.com/release/educhaxun/?groups=%E6%95%99%E8%82%B2%E9%83%A8

我们要完成此单页的话,数据库是关键,这里我会在文章最后分享出我的SQL数据库文件,大家不用担心

 

 

数据库的结构如图所示,这边的话也是使用 PHP+MySQL 来完成此作品。

首先,我们来准备一些工具:

腾讯云SCF平台: https://cloud.tencent.com/product/scf

腾讯云SCF CLI 工具: https://cloud.tencent.com/document/product/583/33449

腾讯云SCF VSCode 工具:https://cloud.tencent.com/document/product/583/37511

具体的安装注册这边就不在展示了,这些工具会极大的方便我们对代码做部署和拉取。

其中注意的是 CLI 工具依赖 Python ,可以去Python 官网直接下载  3.6+ 顺带装上 pip ,然后执行 pip install scf  即可。

然后我们来创建第一个函数,我们的主API函数 educhaxun,使用PHP 7.0创建

核心代码如下 :

$edu = $event['queryString']['edu'];
$code  = $event['queryString']['code'];
$groups = $event['queryString']['groups'];
$local = $event['queryString']['local'];
$level = $event['queryString']['level'];

if ($edu != null) {
  $sql = "SELECT id, edu ,code,groups,local,level,othen FROM edu where edu LIKE '%".$edu."%'";
} else if ($code != null) {
  $sql = "SELECT id, edu ,code,groups,local,level,othen FROM edu where code LIKE '%".$code."%'";
} else if ($groups != null) {
  $sql = "SELECT id, edu ,code,groups,local,level,othen FROM edu where groups LIKE '%".$groups."%'";
}else if ($local != null) {
  $sql = "SELECT id, edu ,code,groups,local,level,othen FROM edu where local LIKE '%".$local."%'";
}else if ($level != null) {
  $sql = "SELECT id, edu ,code,groups,local,level,othen FROM edu where level LIKE '%".$level."%'";
}
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
  // 输出数据
  $ends = array();
  while ($rows=mysqli_fetch_array($result)){
    $count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小  
    for($i=0;$i<$count;$i++){  
        unset($rows[$i]);//删除冗余数据  
      } 
    array_push($ends,$rows);
    }
}
return $ends;

思路如下,我们需要先拿到get请求的数值,然后将请求值传递给数据库做查询,并输出数据。

首先,我们使用云函数特殊变量 $event,该变量可以参数传递触发事件数据,我们来看看它的返回值到底是怎样的把:

 

 

请求一个数据并 return 后,我们发现我们的请求值在 queryString 字段,所以我们只要拿到该字段的返回请求,就可以当 get 传递值了,我第一次想到的方法是使用 $_GET[‘value’] 去取值,当然这样是取不到的。

后面的代码就很好理解了,判断并查询输出相应数值。当然,感兴趣的同学可以试试级联查询,这边就不多做解释了。

其次,我们需要设置添加 APIGW 的触发网关,这块的设置也很有讲究,由于我们没有使用官方的默认返回格式,所以“是否启用响应集成”这块务必选为否,让请求直接穿透即可。请求鉴权这块我们需要让另一个云函数调用,所以需要选择“支持CORS”

 

 

我们的最终效果如下:

 

 

至此,我们的第一个函数就制作完成了,下面我们需要制作我们的第二个展示函数,这块就非常简单了,使用HTML单页即可完成

核心代码如下:

<script>
  document.getElementById("getForm").addEventListener("submit",getForm);
  function getForm(e){
      e.preventDefault();
      let sinpt = document.getElementById('sinput').value;
      let sselect = document.getElementById('edu-select').value;
      if (sinpt == "" || sinpt == null || sinpt == undefined) {
        $('#err').modal();
      }else{
      let xhr = new XMLHttpRequest();
      xhr.open("GET","https://service-4jpdvu5o-1251746107.gz.apigw.tencentcs.com/release/educhaxun/?"+sselect+"="+sinpt, true);
      xhr.onload = function(){
        var data = this.responseText;
        var datajson = JSON.parse(data);
        console.log(datajson);
        if (datajson == "" || datajson == null || datajson == undefined){
          $('#null').modal();
        }else{
        var html="";
        for(var i = 0; i< datajson.length; i++){
        html += "<tr><td>"+datajson[i].id+"</td><td>"+datajson[i].edu+"</td><td>"+datajson[i].code+"</td><td>"+datajson[i].groups+"</td><td>"+datajson[i].local+"</td> <td>"+datajson[i].level+"</td><td>"+datajson[i].othen+"</td></tr>";
        }
        var html1="<div class='am-scrollable-horizontal am-animation-fade'><table class='am-table am-table-bordered am-table-striped am-text-nowrap'> <thead><tr><th>序列</th><th>院校名称</th><th>院校标识码</th><th>主管部门</th><th>所在地</th><th>办学层次</th><th>备注</th></tr></thead><tbody>";
        var html2="</tbody></table></div>";
        document.getElementById("result").innerHTML =html1+html+html2;
        }
      }
      xhr.send();
    }
 }
</script>

值得注意的是,云函数默认不支持单独展示HTML,我们需要将它封装一个函数,写法参照官网即可:

const fs = require('fs')
const path = require('path')

exports.main_handler = async (event, context, callback) => {
  let html = fs.readFileSync(path.resolve(__dirname, './index.html'), {
    encoding: 'utf-8'
  })
  return {
    isBase64Encoded: false,
    statusCode: 200,
    headers: { 'Content-Type': 'text/html; charset=utf-8' },
    body: html
  }
}

同样,我们需要将它发布为API网关的形式进行访问,当然为了访问方便&好看的话,我们可以在API GW 自定义我们的访问域名。这块的操作都很简单,就不在赘述了。

下面是完整的代码包和数据库文件,觉得有用的同学别忘了留言哦~~

 

腾讯云 COS 下载地址 : http://95s.pw/3g 

 



201 thoughts on “使用 Serverless(SCF) 快速架构院校查询小工具”

  • Nice article inspiring thanks. Hello Administ . child porn 現場兒童色情片 活婴儿色情片 儿童色情 児童ポルノ 兒童色情 国产线播放免费人成视频播放 国产线播放免费人成视频播放

  • Nice article inspiring thanks. Hello Administ . child porn 現場兒童色情片 活婴儿色情片 儿童色情 児童ポルノ 兒童色情 国产线播放免费人成视频播放 国产线播放免费人成视频播放

  • Thank you great posting about essential oil. Hello Administ . child porn 現場兒童色情片 活婴儿色情片 儿童色情 児童ポルノ 兒童色情 国产线播放免费人成视频播放 国产线播放免费人成视频播放

  • Thank you for content. Area rugs and online home decor store. Hello Administ . child porn 現場兒童色情片 活婴儿色情片 儿童色情 児童ポルノ 兒童色情 国产线播放免费人成视频播放 国产线播放免费人成视频播放

  • Daha Fazla Bilgi AL Cami Halısı Özellikleri İnsanları bir araya getiren ve Müslümanların ibadet etmek için bir arada bulundukları camilerin dış yapısı kadar iç yapısı da oldukça önemlidir. İbadet eden kişilerin huzurlu bir biçimde ibadetlerini gerçekleştirebilmeleri için cami içerisinde kullanılan motif, desen, halı gibi detaylar önemlidir. Camilerden içeri girildiği zaman ilk dikkat çeken ve iç yapıyı tamamlayan bir detay olan cami halıları da bu açıdan önemle seçilmesi gereken bir unsurdur. Cami halısı kullanımında dikkat edilmesi gereken birçok önemli detay bulunur. Bunlardan ilki halının desen yapısıdır. Ülkemizde bulunan camilerde en çok tercih edilen desen türü ise saflı desen ve göbek desen halı seçenekleridir. Dikkat edilmesi gereken diğer bir detay ise halının rengidir. Cami halısının rengi iç mimariye uygun, kolay kirlenmeyecek ve leke göstermeyecek ve ibadet sırasında kişilerin dikkatini dağıtmayacak, zihin karışıklığına sebep vermeyecek bir renkte olmalıdır.. Cami halısı kullanımında dikkat edilmesi gereken diğer de aylardan bir tanesi de üretimde kullanılan hammaddedir. İnsan derisinin halı ile temas etmesi göz önüne alındığında hammaddenin sağlığa zararlı olmaması gerekir. Ayrıca kullanılan halının kir ve toz tutmaması da önemlidir, bu nedenle çoğunlukla yün halılar tercih edilir. Hem sağlık açısından hem de uzun süreli kullanım imkanı sunması nedeniyle en ideal hammadde tercihi yündür. Plastik ve türevi malzemeler ibadet sırasında yaşanabilecek elektriklenme ve dikkat dağıtma gibi etkenler yüzünden tercih edilmemektedir.

  • Cami Halısı Alırken Nelere Dikkat Etmelisin? Camiler Müslümanları bir araya getiren, birlikte ibadet etmelerini sağlayan ibadethanelerdir. Camilerin iç ve dış mimarisi de buna uygun olarak huzur verici bir şekilde tasarlanır. Bir camiden içeriye girildiği zaman dikkat çeken ilk detay şüphesiz ki cami halılarıdır. cami halısı modelleri birden çok türe sahiptir, çeşitli modellere sahip olan cami halılarını seçerken dikkat edilmesi gereken birtakım detaylar vardır.Cami halısı seçiminde dikkat edilmesi gereken ilk nokta cami halıların yumuşak bir yapıya sahip olmasıdır. İnce yapıda bir cami halısı zeminden gelen soğuğa engel olamaz ve ibadet eden kişiler için hastalık riski oluşturur, sert yapıda olan bir cami halısı ise bireylere rahatsızlık verebilir. Bu yüzden seçilen cami halısı kalın yapıda ve yumuşak olmalıdır. Bu yapıda seçilen cami halısı bireylerin ibadetlerini sağlıklı ve rahat şekilde gerçekleştirmelerini sağlar. Birden çok renge sahip olan ve kalabalık desenler bulunduran cami halıları bireylerin ibadetleri esnasında odaklanmalarına engel olur ve zihin karışıklığı oluşmasına neden olur. Bu sebeple seçilecek cami halısı caminin iç mimarisine uygun olmanın yanı sıra renk ve desen olarak sade olmalı ve her açıdan bütünlük oluşturmalıdır. Cami halısı seçiminde dikkat edilmesi gereken bir diğer nokta ise halıların leke tutmayan ve kolay kirlenmeyen bir yapıya sahip olmasıdır. Gün içerisinde çok sayıda insanın ziyaret ettiği camiler için kullanılacak halılar, kolay kirlenmeyen ve leke tutmayan yapıya sahip olmalıdır. Bu yapıya sahip olan cami halıları uzun süreli kullanım imkanı sunar. Halı seçiminde önemli olan diğer bir husus ise seçilecek halının nem ve rutubete karşı dayanıklı bir yapıya sahip olmasıdır. Nem ve rutubete karşı dayanıksız bir yapıda olan cami halıları kısa süre içerisinde yıpranır ve kötü kokuların oluşmasına neden olur.

  • Cami Halısı Fiyatları 2022 Cami halıları, ibadet eden kişilere en iyi şekilde hizmet eden, kaliteli ve uzun süreli kullanım imkanı sağlayan, geniş renk ve desen yelpazesine sahip olan halılardır. Cami halısı fiyatları; halının üretiminde kullanılan iplik türüne, ebatına, modeline ve daha birçok unsura bağlı olarak değişiklik gösterir. Bu nedenle sahip olmak istediğiniz cami halısı modeline karar verdikten sonra internet sitemizde yer alan iletişim bilgilerinden bizlere ulaşabilir ve cami halısı metrekare fiyatları ile ilgili en doğru bilgiye kolay şekilde ulaşabilirsiniz.

  • Daha Fazla Bilgi AL Yün Cami Halısı Geleneksel Türk motiflerine bağlı kalınarak üretilen saf yün cami halısını çok farklı ve özel bir kalite ile üretmektedir. Yün cami halısı, doğal bir ham madde olan yünden üretildiğinden insan sağlığına ve çevreye hiçbir zararı yoktur. Yün cami halı desenleri, kışın sıcak tutar ve yazın terletmez. Havadaki nem kuruyunca üzerindeki nemi geri verir. Böylece serili bulunduğu ortamda doğal nem ayarı yapar. Yün cami halısı desenlerinde kullanılan yün, aşınmaya karşı dayanıklı olduğu için uzun yıllar boyunca verimli ve sağlıklı bir şekilde kullanılabilir. Yün cami halıları ayak ve diz kısımlarının uyguladığı baskılara dayanıklıdır. Herhangi bir görüntü bozukluğu yaşanmaz. Yün Cami Halı desenleri tarihi camilerin dokusu ve motiflerine uygun olarak özel olarak tasarlanıp. 0 Yerli Üretimdir.

  • Akrilik Cami Halısı Cami Halısı ve duvardan duvara halılarda bir marka olan Selçuklu Cami Halısı Cami Halıları kurulduğu günden bu yana müşteri memnuniyeti ilkesi ile cami ve cemaatlerimizin beklentileri ve talepleri doğrultusunda en son teknolojiyi kullanarak sağlıklı, hijyenik, kaliteli ve istenilen özellikte Akrilik Cami Halısı, Yün Cami Halısı ürün seçenekleri ile saflı cami halısı, seccadeli cami halısı, göbekli cami halısı modellerinde hizmet sunmaktadır

  • Cami halılarını herhangi bir halı teminatçısından alamazsanız. Halk arasında halıcı ya da mobilyacı olarak bilinen esnaflar camiler için uygun halı bulundurmaz. Cami halısı satmak normal halı satmaktan daha uzun metrajlı ve daha yoğun çalışma ve uğraş isteyen bir iştir. Cami halıları satan firmalar arasında araştırma yapıp daha uygun fiyata daha yüksek ürün sunan firmaları tercih etmeniz önerilir. Cami halısı almak ya da fikir edinmek adına görmek ve incelemek istiyorsanız internette görsellerine bakabilirsiniz.

发表评论

邮箱地址不会被公开。 必填项已用*标注

32 − 24 =