需求:在浏览器端输入姓名,将数据发送给后端,后端将内容追加到 user.json 中,并将该文件中的数据,返回到浏览器打印
1、浏览器端(html文件)
index.html文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div class="user"> <input type="text" name="user"> <input type="button" value="提交"> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script> <script> /* get请求 $.ajax({ url:'http://localhost:8800/course', type:'get', dataType:'json', success:function (data) { console.log(data); // console.log(data); // var a = JSON.parse(data); // console.log(a); // var str_pretty1 = JSON.stringify(a); // console.log(str_pretty1) }, error:function () { } }) */ // post请求 $('input[type=button]').click(function () { $.ajax({ url: "http://127.0.0.1:8800/create", type: 'post', data: { name: $('input[type=text]').val() }, success: function (data) { console.log(data); } }) }) </script> </body> </html>
2、server端(py文件)
使用之前需要下载模块:flask pip3 install flask
#! /usr/bin/env python # -*- coding: utf-8 -*- # Date: 2018/6/5 import json # 导入模块 from flask import Flask from flask import request from flask import Response #创建实例化请求对象 app = Flask(__name__) # 定义路由 @app.route("/") # 路由对应的函数处理 def index(): # 响应数据 resp = Response("<h2>首页</h2>") # 允许所有跨域访问 resp.headers["Access-Control-Allow-Origin"] = "*" return resp @app.route("/course") def courses(): # 业务逻辑 # 返回json序列化的数据 resp = Response(json.dumps({ "name": 'alex' })) resp.headers["Access-Control-Allow-Origin"] = "*" return resp # 前端发送post请求 # 定义路由 @app.route("/create", methods=["post", ]) def create(): print(request.form.get('name')) # 读取user.json中的原始的数据 with open("user.json", "r") as f: # 将数据反序列化 data = json.loads(f.read()) # 将新数据添加到原始的数据中 data.append({"name": request.form.get('name')}) # 将此时最新的数据再次写入文件中 with open("user.json", "w") as f: f.write(json.dumps(data)) # 再次返回最新的数据 响应会前端 resp = Response(json.dumps(data)) resp.headers["Access-Control-Allow-Origin"] = "*" return resp if __name__ == '__main__': app.run(host="localhost", port=8800, )
3、服务端中存放的user.json
数据以后会存放在数据库中,现在暂时放在文件中
[{"name": "\u5f20\u4e09"}, {"name": "alex"}, {"name": "alex1"}, {"name": "alex12"}, {"name": "alex123"}]