django实现前后台交互实例


Posted in Python onAugust 07, 2017

本文介绍了django实现前后台交互实例,分享给大家,希望对大家有所帮助

准备工作:

前端框架:AngularJS+bootstap

数据库:sqlite3

前端代码:
index.html

<!DOCTYPE html> 
<html> 
  <head> 
    <link href="/WebApi/scripts/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="/WebApi/scripts/angular/angular.min.js"></script> 
    <script type="text/javascript" src="/WebApi/controller/controller.js"></script> 
    <script type="text/javascript" src="/WebApi/service/service.js"></script> 
    <title>hello</title> 
  </head> 
  <body ng-app="myApp" ng-controller="myCtrl"> 
    <h2>hello world!</h2> 
     
<!--   <form role="form"> --> 
    <table> 
      <tr> 
        <td> 
          <div class="form-group"> 
            <input type="text" class="form-control" id="name"  
          placeholder="请输入用户名" ng-model="username"> 
          </div> 
        </td> 
      </tr> 
      <tr> 
        <td> 
          <div class="form-group"> 
            <input type="passwd" class="form-control" id="name"  
          placeholder="请输入密码" ng-model="password"> 
          </div> 
        </td> 
      </tr> 
      <tr> 
        <td> 
          <button type="button" class="btn btn-primary" ng-click="my_submit()">保存</button> 
        </td> 
      </tr> 
    </table> 
<!--   </form> 
 --> 
 
    <p class="text-danger">[[ result ]]</p> 
  </body> 
</html>

controller.js

var app = angular.module("myApp", []); 
app.config( 
  function($interpolateProvider) { 
    $interpolateProvider.startSymbol('[['); 
    $interpolateProvider.endSymbol(']]'); 
  })  
  .config(['$httpProvider', function($httpProvider) { 
    $httpProvider.defaults.xsrfCookieName = 'csrftoken'; 
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; 
}]); 
app.controller("myCtrl", ["$scope", "service", function($scope, service) { 
  $scope.result = ""; 
  $scope.my_submit = function() { 
    console.log($scope.username); 
    console.log($scope.password); 
    service.do_save_info($scope.username, $scope.password, function(response){ 
      console.log(response); 
      $scope.result = response.result; 
    }); 
  }; 
}]);

service.js

app.service("service", ["$http", function($http) { 
  this.do_save_info = function(username, password, callback) { 
    $http({ 
      method: 'POST', 
      url: '/do_save_info', 
      data: { 
        'username': username, 
        'password': password 
      }, 
      headers: {'Content-Type': undefined}, 
    }).success(function(response){ 
      callback(response); 
    }); 
  }; 
}]);

后端代码:

urls.py

from django.conf.urls import patterns, include, url 
 
urlpatterns = patterns('app.views', 
  url(r'^index$', 'index'), 
  url(r'^/index$', 'index'), 
  url(r'^$', 'index'), 
  url(r'^/$', 'index'), 
  url(r'^do_save_info$', 'do_save_info'), 
)

views.py

from django.shortcuts import render_to_response 
from django.template import RequestContext 
from django.http import HttpResponse 
from django.views.decorators.csrf import ensure_csrf_cookie, csrf_exempt 
import json 
import models 
 
# Create your views here. 
@ensure_csrf_cookie 
def index(request): 
  return render_to_response('static/index.html', 
    context_instance=RequestContext(request)) 
 
def do_save_info(request): 
  result = {'result':'save success'} 
  try: 
    data = json.loads(request.body) 
    username = data.get("username", None) 
    password = data.get("password", None) 
    models.do_save_info(username, password) 
  except Exception, e: 
    result['result'] = 'save error' 
  return HttpResponse(json.dumps(result))

models.py

#!/bin/python 
# -*- coding: utf-8 -*- 
 
import os 
import sys 
import sqlite3 
 
def do_save_info(username, password): 
  db_path = os.path.normpath('/home/zhubao/Code/django_code/hello/db.sqlite3') 
  try: 
    conn = sqlite3.connect(db_path) 
    sql = "insert into t_user(username, password) values('%s', '%s')" % (username, password) 
    conn.execute(sql) 
    conn.commit() 
    conn.close() 
    print 'save success...' 
  except Exception, e: 
    print '------', str(e) 
    try: 
      conn.close() 
    except Exception, e: 
      pass

t_user表结构:

create table t_user(username varchar(255), password varchar(255));

页面演示:

刚打开页面如下:

django实现前后台交互实例

输入数据,点击保存:

django实现前后台交互实例

后台查看数据库:

django实现前后台交互实例

可以看到,已经保存在数据库里面了。

这只是个小示例,在此不考虑页面排版和安全性问题。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
python绘制圆柱体的方法
Jul 02 Python
python 通过麦克风录音 生成wav文件的方法
Jan 09 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
pygame实现非图片按钮效果
Oct 29 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
Python面向对象编程之类的概念
Nov 01 Python
Python之matplotlib绘制折线图
Apr 13 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 #Python
python的多重继承的理解
Aug 06 #Python
python中 chr unichr ord函数的实例详解
Aug 06 #Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 #Python
Python实现将Excel转换为json的方法示例
Aug 05 #Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 #Python
Python基于Socket实现的简单聊天程序示例
Aug 05 #Python
You might like
提升PHP速度全攻略
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python实现关键词提取的示例讲解
2018/04/28 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python3中property使用方法详解
2019/04/23 Python
python面向对象 反射原理解析
2019/08/12 Python
Python创建数字列表的示例
2019/11/28 Python
python各种excel写入方式的速度对比
2020/11/10 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
大学生预备党员自我评价分享
2013/11/16 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
致运动员的广播稿
2015/08/19 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js