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使用urllib2模块获取gravatar头像实例
Dec 18 Python
跟老齐学Python之重回函数
Oct 10 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
详解Python中的四种队列
May 21 Python
实例讲解Python爬取网页数据
Jul 08 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
python随机模块random的22种函数(小结)
May 15 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
利用python批量爬取百度任意类别的图片的实现方法
Oct 07 Python
Python的三个重要函数详解
Jan 18 Python
python pygame 开发五子棋双人对弈
May 02 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通过sort()函数给数组排序的方法
2015/03/18 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python简易版图书管理系统
2019/08/12 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
军训考核自我鉴定
2014/02/13 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
全国文明单位申报材料
2014/05/31 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
超市收银员岗位职责
2015/04/07 职场文书
会计稽核岗位职责
2015/04/13 职场文书
windows安装python超详细图文教程
2021/05/21 Python