1.  

1.使用node http-server 起本地服务器  或者打开nginx 直接用nginx的默认页面也可以 (用下面的html文件替换nginx下html文件夹下的index.html)

  1. http-server -p 8888

然后在浏览器打开 localhost:8888 打开页面 
jQuery ajax 请求数据

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>node</title>
  5. </head>
  6. <body>
  7. <p id="text">jquery 请求数据</p>
  8. <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  9. <script>
  10. function get(){
  11. $.ajax({
  12. type:'get',
  13. //url: 'localhost: 8081/docs/',//由于 服务启动的8888端口请求 8081端口 跨域,用nginx配置跨域
  14. url: '/docs/',
  15. success:function(data){
  16. $('#text').html(data.data)
  17. },
  18. error:function(err){
  19. console.log(err);
  20. }
  21. })
  22. }
  23.  
  24. </script>
  25. <input type="hidden" id="dat3" value="3">
  26. <button onClick="get()">请求数据</button>
  27. </body>
  28. </html>
  1. 2.由于 服务启动的8888/80端口请求 8081端口 跨域,用nginx配置跨域 nginx下载
  1. server {
  2. listen 80;
  3. server_name localhost;
  4.  
  5. #charset koi8-r;
  6.  
  7. access_log logs/host.access.log;
  8.  
  9. location / {
  10.  
  11. root html;
  12. index index.html index.htm;
  13.  
  14. }
  15.  
  16. location ^~ /docs/ {
  17. proxy_pass http://localhost:8081;
  18. }
  1. 3.python接口文件 新建api.py bash下打开 python api.py
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import pymysql #导入 pymysql
  4. import urllib2
  5.  
  6. import json
  7. from urlparse import parse_qs
  8. from wsgiref.simple_server import make_server
  9.  
  10. #打开数据库连接
  11. def get_data():
  12. db= pymysql.connect(host="localhost",user="root",
  13. password="",db="user",port=3306)
  14.  
  15. # 使用cursor()方法获取操作游标
  16. cur = db.cursor()
  17.  
  18. #1.查询操作
  19. # 编写sql 查询语句 user 对应我的表名
  20. sql = "select * from users"
  21. # results =
  22. try:
  23. cur.execute(sql) #执行sql语句
  24.  
  25. results = cur.fetchall() #获取查询的所有记录
  26. # print("id","name","password")
  27. #遍历结果
  28. for row in results :
  29. id = row[0]
  30. name = row[1]
  31. password = row[2]
  32. # print(id,name,password)
  33. return results
  34. except Exception as e:
  35. raise e
  36. finally:
  37. db.close() #关闭连接
  38.  
  39. # 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。
  40.  
  41. def application(environ, start_response):
  42. # 定义文件请求的类型和当前请求成功的code
  43. start_response('200 OK', [('Content-Type', 'text/html')])
  44. # environ是当前请求的所有数据,包括Header和URL,body,这里只涉及到get
  45. # 获取当前get请求的所有数据,返回是string类型
  46. params = parse_qs(environ['QUERY_STRING'])
  47. # 获取get中key为name的值
  48. name = params.get('name', [''])[0]
  49. no = params.get('no', [''])[0]
  50.  
  51. # 组成一个数组,数组中只有一个字典
  52. # dic = {'name': 'name', 'no': 'no'}
  53.    #dic = get_data()
  54.  
  55. dic = {'data':[ { 'a' : ['',''], 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]}
  56.  
  57. # dic = get();
  58. return [json.dumps(dic)]
  59.  
  60. if __name__ == "__main__":
  61.   url = '127.0.0.1' # 监听的请求url
  62. port = 8081 #监听的端口 只要是8081端口的都会返回数据,下面请求的url加了/docs/ 是nginx 匹配的需要
  63. # httpd = make_server("0.0.0.0", port, application)
  64. httpd = make_server(url, port, application)
  65. print "serving http on port {0}...".format(str(port))
  66. httpd.serve_forever()

配置ok 点击打开页面请求下 是不是 是不是请求到数据了
数据自定义 不用再求后端修改接口了。

有问题 欢迎来指点。

python 前后端分离 简单的数据库返回接口的更多相关文章

  1. 前后端分离,如何防止api接口被恶意调用或攻击

    无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了.目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提 ...

  2. SpringBoot+Shiro+JWT前后端分离实现用户权限和接口权限控制

    1. 引入需要的依赖 我使用的是原生jwt的依赖包,在maven仓库中有好多衍生的jwt依赖包,可自己在maven仓库中选择,实现大同小异. <dependency> <groupI ...

  3. thinkphp 前后端分离

    thinkphp 前后端分离 简单记录一下之前学习tp的历程吧. 前端HTML页面渲染 <?php namespace app\index\controller; use think\Contr ...

  4. 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神

    1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...

  5. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存

    代码已上传Github+Gitee,文末有地址 上回<从壹开始前后端分离[ .NET Core2.0 Api + Vue 2.0 + AOP + 分布式]框架之九 || 依赖注入IoC学习 + ...

  6. 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库

    采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...

  7. SpringBootSecurity学习(12)前后端分离版之简单登录

    前后端分离 前面讨论了springboot下security很多常用的功能,其它的功能建议参考官方文档学习.网页版登录的形式现在已经不是最流行的了,最流行的是前后端分离的登录方式,前端单独成为一个项目 ...

  8. Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存

    本文梯子 本文3.0版本文章 代码已上传Github+Gitee,文末有地址 大神反馈: 零.今天完成的深红色部分 一.AOP 之 实现日志记录(服务层) 1.定义服务接口与实现类 2.在API层中添 ...

  9. spring security简单教程以及实现完全前后端分离

    spring security是spring家族的一个安全框架,入门简单.对比shiro,它自带登录页面,自动完成登录操作.权限过滤时支持http方法过滤. 在新手入门使用时,只需要简单的配置,即可实 ...

随机推荐

  1. mxnet ubuntu cpu安装

    sudo apt-get update sudo apt-get install -y build-essential Git libblas-dev libopencv-dev git clone ...

  2. Matlab:高阶常微分三种边界条件的特殊解法(隐式Euler)

    函数文件1: function b=F(f,x0,u,h) b(1,1)=x0(1)-h*x0(2)-u(1); b(2,1)=x0(2)+h*x0(1)^2-u(2)-h*f; 函数文件2: fun ...

  3. Canvas---clearRect()清除圆形区域

    function clearArcFun(x,y,r,cxt){ //(x,y)为要清除的圆的圆心,r为半径,cxt为context var stepClear=1;//别忘记这一步 clearArc ...

  4. 数据结构与算法之PHP排序算法(快速排序)

    一.基本思想 快速排序又称划分交换排序,是对冒泡排序的一种改进,亦是分而治之思想在排序算法上的典型应用. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部 ...

  5. Solr安装使用教程

    一.安装 1.1 安装jdk solr是基于lucene而lucene是java写的,所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本,下载安装jdk并设置JAVA ...

  6. 如何加快C++代码的编译速度 转 ccache

    http://www.cnblogs.com/baiyanhuang/archive/2010/01/17/1730717.html   C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速 ...

  7. Oracle数据库统一审核的启用测试与关闭

    环境:windows server 2008.Oracle 12c R2 下面的步骤,连接为sysdba,除非指定了其它方式. (1)运行如下查询,确定统一审核是否启用了: select value ...

  8. 马凯军201771010116《面向对象程序设计(java)》第三周学习总结

    第一部分  理论知识学习与复习部分 1.在第一章里主要对Java中常见的误解这部分进行了细读,也对Java的“白皮书”术语认真的看了一遍,对Java术语有了更深的理解. 2.在第二章中对Java程序的 ...

  9. 剑指Offer 8. 跳台阶 (递归)

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 题目地址 https://www.nowcoder.com/pract ...

  10. 自动化测试-15.selenium单选框与复选框状态判断

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...