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中的is和id用法分析
Jan 26 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
Django后台获取前端post上传的文件方法
May 28 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
python 弧度与角度互转实例
Apr 15 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 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数组的一些常见操作汇总
2011/07/17 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
js创建对象的方式总结
2015/01/10 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
如何利用python查找电脑文件
2018/04/27 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python七夕浪漫表白源码
2019/04/05 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
用友笔试题目
2016/10/25 面试题
《理想的风筝》教学反思
2014/04/11 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
驻村工作简报
2015/07/20 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android