`
cywhoyi
  • 浏览: 421008 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Django1.6与extjs4整合

阅读更多

从今日开始,公司的新后台系统,我将全部迁移到python的环境下,主要使用了Django与extjs4、jquery1.7的,数据库mysql5.5,容器是nginx。因为不考虑并发因素,所以在这里没有高深的python的线程处理,只是向刚毕业的大学生,几个框架的整合而已,没啥营养,我也是对于python的掌握,觉得Django这框架做的挺好的,模板处理、model层的映射等都比之前玩java时候玩得舒畅。

 

 

附件包里面就是简单的一个Django学习的路上的点点滴滴,以及整合了extjs,首先extjs与我而言,玩得比较熟练,所以没有必要在这里,等我把公司的考勤系统原样的搬上来,再来谈后续的事情。

 

用的开发工具主要是VIM、gedit、eclipse,用了几款python的开发工具诸如pydev、bpython、pycharm等等,还不如使用python shell来得实际。或者有没有童鞋能够推荐,比较geek的工具呢?

 

提供几个github上方面的例子工程,我的工程一直太大了,一直上传有问题。

 

才有restful架构方式,view.py中同样使用simplejson开源包,有助于以后从java实现http+json,改变为python编写。
采用pycharm工具

 



 

from django import forms
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader, Context, Template
from django.shortcuts import render_to_response
from blog.models import Employee
from blog.models import Author, Book
import simplejson as json


class Person(object):
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def say(self):
        return self.name


class UserForm(forms.Form):
    username = forms.CharField()
    password = forms.CharField()
    #name = forms.CharField();
    #headImg = forms.FileField();


def index(req):
    if req.method == 'POST':
        form = UserForm(req.POST, req.FILES)
        if form.is_valid():
            name = form.cleaned_data['username']
            password = form.cleaned_data['password']
            emp = Employee();
            emp.name = name;
            emp.save()
            print form.cleaned_data['username']
            print form.cleaned_data['password']
            dict = {}
            info = 'Data log save success'
            dict['message'] = info
            dict['create_at'] = 'girl is back'
            dict['success'] = 'true'
            dict['data'] = 'ddd'
            list = [1, 22, 2, 3, 4, 666]
            return HttpResponse(json.dumps(dict))

    if req.method == 'PUT':
        print 'update information '
        print 'put'

    if req.method == 'DELETE':
        print 'delete'

    form = UserForm()
    return render_to_response('index.html', {'form': form})


def logout(req):
    del req


def index2(req):
    t = loader.get_template('python01.html')
    c = Context({})

    return HttpResponse(t.render(c))


def index4(req):
    t = Template('<h1>hello {{name}}</h1>')
    c = Context({'name': 'IBYoung'})
    return HttpResponse(t.render(c))


def index5(req):
    user = Person('cywhoyi', '27', 'FEMALE')
    persons = Employee.objects.all()
    return render_to_response('python01.html', {'name': user, 'persons': persons})


def index3(req):
    #user = {'name':'chenyang','age':27,'sex':'male'}
    user = Person('cywhoyi', '27', 'FEMALE')
    persons = ['peter', 'tom', 'terry']
    return render_to_response('python01.html', {'name': user, 'persons': persons})


 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>GodFather</title>
</head>
<script language="JavaScript" type="text/javascript" src="/static/js/jquery-1.7.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/extjs4/resources/css/ext-all.css"/>

<script type="text/javascript" src="/static/extjs4/ext-all-debug.js"></script>
<script type="text/javascript" src="/static/extjs4/locale/ext-lang-zh_CN.js"></script>

<!--ExtJs框架结束-->
<script type="text/javascript">
        Ext.onReady(function () {
            //初始化标签中的Ext:Qtip属性。
            Ext.QuickTips.init();
            Ext.form.Field.prototype.msgTarget = 'side';
            //提交按钮处理方法
            var btnsubmitclick = function () {
               /* if (form.getForm().isValid()) {
                    form.getForm.submit();
                    //通常发送到服务器端获取返回值再进行处理,我们在以后的教程中再讲解表单与服务器的交互问题。
                    Ext.Msg.alert("提示", "登陆成功!");
                }*/

                if (!form.getForm().isValid()) return;
                form.getForm().submit({
                    waitMsg: '正在提交数据',
                    waitTitle: '提示',
                    url: '/blog/index/13',
                    method: 'POST',
                    success: function(form, action) {
                        Ext.Msg.alert('提示', '保存成功');
                    },
                    failure: function(form, action) {
                        Ext.Msg.alert('提示', '原因如下:');
                    }
                });
            }
            //重置按钮"点击时"处理方法
            var btnresetclick = function () {
                form.getForm().reset();
            }
            //提交按钮
            var btnsubmit = new Ext.Button({
                text: '提 交',
                handler: btnsubmitclick
            });
            //重置按钮
            var btnreset = new Ext.Button({
                text: '重 置',
                handler: btnresetclick
            });
            //用户名input
            var txtusername = new Ext.form.TextField({
                width: 220,
                allowBlank: false,
                maxLength: 25,
                name: 'username',
                fieldLabel: '用户名',
                blankText: '请输入用户名',
                maxLengthText: '用户名不能超过20个字符'
            });
            //密码input
            var txtpassword = new Ext.form.TextField({
                width: 220,
                allowBlank: false,
                maxLength: 25,
                inputType: 'password',
                name: 'password',
                fieldLabel: '密 码',
                blankText: '请输入密码',
                maxLengthText: '密码不能超过20个字符'
            });
            //表单
            var form = new Ext.form.FormPanel({
                url: 'blog/index/123',
                labelAlign: 'right',
                labelWidth: 45,
                frame: true,
                cls: 'loginform',
                buttonAlign: 'center',
                bodyStyle: 'padding:6px 0px 0px 15px',
                items: [txtusername, txtpassword],
                buttons: [btnsubmit, btnreset]
            });
            //窗体
            var win = new Ext.Window({
                title: '用户登陆',
                iconCls: 'loginicon',
                plain: true,
                width: 380,
                height: 174,
                resizable: false,
                shadow: true,
                modal: true,
                closable: false,
                animCollapse: true,
                items: form
            });
            win.show();
	});







</script>
<body>
<!--HI,GIRL
<form method="post" enctype="multipart/form-data">
    {{form}}

    <input type="submit" value="OK">
    </input>
</form>-->
</body>
</html>

 

 

 


 

 

  • 大小: 200.5 KB
  • 大小: 65.3 KB
  • 大小: 72.6 KB
  • 大小: 69.2 KB
  • 大小: 78.9 KB
1
0
分享到:
评论

相关推荐

    Django1.6 官方文档

    ### Django 1.6 官方文档知识点梳理 #### 一、Django 文档概览 **Django** 是一个高度模块化且可扩展的 Python Web 框架,它鼓励快速开发并遵循 DRY(Don't Repeat Yourself)原则。**Django 1.6** 是该框架的一个...

    django1.6支持python3

    对于标签"django1.6",我们需要了解Django 1.6的主要特性,如模型管理器的增强、表单验证的改进、模板系统的优化以及性能提升等。这个版本还引入了South数据迁移工具的集成,帮助开发者在数据库结构发生变化时无缝地...

    Django1.6 的官方英文文档

    **Django 1.6 官方英文文档详解** Django 1.6 是一个基于 Python 的开源 Web 开发框架,以其“快速、优美、实用”而闻名。它遵循 Model-View-Controller (MVC) 设计模式的变种,称为 Model-Template-View (MTV) ...

    Django 1.6 官方文档

    在接下来的文本中,我将根据给定文件的标题、描述、标签以及部分内容中提取的信息,详细地介绍Django 1.6官方文档中所包含的知识点。 ### Django 1.6 官方文档 Django是一个开源的高层次Python Web框架,它鼓励...

    Two scoop django1.6/1.8/1.11 高清资产包

    《Two Scoop Django 1.6/1.8/1.11 高清资产包》 本资源包聚焦于Django的三个重要版本:1.6、1.8和1.11,旨在为开发者提供详尽的指导和高清的参考资料。Django是一款用Python编写的高级Web框架,它遵循“干(DRY)”...

    Django整合Extjs源码

    本项目源码就是基于Django与ExtJS3.4的整合实例,旨在快速搭建一个可运行的项目原型。 首先,我们来看Django的集成部分。Django的核心在于其模型(Model)、视图(View)、模板(Template)和URL(URLconf)这四个...

    Two Scoops of Django: Best Practices For Django 1.6 (2014 PDF版)

    Two Scoops of Django: Best Practices For Django 1.6 (2014版)pdf

    two scoops of django 1.6

    Two Scoops of Django: Best Practices for Django 1.6 is the last edition. We won't do another version of this book. After pouring our hearts into the 1.6 edition and dealing with extreme stress, we ...

    Django-1.6b4.tar.gz

    "Django-1.6b4.tar.gz" 是一个压缩包文件,其中包含了Django 1.6 beta 4版本的源代码和其他相关文件。这个版本发布于Django 1.6正式版之前,可能是对1.6稳定版的一个预览或测试版,通常包含了一些新的特性和改进,...

    Django1.6_利用Form实现注册登录注销修改密码

    在Django框架中,Form是处理用户输入数据的重要工具,它简化了模型与视图之间的交互,使得数据验证和处理更加高效。本教程基于Django 1.6和Python 2.7.6,将详细介绍如何利用Form实现注册、登录、注销以及修改密码...

    django-1.6 win32扩展sqlserver 2008

    标题 "django-1.6 win32扩展sqlserver 2008" 指的是在Windows 32位环境下,使用Django 1.6框架进行开发,并且需要与SQL Server 2008数据库进行集成。描述中提到的关键需求是Python 2.7版本的运行环境、Django 1.6的...

    django1.6 setting文件设置

    setting文件中 if DEBUG 设置的参数都是在开发环境下的 static参数 url中的写法是这样 if settings.DEBUG: urlpatterns += static (settings.STATIC_URL, document_root = settings.STATIC_ROOT) ...

    django-docs-1.6文档API

    **Django 1.6 API 文档概述** Django 是一个用 Python 编写的开源 Web 框架,它遵循“干(DRY)”原则,致力于让 Web 开发变得更简单、更快速。Django 1.6 版本是其历史上的一个重要里程碑,包含了丰富的功能和改进...

    Python django Extjs 项目开发中的错误小记

    在Python Django项目开发中使用Extjs时,开发者们可能会遇到各种各样的小错误或者问题。下面将详细地讨论其中的一些问题以及解决方法,涉及知识点包括Python Django框架、前端库Extjs以及一些常见的编程问题。 1. ...

    Django 1.6 Documentation

    Django DOcumentation

    django-project-template:Django 1.6+的项目模板

    **Django 1.6+ 项目模板简介** `django-project-template` 是一个针对Django 1.6、1.7以及1.8版本的项目模板,它为开发者提供了一个预配置的基础框架,使得创建新的Django项目变得更加方便快捷。这个模板包含了一...

    Learing_Website_Development_with_Django_1.6版修改笔记

    Learing_Website_Development_with_Django_1.6版修改笔记。文档为linux下的文本文件,utf8编码。windows下可用浏览器打开,按utf8浏览。

    django1.6.3 安装包

    解压后,进入django目录,运行 python setup.py install,启动安装。 Django被安装在 C:\Python27\Lib\site-packages Django1.6.3版本支持Python2.6.5以上版本,请注意。 献给公司有限制网络的同事们

Global site tag (gtag.js) - Google Analytics