django 前后台交互实例

准备工作:

前端框架:angularJS+bootstap

数据库:sqlite3

前端代码:

index.html

<!DOCTYPE html>
<html>
    <head>
        <link href="/WebApi/scripts/bootstrap/dist/css/bootstrap.min.css" 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));


页面演示:

刚打开页面如下:


输入数据,点击保存:


后台查看数据库:


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

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


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值