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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
python矩阵转换为一维数组的实例
Jun 05 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
python使用pymysql模块操作MySQL
Jun 16 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许愿墙模块功能分析
2013/06/25 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
教学质量评估实施方案
2014/03/17 职场文书
常务副总经理任命书
2014/06/05 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
精神病医院见习报告
2014/11/03 职场文书
安全保证书怎么写
2015/02/28 职场文书
《实心球》教学反思
2016/02/23 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
Python 实现定积分与二重定积分的操作
2021/05/26 Python
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android