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方法过滤. 在新手入门使用时,只需要简单的配置,即可实 ...
随机推荐
- yii中的restful方式输出并调用接口和判断用户是否登录状态
//创建一个控制器接口 返回的是restful方式 <?php namespace frontend\controllers; use frontend\models\Fenlei; use f ...
- html网页如何使用哪种浏览器内核渲染的选择
众所周知,国内的浏览器基本都是双内核的(ie(Trident)+webkit):而且基本默认时都是用webkit内核.尽管IE浏览器体验差,但是有时也会需要用IE内核来渲染的(比如银行网站). 如果要 ...
- Matlab:Crank Nicolson方法求解线性抛物方程
tic; clear clc M=[,,,,,,];%x的步数 K=M; %时间t的步数 :length(M) hx=/M(p); ht=/K(p); r=ht/hx^; %网格比 x=:hx:; t ...
- html 存放PDF文档
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="100%" hei ...
- Pyhon中运算符的使用
1. a & b python中的&延续了C/C++的含义,表示位运算. 例如 3 & 4:3&5:6&7 3 & 4 = (011)2 & ( ...
- 如何 distinct 只对一个字段有用,同时查出其他字段
转至:http://blog.csdn.net/u013402772/article/details/51262524 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有d ...
- windows线程池
#define _WIN32_DCOM #include <SDKDDKVer.h> #include <direct.h> #include <thr/threads. ...
- bzoj1452
题解: 二位树状数组 然后我开了300*300*300就T了 代码: #include<bits/stdc++.h> using namespace std; ; ],q; int fin ...
- Win强制删除文件windows批处理强行删除文件
一般情况下选中文件或文件夹可以直接删除文件,但是有些情况下例如:文件非常规命名.找不到文件位置等就无法直接删除. 针对这种情况可以用 bat批处理文件 删除,一下就是该方法的步骤 新建一个文件:*** ...
- scott用户不存在
用的Oracle版本是12c,在解锁scott时提示用户不存在,于是搜解决方法,给出了两种方法: 一种是加载scott.sql文件(我的scott.sql文件是存在的,在Oracle安装目录下搜索一下 ...