Chinaunix首页 | 论坛 | 博客
  • 博客访问: 580973
  • 博文数量: 80
  • 博客积分: 2393
  • 博客等级: 大尉
  • 技术积分: 1434
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 21:46
个人简介

己所不欲勿施于人!

文章分类

全部博文(80)

文章存档

2017年(1)

2016年(9)

2014年(1)

2013年(17)

2012年(5)

2011年(13)

2010年(9)

2009年(8)

2008年(17)

分类: Python/Ruby

2013-04-27 14:59:17

如下操作步骤都是按照The Django Book进行操作。
使用开发环境为Pycharm
顺便说一下,这个开发工具到目前为止,感觉是超好的,用着是十分顺手,该想到的问题都做的很完美。

直接入主题吧。

1.文档中说要创建一个名称为books的app. 因为在在工具中创建Django project的时候已经 要求创建了app。我这里命名为webapp.
 所以app的创建过程略过。
 tips:可以使用工具中的 Run manage.py Task 来创建app.
 
2.创建模型
代码如下所示:
其中有几个问题需要注意
1.书中所说的maxlength,不知道是版本问题,还是书写错误,实际应该为max_length.如果你是自己输入的,会有提示。
  如果是copy的话,需要将这些修改一下。
2.headshot = models.ImageField(upload_to='/tmp')
  在校验的时候,提示需要安装一个东西,可能是插件。这里只是为了试验,暂时没有安装,删除该字段。

点击(此处)折叠或打开

  1. from django.db import models

  2. # Create your models here.
  3. class Publisher(models.Model):
  4.     name = models.CharField(max_length=30)
  5.     address = models.CharField(max_length=50)
  6.     city = models.CharField(max_length=50)
  7.     state_province = models.CharField(max_length=30)
  8.     country = models.CharField(max_length=50)
  9.     website = models.URLField()
  10. class Author(models.Model):
  11.     salutation = models.CharField(max_length=10)
  12.     first_name = models.CharField(max_length=30)
  13.     last_name = models.CharField(max_length=40)
  14.     email = models.EmailField()
  15. class Book(models.Model):
  16.     title = models.CharField(max_length=100)
  17.     authors = models.ManyToManyField(Author)
  18.     publisher = models.ForeignKey(Publisher)
  19.     publication_date = models.DateField()
3.然后我们可以在Run manage.py Task 中陆续执行 
 python manage.py sqlall books
  python manage.py syncdb

4.基本数据访问 

这里只增加一个字段,作为测试。



5.就如书中所说,执行如下语句
>>> publisher_list
[, ]

显示是没有意义的。
更改后像这个样子,注意 **是作为为了提示的,要去掉哦

点击(此处)折叠或打开

  1. from django.db import models

  2. # Create your models here.
  3. class Publisher(models.Model):
  4.     name = models.CharField(max_length=30)
  5.     address = models.CharField(max_length=50)
  6.     city = models.CharField(max_length=50)
  7.     state_province = models.CharField(max_length=30)
  8.     country = models.CharField(max_length=50)
  9.     website = models.URLField()
  10.     def __str__(self):
  11.         return self.name
  12. class Author(models.Model):
  13.     salutation = models.CharField(max_length=10)
  14.     first_name = models.CharField(max_length=30)
  15.     last_name = models.CharField(max_length=40)
  16.     email = models.EmailField()
  17.     def __str__(self):
  18.         return '%s %s' % (self.first_name, self.last_name)
  19. class Book(models.Model):
  20.     title = models.CharField(max_length=100)
  21.     authors = models.ManyToManyField(Author)
  22.     publisher = models.ForeignKey(Publisher)
  23.     publication_date = models.DateField()
  24.     def __str__(self):
  25.         return self.title
更改之后显示就好多了。

点击(此处)折叠或打开

  1. >>> from webapp.models import Publisher
  2. >>> Publisher.objects.get
  3. <bound method Manager.get of <django.db.models.manager.Manager object at 0x0172CAD0>>
  4. >>> Publisher.objects.get(name='liwei')
  5. <Publisher: liwei>

到这里我们就达到了和数据库打交道的目的,其他的一些方法慢慢熟悉就可以了。
阅读(1824) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~