python 前后端分离 简单的数据库返回接口
1.使用node http-server 起本地服务器 或者打开nginx 直接用nginx的默认页面也可以 (用下面的html文件替换nginx下html文件夹下的index.html)
- http-server -p 8888
然后在浏览器打开 localhost:8888 打开页面
jQuery ajax 请求数据
- <!DOCTYPE html>
- <html>
- <head>
- <title>node</title>
- </head>
- <body>
- <p id="text">jquery 请求数据</p>
- <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
- <script>
- function get(){
- $.ajax({
- type:'get',
- //url: 'localhost: 8081/docs/',//由于 服务启动的8888端口请求 8081端口 跨域,用nginx配置跨域
- url: '/docs/',
- success:function(data){
- $('#text').html(data.data)
- },
- error:function(err){
- console.log(err);
- }
- })
- }
- </script>
- <input type="hidden" id="dat3" value="3">
- <button onClick="get()">请求数据</button>
- </body>
- </html>
- 2.由于 服务启动的8888/80端口请求 8081端口 跨域,用nginx配置跨域 nginx下载
- server {
- listen 80;
- server_name localhost;
- #charset koi8-r;
- access_log logs/host.access.log;
- location / {
- root html;
- index index.html index.htm;
- }
- location ^~ /docs/ {
- proxy_pass http://localhost:8081;
- }
- 3.python接口文件 新建api.py 在bash下打开 python api.py
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import pymysql #导入 pymysql
- import urllib2
- import json
- from urlparse import parse_qs
- from wsgiref.simple_server import make_server
- #打开数据库连接
- def get_data():
- db= pymysql.connect(host="localhost",user="root",
- password="",db="user",port=3306)
- # 使用cursor()方法获取操作游标
- cur = db.cursor()
- #1.查询操作
- # 编写sql 查询语句 user 对应我的表名
- sql = "select * from users"
- # results =
- try:
- cur.execute(sql) #执行sql语句
- results = cur.fetchall() #获取查询的所有记录
- # print("id","name","password")
- #遍历结果
- for row in results :
- id = row[0]
- name = row[1]
- password = row[2]
- # print(id,name,password)
- return results
- except Exception as e:
- raise e
- finally:
- db.close() #关闭连接
- # 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。
- def application(environ, start_response):
- # 定义文件请求的类型和当前请求成功的code
- start_response('200 OK', [('Content-Type', 'text/html')])
- # environ是当前请求的所有数据,包括Header和URL,body,这里只涉及到get
- # 获取当前get请求的所有数据,返回是string类型
- params = parse_qs(environ['QUERY_STRING'])
- # 获取get中key为name的值
- name = params.get('name', [''])[0]
- no = params.get('no', [''])[0]
- # 组成一个数组,数组中只有一个字典
- # dic = {'name': 'name', 'no': 'no'}
- #dic = get_data()
- dic = {'data':[ { 'a' : ['',''], 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]}
- # dic = get();
- return [json.dumps(dic)]
- if __name__ == "__main__":
- url = '127.0.0.1' # 监听的请求url
- port = 8081 #监听的端口 只要是8081端口的都会返回数据,下面请求的url加了/docs/ 是nginx 匹配的需要
- # httpd = make_server("0.0.0.0", port, application)
- httpd = make_server(url, port, application)
- print "serving http on port {0}...".format(str(port))
- httpd.serve_forever()
配置ok 点击打开页面请求下 是不是 是不是请求到数据了
数据自定义 不用再求后端修改接口了。
有问题 欢迎来指点。
python 前后端分离 简单的数据库返回接口的更多相关文章
- 前后端分离,如何防止api接口被恶意调用或攻击
无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了.目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提 ...
- SpringBoot+Shiro+JWT前后端分离实现用户权限和接口权限控制
1. 引入需要的依赖 我使用的是原生jwt的依赖包,在maven仓库中有好多衍生的jwt依赖包,可自己在maven仓库中选择,实现大同小异. <dependency> <groupI ...
- thinkphp 前后端分离
thinkphp 前后端分离 简单记录一下之前学习tp的历程吧. 前端HTML页面渲染 <?php namespace app\index\controller; use think\Contr ...
- 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神
1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存
代码已上传Github+Gitee,文末有地址 上回<从壹开始前后端分离[ .NET Core2.0 Api + Vue 2.0 + AOP + 分布式]框架之九 || 依赖注入IoC学习 + ...
- 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库
采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...
- SpringBootSecurity学习(12)前后端分离版之简单登录
前后端分离 前面讨论了springboot下security很多常用的功能,其它的功能建议参考官方文档学习.网页版登录的形式现在已经不是最流行的了,最流行的是前后端分离的登录方式,前端单独成为一个项目 ...
- Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存
本文梯子 本文3.0版本文章 代码已上传Github+Gitee,文末有地址 大神反馈: 零.今天完成的深红色部分 一.AOP 之 实现日志记录(服务层) 1.定义服务接口与实现类 2.在API层中添 ...
- spring security简单教程以及实现完全前后端分离
spring security是spring家族的一个安全框架,入门简单.对比shiro,它自带登录页面,自动完成登录操作.权限过滤时支持http方法过滤. 在新手入门使用时,只需要简单的配置,即可实 ...
随机推荐
- mxnet ubuntu cpu安装
sudo apt-get update sudo apt-get install -y build-essential Git libblas-dev libopencv-dev git clone ...
- 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 ...
- Canvas---clearRect()清除圆形区域
function clearArcFun(x,y,r,cxt){ //(x,y)为要清除的圆的圆心,r为半径,cxt为context var stepClear=1;//别忘记这一步 clearArc ...
- 数据结构与算法之PHP排序算法(快速排序)
一.基本思想 快速排序又称划分交换排序,是对冒泡排序的一种改进,亦是分而治之思想在排序算法上的典型应用. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部 ...
- Solr安装使用教程
一.安装 1.1 安装jdk solr是基于lucene而lucene是java写的,所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本,下载安装jdk并设置JAVA ...
- 如何加快C++代码的编译速度 转 ccache
http://www.cnblogs.com/baiyanhuang/archive/2010/01/17/1730717.html C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速 ...
- Oracle数据库统一审核的启用测试与关闭
环境:windows server 2008.Oracle 12c R2 下面的步骤,连接为sysdba,除非指定了其它方式. (1)运行如下查询,确定统一审核是否启用了: select value ...
- 马凯军201771010116《面向对象程序设计(java)》第三周学习总结
第一部分 理论知识学习与复习部分 1.在第一章里主要对Java中常见的误解这部分进行了细读,也对Java的“白皮书”术语认真的看了一遍,对Java术语有了更深的理解. 2.在第二章中对Java程序的 ...
- 剑指Offer 8. 跳台阶 (递归)
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 题目地址 https://www.nowcoder.com/pract ...
- 自动化测试-15.selenium单选框与复选框状态判断
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...