引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现ajax操作,返回json。

本节知识:jquery,json,ajax

python环境:python2.7,flask,以及flask相关的库(没有列完,如果运行manage.py时提示未安装的库安装就ok了。)

----example.html    ajax访问后端 我用的jquery,所以使用时需引入jquery

  1. function show_user_msg(id){
  2. //alert(id);
  3. $.getJSON('/admin/get_user',{id:id}, function(msg){
  4. //获取用户信息
  5. msg = JSON.parse(msg[0]);
  6. console.log(msg);
  7. $('.edit_user input[name="id"]').val(msg.id)
  8. $('.edit_user input[name="username"]').val(msg.username);
  9. $('.edit_user input[name="password"]').val(msg.password);
  10. $('.edit_user input[name="repassword"]').val(msg.password);
  11. $('.edit_user input[name="email"]').val(msg.email);
  12. $('.edit_user input[name="phone"]').val(msg.phone);
  13. //$(".edit_user select[name='power']").find("option:contains("+msg.power+")").attr("selected",true);
  14. $(".edit_user select[name='power']").find("option[value="+msg.power+"]").attr("selected",true);
  15. });
  16. }

定义了一个函数,调用这个函数就会ajax访问/admin/get_user ,传入变量id, msg代表后端返回的信息。

如果对jquery不太了解可以去百度下这个$.getJSON这个函数,先不管这个,先去看试图定义的/admin/get_user

------views.py

  1. ###获取编辑用户的数据
  2. @main.route('/admin/get_user', methods=['GET'])
  3. def Get_user():
  4. if request.method =='GET' and request.args:
  5. ##获取get参数
  6. id = int(request.args.to_dict().get('id'))
  7. ##开始查询数据信息
  8. data = Admin.get_user_info(Admin(),id)

data正是orm获取的数据(<Admin 1>),但是不能直接把数据传到html里面,会报错。

于是我打算将这种类型的数据转换成json数据,我们要用到的库是marshmallow,直接pip安装即可。

先新建一个配置文件serializers.py 和models.py在同一目录。

-----serializers.py

  1. # -*- coding: utf-8 -*-
  2. from marshmallow import Schema, fields
  3.  
  4. ###admin表
  5. class AdminSchema(Schema):
  6. id = fields.Int()
  7. username = fields.Str()
  8. email = fields.Email()
  9. password = fields.Str()
  10. power = fields.Int()
  11. phone = fields.Str()

然后在views.py里面修改下。

  1. ##引入文件
  2. from ..serializers import AdminSchema
  3. ###获取编辑用户的数据
  4. @main.route('/admin/get_user', methods=['GET'])
  5. def Get_user():
  6. if request.method =='GET' and request.args:
  7. ##获取get参数
  8. id = int(request.args.to_dict().get('id'))
  9. ##开始查询数据信息
  10. data = Admin.get_user_info(Admin(),id)
  11. schema = AdminSchema()
  12. result = schema.dumps(data)
  13. return jsonify(result)

这样返回的类似json字符串东西,然后在js里面讲json字符串转换称json数组。

返回的数据由msg接住,对msg进行处理。

  1. msg = JSON.parse(msg[0]);

然后就可以使用msg了。

  

flask-日料网站搭建-ajax传值+返回json字符串的更多相关文章

  1. ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  2. ajax请求返回Json字符串运用highcharts数据图表展现数据

    [1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] code=26754#44745" rel="nofollow"> [2] ...

  3. flask-日料网站搭建

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互. 本节知识:搭建web目录,目前正在copy网站. python环境:python2.7,fla ...

  4. flask-日料网站搭建-数据库操作

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,目前已经copy完主页,不是前端太慢太慢. 本节知识:数据库的操作,模型建表,更新数据库. py ...

  5. flask-日料网站搭建-后台登录

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现后台登录功能,比较简单. 本节知识:表单标签,表单验证,数据查询,模板 pytho ...

  6. spring mvc 避免IE执行AJAX时,返回JSON出现下载文件

    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" c ...

  7. SpringMVC 避免IE执行AJAX时,返回JSON出现下载文件

    <?xml version="1.0" encoding="UTF-8"?> <!-- SpringMVC配置文件 --> <be ...

  8. Ajax调用返回json,xml数据类型(0517--pm)

    一.返回Json型数据: 1.主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  9. dbda封装类(包括:返回二维数组、Ajax调用返回字符串、Ajax调用返回JSON)

    <?php class DBDA { public $host = "localhost"; public $uid = "root"; public $ ...

随机推荐

  1. Centos7 环境下 Python2.7 换成 Python3.7 运行 scrapy 应用所遇到的问题记录

    参考网友的安装过程 Linux系统Centos安装Python3.7 设置Python默认为Python3.7 mv /usr/bin/python /usr/bin/python.bak ln -s ...

  2. JavaScript之WebSocket技术详解

    概述 HTTP协议是一种无状态协议,服务器端本身不具有识别客户端的能力,必须借助外部机制,比如session和cookie,才能与特定客户端保持对话.这多多少少带来一些不便,尤其在服务器端与客户端需要 ...

  3. 注册表项关于start参数的说明

    start = {0,1,2,3,4}0 == 由核心装载器装载1 == 由I/O子系统装载2 == 自动启动3 == 手工启动4 == 禁止启动

  4. php mongo类

    看了好多mongo类都不尽人意.最后发现根本不需要自己封装类.php mongo 的扩展自带的方法就已经很方便了 但是习惯性的把数据库连接部分封装起来.最后我就封装了一个单例模式的数据库类 使用单例模 ...

  5. 好消息:手机上也可以使用Firebug功能了

    做前端开发的小伙伴儿应该对火狐浏览器提供的Firebug工具很熟悉了吧,但是你知道怎么在手机上使用Firebug的控制台功能么(^_-) 现在谷歌浏览器提供了可以在电脑上模拟移动端界面的功能,但是在开 ...

  6. 值得收藏的JSP连接mysql数据库的例子

    1:用mysql驱动把mysql与tomcat的连接起来.把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可. 2:然后在自己的新建的web应用程序上面就可以下下面的代码 3: ...

  7. GoJS拖动设计

    http://192.168.0.149:8035/gojs/intro/groups.html http://192.168.0.149:8035/gojs/intro/ports.html htt ...

  8. 【java】之常用四大线程池用法以及ThreadPoolExecutor详解

    为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率2.线程并发数量过多,抢占系统资源从而导致阻塞3.对线程进行一些简单的管理 在Java中,线程池 ...

  9. vagrant box保存路径修改

    add box的时候默认保存在C盘用户文件夹 C:\Users\xxx.vagrant.d,通过设置VAGRANT_HOME环境变量改变默认位置 WIN setx VAGRANT_HOME “X:/y ...

  10. MySQL 服务启动y异常: 本地无法启动MySQL服务,报的错误:1067,进程意外终止---解决

    启动MySQL后,几秒钟后直接报错了 然后在事件查看器中发现了几条错误信息 Can't start server: Bind on TCP/IP port: No such file or direc ...