`
qiaoqinqie
  • 浏览: 60067 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Django学习笔记3

阅读更多

上一个笔记写了怎么样把管理员模块给添加到网站管理里面,现在来说一下怎么样去建立一个自己的模块

在pydev中,选中项目。右键->Django->custom common, 在这里可以输入命令 等同于执行manager.py ...

输入startapp orders. 这样pydev就会自动在项目的源文件下面建一个包orders.下面会自动生成models.py,test.py,views.py

models.py 是和数据库映射的类,Django 的映射关系类似hibernate

test.py 单元测试用

views.py 接受视图请求和跳转 类似mvc模式中的c  注意 不是v.

在orders下面的models下面,添加2个类

from django.db import models

# Create your models here.

class Order(models.Model):
    order_creater = models.CharField(max_length=20)
    order_date = models.DateTimeField('order date')
    
class OrderDetail(models.Model):
    order = models.ForeignKey(Order)
    detail_lineNO = models.IntegerField()
    order_SKU = models.CharField(max_length=50)
 

这2个类都会被映射到数据库。要查看sql语句。manager,py sql orders.

可以看到这样的脚本

BEGIN;
CREATE TABLE "orders_order" (
    "id" integer NOT NULL PRIMARY KEY,
    "order_creater" varchar(20) NOT NULL,
    "order_date" datetime NOT NULL
)
;
CREATE TABLE "orders_orderdetail" (
    "id" integer NOT NULL PRIMARY KEY,
    "order_id" integer NOT NULL REFERENCES "orders_order" ("id"),
    "detail_lineNO" integer NOT NULL,
    "order_SKU" varchar(50) NOT NULL
)
;
COMMIT;

 然后执行

python manage.py syncdb

 这样就能建好表了。

然后我们现在可以测试我们的类。选择项目。右键。Django->shell with django environment. 就会出现命令行式的python窗口。会载入settings,py的设置

我们建一个类

>>>import datetime
>>>from DjangoTest.orders.models import Order
>>>o = Order(order_creater='ezio',order_date=datetime.datetime.now())
>>>o
<Order: Order object>

 可以看到默认的输出看不出来的。这个时候在类中加__unicode__的方法,类似java的tostring

def __unicode__(self):
        return '%s created at %s' % (self.order_creater,self.order_date)

 这样就可以看到比较清晰的输出

>>>>>>order.is_order_today()
true
  <Order: ruan created at 2011-03-10 16:28:26.059955>

但是我发现有个时间不对头,应该是时区设置的问题。

在settings,py 里面 将时区改成上海。默认是美国的

TIME_ZONE = 'Asia/Shanghai'

  也可以写一个方法。

def is_order_today(self):
        return self.order_date.date() == datetime.date.today()

 然后

>>>order.is_order_today()
true
 

这样是比较方便的一种

 

然后是关于主外建的关系。这里我们设置了order和orderdetail是一对多的关系。这个可以从建表语句看出来

默认的model保存,都会成成一个id。而如果是外建关联。这个外建就算model的名字_id。

那么怎么样去生成一个外建关联的实体呢?

#先通过主键获取到一个主model
>>>o = Order.objects.get(pk=1)
#建立2个实体
>>>o.orderdetail_set.create(detail_lineNO=1,order_SKU='gril')
>>>o.orderdetail_set.create(detail_lineNO=2,order_SKU='boy')
#输出
>>>OrderDetail.objects.all()
[<OrderDetail: OrderDetail object>, <OrderDetail: OrderDetail object>]
#这里没有写Orderdetail的__unicode__方法。但是可以看出来有2个实体
 

 

分享到:

相关推荐

    django框架学习笔记(源代码及文档)

    :“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码复用,提供了丰富的内置功能,如ORM(对象关系...

    Django学习笔记

    个人总结的Django学习笔记, 持续更新中。 目前只是总结了django的一部分学习逻辑。

    Django学习笔记.pdf

    3. 表单处理:Django的表单(Forms)组件用于处理HTML表单的数据,包括验证、清洗、格式化和返回错误信息。它提供了一套丰富的工具来创建和操作表单,可以大大简化Web表单的开发。 4. 管理界面:Django自带一个功能...

    Django框架学习笔记

    ### Django框架学习笔记 #### 软件框架概述 软件框架是软件开发中的一种结构化设计,它提供了一种组织代码、数据和其他资源的方式,使得开发者可以更容易地构建应用程序。框架通常包含了一些预设的解决方案,这些...

    Django学习笔记.zip

    这个名为"Django学习笔记.zip"的压缩包文件显然包含了关于Django框架深入学习的各种资料,涵盖了从基础到进阶的主题。让我们逐一探讨这些主题。 1. **Django安装**:Django的安装通常通过Python的包管理器pip完成。...

    Django学习笔记.docx

    Django学习笔记 本文档是 Django 学习笔记,基于 b 站千锋教育的视频课程,涵盖了 Django 的基础知识和应用实践。 知识点一:Django 项目结构 * 项目结构:manage.py、__init__.py、settings.py、urls.py、wsgi....

    django学习笔记

    **Django学习笔记** Django,作为Python领域最流行的Web框架之一,因其高效、安全且易于上手的特点,被广大开发者所青睐。本学习笔记旨在深入解析Django的核心概念、功能以及实际应用,帮助读者从零开始掌握这个...

    Django学习笔记.doc文件.rar

    在本压缩包中,"Django学习笔记.doc文件.rar"包含了一份详尽的Django框架学习资料,由以下几个部分组成: 1. **用户身份验证.doc**:这部分讲述了Django内置的身份验证系统,包括如何创建用户账户,登录和登出功能...

    django笔记 django笔记

    本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 1. **Django简介**: Django是由两位美国开发者在2005年创建的开源项目,它遵循MVC(模型-视图-控制器)设计模式,但更倾向于MTV(模型-模板-视图)...

    Django学习笔记详情

    python Django学习资料详情笔记

    Django学习笔记月伴之夜.

    在`Django学习笔记月伴之夜.py`中,可能会看到如下的模型定义: ```python from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models....

    django学习笔记,用typora软件打开

    django学习笔记,用typora软件打开

    Django学习笔记--阉割版

    Django学习笔记--阉割版 Django是Python下的一个免费开源的Web应用框架,使用它可以快速构建可维护、可扩展、灵活的网站。下面是 Django 学习笔记的总结,涵盖了 Django 的安装、项目结构、应用程序、视图、模型、...

    Python Django 学习笔记 socket运用(五).docx

    Python Django 学习笔记 socket运用(五).docx

    Python Django 学习笔记 socket运用(五).pdf

    Python Django 学习笔记 socket运用(五).pdf

    django框架学习笔记

    【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码复用,提供了丰富的内置功能,如ORM...

    python+django学习笔记

    在"python-month3-master"这个文件夹中,可能包含了作者在第三个月学习Python和Django过程中积累的笔记和项目。这可能包括了对Python高级特性的探讨,如装饰器、生成器、上下文管理器,以及Django中的复杂应用场景,...

Global site tag (gtag.js) - Google Analytics