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内存管理分析
Apr 08 Python
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
python excel和yaml文件的读取封装
Jan 12 Python
python中添加模块导入路径的方法
Feb 03 Python
python压包的概念及实例详解
Feb 17 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
自己做矿石收音机
2021/03/02 无线电
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php读取msn上的用户信息类
2008/12/05 PHP
url decode problem 解决方法
2011/12/26 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Django框架请求生命周期实现原理
2020/11/13 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
如何获得EntityManager
2014/02/09 面试题
实习自我评价怎么写
2013/12/02 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery