Flask框架前端后端交互之传递Json数据

 

方案一:后端使用   jsonify()方法  响应前端Json数据

 

   后端代码:

# encoding:utf-8
from flask import Flask, render_template, url_for, request, json,jsonify


app = Flask(__name__)
#设置编码
app.config['JSON_AS_ASCII'] = False


#接收参数,并返回json数据
@app.route('/sendDate', methods=['GET', 'POST'])
def form_data():

   #从request中获取表单请求的参数信息
   title = request.form['title']
   datetime = request.form['datetime']
   quiz = request.form['quiz']
   
   #此处逻辑代码已经省略...................

   return jsonify({'status': '0', 'errmsg': '登录成功!'})


#测试入口
@app.route('/test')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

前端代码:

 $.ajax({
          url:'http://127.0.0.1:5000/sendDate',
   
       data:"title="+data.field['title']+"&datetime="+data.field['datetime']+"&quiz="+data.field['quiz'],
          type:'post',
          dataType:'json',
          success:function(data){ //后端返回的json数据(此处data为json对象)
              alert(data['errmsg']);
          },
          error:function () {
              alert('异常')
          }
      });

   注意:1、如果返回的Json数据有中文,需要配置编码 ,本示例直接配置在了当前程序py文件中了

                

#设置编码
app.config['JSON_AS_ASCII'] = False

       2、使用jsonify()返回直接是一个json对象,前端有需要直接就可以通过对象获取

         

 

 

方案二 :使用   json.dumps()响应前端Json数据  

   后端代码:

# encoding:utf-8
from flask import Flask, render_template, url_for, request, json,jsonify


app = Flask(__name__)


#接收参数,并返回json数据
@app.route('/sendDate', methods=['GET', 'POST'])
def form_data():

   #从request中获取表单请求的参数信息
   title = request.form['title']
   datetime = request.form['datetime']
   quiz = request.form['quiz']
   
   #此处逻辑代码已经省略...................
   return json.dumps({'status': '0', 'errmsg': '登录成功!'},ensure_ascii=False)



#测试入口
@app.route('/test')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

  前端代码:

    

  $.ajax({
          url:'http://127.0.0.1:5000/sendDate',
          data:"title="+data.field['title']+"&datetime="+data.field['datetime']+"&quiz="+data.field['quiz'],
          type:'post',
          dataType:'json',
          success:function(data){
              alert(data['status']);
          },
          error:function () {
              alert('异常')
          }
      });

注意:以下标红区域

   

 

 

总结:这两种方法都可以将json数据传到前端,注意浏览器相应体中的内容类型,(以上截图中标红区域)

   此文章只用于个人做笔记,仅供参考 ,如有路过大神有不同的意见,请指出!

    

  • 16
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
这里是一个简单的示例代码,用于展示自动抽题系统中后端服务器与前端页面之间的交互。该代码使用Python编写,使用Flask框架作为服务器,使用JSON格式来传递数据。 ```python from flask import Flask, request, jsonify app = Flask(__name__) # 假设这里有一个名为"get_question"的函数,用于从数据库中获取问题 def get_question(topic): # 这里省略了从数据库中获取数据的过程 return {"topic": topic, "question": "What is your question?"} @app.route("/get_question", methods=["POST"]) def handle_get_question(): # 获取前端页面传递过来的JSON数据 data = request.get_json() # 调用get_question函数获取问题 question = get_question(data["topic"]) # 将获取到的问题以JSON格式返回给前端页面 return jsonify(question) if __name__ == "__main__": app.run() ``` 在上面的代码中,我们使用了Flask框架来创建一个名为"app"的服务器对象。我们定义了一个名为"handle_get_question"的函数,用于处理前端页面发送的POST请求。这个函数获取前端页面通过JSON格式传递过来的数据,调用"get_question"函数获取问题,并将问题以JSON格式返回给前端页面。 注意,这里的"get_question"函数只是一个示例函数,用于展示从数据库中获取数据的过程。在实际应用中,您可能需要根据自己的需求编写不同的函数来获取数据。 另外,这里使用了JSON格式来传递数据,这是一种轻量级的数据交换格式,易于读取和编写。在实际应用中,您可以根据需要选择不同的数据交换格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值