服务器前后端学习理解

这篇具有很好参考价值的文章主要介绍了服务器前后端学习理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人兴趣,突然想起来记录一下

1. 背景

想做一个最简单的网页,点击按钮后,访问服务器的redis数据库,读取一个为hello的值并显示
首先用js写了一个脚本,使用redis包,读取到了数据,并使用consol.log进行显示
随后,使用live server,在vscode中,运行了html文件,可以在网页中打开页面,显示一个段落文本和按钮
然而,在结合js脚本到html后,运行时无反应。通过浏览器调试,看到无法使用request,继而导入redis包也不可能

2. 思考

  1. 首先,上述的思路就是有问题的
    nodejs+js在服务器端运行,基于redis包进行访问没有问题。然而,使用html后,该文件是发给了用户端,他并没有直接访问数据库的权限,就算给其权限,也就暴露了数据库IP和账密,可能导致安全问题
    因此,正确的做法是,html的js脚本,请求服务端,服务端在读取redis数据后,响应给用户,再进行显示
    该做法的好处是,前后端隔离

3. 进一步问题

前面讲到用户js脚本向服务器请求,进行搜索,一个方法是AJAX,即A+JS+XML的方法,异步请求,再通过js脚本部分修改网页,使网页得到更新
很好,ajax可以访问html、txt、和php等,其中php作为编程语言,可以访问数据库如mysql,得到数据库的数据。
然而,php并不熟悉,我想用python或其他的语言作为服务器代码,去处理ajax的请求
虽然网上说所有代码都可以作为服务端代码,但是并未搜索到如何结合ajax+python的相关资料,是我的搜索不对吗?待解决

4. python作为后端

python作为后端,可以使用现有框架flash,第一篇的参考:ajax+flask和python上手服务器

5. 代码

代码包括python代码和html,都运行。由于是在code server运行,请求ip会进行代理,需要合理修改
另外有redis数据库,对应修改IP或返回自定义的数据

  1. python服务端代码,命名为ajax_return.py
# 导入相关的包
from flask import Flask
import random
import redis


app = Flask(__name__)

# 对应ajax中url路径,响应/total_price路径的get和post请求,返回读取到的redis数据
@app.route('/total_price', methods=['GET', 'POST'])
def getRedisDat():
    value = ""
    try:
        r = redis.Redis(host='192.168.1.120', port=6379, db=0)
        value = r.get('test')
        r.close()
    except Exception() as e:
        print(e)

    return str(value)
    
# 主函数
if __name__ == '__main__':
	# 设置host与端口
    app.run(host = "127.0.0.1", port = 5000)

  1. html代码
<html>
<head>
    <meta charset="UTF-8">
    <title>ajax访问python服务端</title>

    <script>
        
    </script>

</head>

<body>
    <p id="id_p">
        你好呀
    </p>

    <input type="button" value="访问数据" id="but_1" onclick="doing()">


    <script>
        // 函数,使用ajax进行http请求,获得该http请求的响应,并显示在网页上
        function doing() {
                var xmlhttp;

                if (window.XMLHttpRequest)
                {
                    //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {
                    // IE6, IE5 浏览器执行代码
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }

                xmlhttp.onreadystatechange=function()
                {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                    {
                        document.getElementById("id_p").innerHTML = xmlhttp.responseText;
                    }
                }

                xmlhttp.open("GET", "http://192.168.1.120:8443/proxy/5000/total_price", true);		// 请求的IP需要对应修改
                xmlhttp.send();
        }

    </script>
 
</body>

</html>

6. axios

ajax比较简单,但是会有一些缺陷,前端框架vue,使用的axios,而不是ajax。
因此,axios可以进一步学习。
区别在于:1. 需要在head中添加如下代码,导入axios
<!-- 使用axios要提前导入 --> <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
2. 部分IE浏览器不支持,但是也不差了
参考代码:文章来源地址https://www.toymoban.com/news/detail-688081.html

<html>
<head>
    <meta charset="UTF-8">
    <title>axios访问python服务端</title>

    <!-- 使用axios要提前导入 -->
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>


</head>

<body>
    

    <input type="button" value="使用axios访问服务器" id="but_1" onclick="doing_axios()">
    <p id="id_p">
        axios返回数据
    </p>
    <input type="button" name="" id="but_2" value="使用ajax访问服务器" onclick="doing()">
    <p id="id_p1">
        ajax返回数据
    </p>


    <script>
        function axios_get() {
            axios.get("http://192.168.1.120:8443/proxy/5000/get_test")
            .then(response => {
                console.log(response)
            })
            .catch(error => {
                console.log(error)
            })
        }


        // https://blog.csdn.net/weixin_53154312/article/details/130857155/
        function doing_axios() {

            // 发送GET请求
            axios.get("http://192.168.1.120:8443/proxy/5000/total_price")
            .then(response => {
                // 请求成功时的处理
                console.log(response.data);
                document.getElementById("id_p").innerHTML = response.data;
            })
            .catch(error => {
                // 请求失败时的处理
                document.getElementById("id_p").innerHTML = "err";
            });

        }

        // 函数,使用ajax进行http请求,获得该http请求的响应,并显示在网页上
        function doing() {
                var xmlhttp;

                if (window.XMLHttpRequest)
                {
                    //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {
                    // IE6, IE5 浏览器执行代码
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }

                xmlhttp.onreadystatechange=function()
                {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200)
                    {
                        document.getElementById("id_p1").innerHTML = xmlhttp.responseText;
                    }
                }

                xmlhttp.open("GET", "http://192.168.1.120:8443/proxy/5000/total_price", true);
                xmlhttp.send();
        }

    </script>
 
</body>

</html>

到了这里,关于服务器前后端学习理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 疯狂Node.js服务器篇:使用VsCode搭建Node.js开发环境

    疯狂Node.js服务器篇:使用VsCode搭建Node.js开发环境 Node.js作为一种流行的服务器端JavaScript运行环境,提供了强大的功能和便捷的开发体验。在本篇文章中,我们将探索如何使用VsCode搭建Node.js开发环境,以便更高效地进行服务器端应用程序的开发。 步骤1:安装Node.js 首先,我们

    2024年02月08日
    浏览(54)
  • Node.js怎么搭建HTTP服务器

    在 Node.js 中搭建一个简单的 HTTP 服务器非常容易。以下是一个基本的示例,演示如何使用 Node.js 创建一个简单的 HTTP 服务器: // 导入 http 模块 const http = require(\\\'http\\\'); // 创建一个 HTTP 服务器 const server = http.createServer((req, res) = { // 设置响应头 res.writeHead(200, {\\\'Content-Type\\\': \\\'text/pl

    2024年02月10日
    浏览(38)
  • Node.js中的单线程服务器

    为了解决多线程服务器在高并发的I/O密集型应用中的不足,同时避免早期简单单线程服务器的性能障碍,Node.js采用了基于\\\"事件循环\\\"的非阻塞式单线程模型,实现了如下两个目标: (1)保证每个请求都可以快速响应; (2)实现远超过多线程模型的并发连接数。 提示: Nod

    2024年02月08日
    浏览(34)
  • 第六章认识Node.js服务器开发

    目录 Node.js同步和异步编程 基本概念 执行方式 获取异步API的返回值 网页基础扩展 项目 Node.js同步和异步编程 基本概念 同步API(应用程序编程接口)是指只有当前API执行完毕后才能继续执行下一个API。 形象的说同步模式就是一个服务员在某一个时间段内只服务一个客人的模

    2024年02月05日
    浏览(40)
  • Node.js 的 5 个常见服务器漏洞

    Node.js 是一个强大且广泛使用的 JavaScript 运行时环境,用于构建服务器端应用程序。然而,与任何其他软件一样, Node.js 也有自己的一些漏洞,如果处理不当,可能会导致安全问题。请注意,这些漏洞并不是 Node.js 所独有的,它们可以在每种后端编程语言中找到。 在本文中,

    2024年04月14日
    浏览(21)
  • 第五章认识Node.js服务器开发

    目录 认识服务器开发 基本概念 基本作用 基本优势 基本组成 Node.js网站服务器 基本概述 基本步骤 基本特点 认识HTTP协议 基本概述 HTTP的请求消息和响应消息 请求消息 响应消息 HTTP请求处理与响应处理 GET请求参数 POST请求参数 路由 静态资源访问 认识服务器开发 基本概念 服

    2024年02月07日
    浏览(39)
  • 超简单的node.js服务器配置(1)

    node安装教程我之前有出过,不会的可以去看一下(node.js安装教程) 1.引入http模块(这个模块是node.js内置的模块) 2.创建服务器实例并监听端口(8080)开启服务器,监听客户端请求并进行处理 打开服务器地址 127.0.0.1:8080/ 查看一下效果: http.createServer()方法有一个参数为回调函数

    2024年02月15日
    浏览(35)
  • 微信小程序搭载node.js服务器(简)

    此文章用到的是用node.js搭载的服务器! 检测电脑是否安装node.js,可以用【 cmd/Power shell 】命令检测,也可以用【git-bash】,这里就用git-bash进行演示,没有git-bash可以安装一下。 如果有对应的版本号即为已经安装完成! 未安装的附上链接了: node.js安装 : Download | Node.js Gi

    2023年04月08日
    浏览(36)
  • 【使用Node.js搭建自己的HTTP服务器】

    Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原为 Node.js Foundation,已与 JS Foundation 合并)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高

    2024年02月11日
    浏览(42)
  • 【服务器】CentOS 7 安装Node.js开发环境

    部署Node.js环境(使用NVM安装多个Node.js版本): NVM(Node VersionManager)是Node.js的版本管理软件,使您可以轻松在Node.js各个版本间进行切换。适用于长期做node开发的人员或有快速更新node版本、快速切换node版本的场景。 具体操作步骤如下: 服务器系统 :CentOS 7.9.2009 x86_64(Py3.7.9) a. 安

    2024年01月25日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包