1. 使用Django中自带的模板

    1. 前端通过form 表单向后端提交数据

      # /template/demo/demo.html
      {% if result == 1 %}
      <p> 插入成功 </p>
      {% else if result==2 %}
      <p>插入失败</p>
      {% endif %}
      <form class="layui-form" method="post" action="{% url 'demo:type_add' %}" enctype="multipart/form-data">
      {% csrf_token %}
      <input type="text" name="type_name" required autocomplete="off" class="layui-input">
      <input type="text" name="type_sort" required autocomplete="off" class="layui-input">
      <input type="submit" value="提交">
      </form>
    2. 后端通过渲染函数传递数据给模板文件并渲染

      # /demo/url.py
      app_name = '[demo]'
      urlpatterns = [
      url(r'^type_add/', views.type_add, name='type_add'),
      ]
      # /demo/views.py
      def type_add(request):
      # 类型名称
      type_name = request.POST['type_name']
      # 类型排序
      type_sort = request.POST['type_sort'] # 数据库操作
      result = DemoType.objects.create(type_name=type_name,type_sort=type_sort)
      if result:
      return render(request, 'demo/demo.html', {'result':1})
      else:
      //return HttpResponse('插入失败!')
      return render(request, 'demo/demo.html', {'result':2})
  2. 使用Ajax

    1. 前端通过Ajax向后端发送请求提交数据

    2. 后端返回响应

    3. 前端收到响应后通过js对页面上显示的东西进行修改

      代码1:

      # 前端
      function demo(demo_id) {
      $.ajax({
      url: 'url',
      type: 'POST',
      headers: {"X-CSRFToken":'{{ csrf_token }}' },
      data: {demo_id: demo_id},
      dataType:'json',
      success: function (e) {
      //通过e获取后端返回的数据并对页面上的显示的东西进行修改 },
      }) } # 后端 #路由部分与上面所示的类似 #views.py def demo(request):
      //如果是get请求的话 demo_id = request.GET.get('demo_id',0)
      demo_id = request.POST.get('demo_id', 0)
      user_id = request.session.get('user_id', 0)
      return_param = {}
      try:
      // 数据库操作
      demo.objects.update_or_create(users_id=user_id, goods_id=goods_id, status=1)
      return_param['status'] = 200
      return_param['msg'] = 'success'
      except Exception as e:
      return_param['status'] = 500
      return_param['msg'] = 'fail'
      return HttpResponse(json.dumps(return_param))

      代码2:

      #前端
      function demo(demo_id) {
      $.ajax({
      url: 'url',
      type: 'POST',
      headers: {"X-CSRFToken":'{{ csrf_token }}' },
      data: JSON.stringify(data),
      dataType:'json',
      success: function (e) {
      //console.log(e)
      //通过e获取后端返回的数据并对页面上的显示的东西进行修改 },
      })
      } #后端 # 定义一个统用的响应类,方便规范返回给前端东西的格式
      # 公共部分可以新建一个文件放在 和settings.py文件 同一个文件夹内
      SUCCESS_CODE, FAIL_CODE, PARMS_CODE = 200, 400, 404
      class BaseResponse:
      def __init__(self, **kwargs):
      self.status_code = kwargs.get('code',0)
      self.message = kwargs.get('msg','')
      self.data = kwargs.get('data',[]) #路由部分与上面所示的类似
      # 后端的 views.py部分 def demo(request):
      //如果是get请求的话 demo_id = request.GET.get('demo_id',0)
      # POST 请求
      params = json.loads(request.body)
      demo_id = params.get('demo_id',0)
      user_id = request.session.get('user_id', 0)
      return_param = {}
      try:
      // 数据库操作
      demo.objects.update_or_create(users_id=user_id, demo_id=demo_id, status=1)
      return JsonResponse(BaseResponse(code= SUCCESS_CODE, msg='success',data=[]).__dict__)
      except Exception as e:
      return JsonResponse(BaseResponse(code=FAIL_CODE, msg='fail').__dict__)

注:如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/10763795.html

Django(Python)前后端交互的更多相关文章

  1. Django之META与前后端交互

    Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...

  2. Python 利用三个简易模块熟悉前后端交互流程

    准备工作 在学习Django之前,先动手撸一个简单的WEB框架来熟悉一下前后端交互的整体流程 本次用到的模块: 1.wsgiref,这是一个Python自带的模块,用于构建路由与视图 2.pymysq ...

  3. 微信小程序-前后端交互

    前台手机验证码登录 <view>手机号:</view> <input value="{{phone}}" bindinput="bindPh ...

  4. Node之简单的前后端交互

    node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...

  5. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...

  6. 前后端交互实现(nginx,json,以及datatable的问题相关)

    1.同源问题解决 首先,在同一个域下搭建网络域名访问,需要nginx软件,下载之后修改部分配置 然后再终端下cmd  nginx.exe命令,或者打开nginx.exe文件,会运行nginx一闪而过, ...

  7. springboot+mybatis+thymeleaf项目搭建及前后端交互

    前言 spring boot简化了spring的开发, 开发人员在开发过程中省去了大量的配置, 方便开发人员后期维护. 使用spring boot可以快速的开发出restful风格微服务架构. 本文将 ...

  8. 百度ueditor的图片上传,前后端交互使用

    百度ueditor的使用 一个文本编辑器,看了网上很多文档写的很乱,这里拾人牙慧,整理下怎么使用. 这个东西如果不涉及到图片附件上传,其实很简单,就是几个前端文件,直接引用,然后配置下ueditor. ...

  9. SSM-网站后台管理系统制作(4)---Ajax前后端交互

    前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法.前端js通过注释识别Controller层,该层查询返回,和之前Google验证码 ...

  10. 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)

    这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...

随机推荐

  1. 最新传智播客web前端开发39期视频教程【完整版】

    本套视频为传智2018web前端开发全套视频教程基础班+就业班,视频+源码+案例笔记,全套高清不加密~2018最新传智播客视频! 本教程是实战派课程!为传智最新web前端39期,挑战全网最全视频,没有 ...

  2. JMX - JMX定义

    JMX定义 JMX超详细解读 https://www.cnblogs.com/dongguacai/p/5900507.html 开源框架是如何通过JMX来做监控的(一) - JMX简介和Standa ...

  3. Maven - <Profile>详解

    转载自:https://www.cnblogs.com/wxgblogs/p/6696229.html Profile能让你为一个特殊的环境自定义一个特殊的构建:profile使得不同环境间构建的可移 ...

  4. Pycharm问题:module 'pip' has no attribute 'main'

    更新pip之后(pip 10 版本之后),Pycharm安装package出现报错:module 'pip' has no attribute 'main' 解决办法如下: 找到Pycharm安装目录 ...

  5. java学习笔记03-基本语法

    编写java程序时,应注意以下点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个 ...

  6. 【转】Beginning Game Programming v2.0

    Beginning Game Programming v2.0 Last Updated 8/19/18 Greetings everyone, welcome to the ground up re ...

  7. STM32F0使用LL库实现PWM输出

    在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片.这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现.本文我们将说明如何通过LL库实现PWM信号 ...

  8. zabbix_agentd客户端安装与配置(windows操作系统)

    zabbix_agentd客户端安装与配置(windows操作系统)   **********  客户端操作   **********  标注:监控zabbix_agentd客户端安装对象是win s ...

  9. 论文阅读笔记四十九:ScratchDet: Training Single-Shot Object Detectors from Scratch(CVPR2019)

    论文原址:https://arxiv.org/abs/1810.08425 github:https://github.com/KimSoybean/ScratchDet 摘要 当前较为流行的检测算法 ...

  10. UOJ#266. 【清华集训2016】Alice和Bob又在玩游戏 博弈,DSU on Tree,Trie

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ266.html 题解 首先我们可以直接暴力 $O(n^2)$ 用 sg 函数来算答案. 对于一个树就是枚举 ...