当前位置: 首页 > news >正文

服务器前后端学习理解

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

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上手服务器

代码

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

  1. python服务端代码,命名为ajax_return.py
# 导入相关的包
from flask import Flask
import random
import redisapp = 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>
http://www.lryc.cn/news/148569.html

相关文章:

  • python-数据分析-numpy、pandas、matplotlib的常用方法
  • ChatGPT⼊门到精通(5):ChatGPT 和Claude区别
  • ChatGPT 总结数据分析的所有知识点
  • hadoop-HDFS
  • 0202hdfs的shell操作-hadoop-大数据学习
  • 生活小记-挂号信
  • 3D点云处理:基于PCA的计算点云位姿(占位待整理)
  • 本地私有仓库、harbor私有仓库部署与管理
  • 尚硅谷SpringMVC (5-8)
  • jupyter notebook中查看python版本的解决方案
  • 动态字符串 String (完整源码)
  • 【深度学习】实验05 构造神经网络示例
  • 用了这么久SpringBoot却还不知道的一个小技巧
  • Websocket、SessionCookie、前端基础知识
  • 【云原生进阶之PaaS中间件】第一章Redis-2.4缓存更新机制
  • Qt——事件处理详解
  • 基于位置管理的企业员工考勤打卡系统设计 微信小程序
  • adb 查找应用包名,应用 Activity 等信息
  • 八、SpringBoot集成Kafka
  • 联网智能实时监控静电离子风机的工作流程
  • 第12章 微信支付
  • Java基础二十二(对集合元素排序比较)
  • (15)线程的实例认识:同步,异步,并发,并发回调,事件,异步线程,UI线程
  • 长胜证券:华为“黑科技”点燃A股炒作激情
  • Kubernetes(k8s)上部署redis5.0.14
  • frida动态调试入门01——定位关键代码
  • ASP.NET Core 8 的配置类 Configuration
  • MySql增量恢复
  • 设计模式--装饰者模式(Decorator Pattern)
  • Spring三级缓存解决循环依赖