如下操作步骤都是按照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')
在校验的时候,提示需要安装一个东西,可能是插件。这里只是为了试验,暂时没有安装,删除该字段。
-
from django.db import models
-
-
# Create your models here.
-
class Publisher(models.Model):
-
name = models.CharField(max_length=30)
-
address = models.CharField(max_length=50)
-
city = models.CharField(max_length=50)
-
state_province = models.CharField(max_length=30)
-
country = models.CharField(max_length=50)
-
website = models.URLField()
-
class Author(models.Model):
-
salutation = models.CharField(max_length=10)
-
first_name = models.CharField(max_length=30)
-
last_name = models.CharField(max_length=40)
-
email = models.EmailField()
-
class Book(models.Model):
-
title = models.CharField(max_length=100)
-
authors = models.ManyToManyField(Author)
-
publisher = models.ForeignKey(Publisher)
-
publication_date = models.DateField()
3.然后我们可以在
Run manage.py Task 中陆续执行
python manage.py sqlall books
python manage.py syncdb
4.基本数据访问
这里只增加一个字段,作为测试。
5.就如书中所说,执行如下语句
>>> publisher_list
[
, ]
显示是没有意义的。
更改后像这个样子,注意 **是作为为了提示的,要去掉哦
-
from django.db import models
-
-
# Create your models here.
-
class Publisher(models.Model):
-
name = models.CharField(max_length=30)
-
address = models.CharField(max_length=50)
-
city = models.CharField(max_length=50)
-
state_province = models.CharField(max_length=30)
-
country = models.CharField(max_length=50)
-
website = models.URLField()
-
def __str__(self):
-
return self.name
-
class Author(models.Model):
-
salutation = models.CharField(max_length=10)
-
first_name = models.CharField(max_length=30)
-
last_name = models.CharField(max_length=40)
-
email = models.EmailField()
-
def __str__(self):
-
return '%s %s' % (self.first_name, self.last_name)
-
class Book(models.Model):
-
title = models.CharField(max_length=100)
-
authors = models.ManyToManyField(Author)
-
publisher = models.ForeignKey(Publisher)
-
publication_date = models.DateField()
-
def __str__(self):
-
return self.title
更改之后显示就好多了。
-
>>> from webapp.models import Publisher
-
>>> Publisher.objects.get
-
<bound method Manager.get of <django.db.models.manager.Manager object at 0x0172CAD0>>
-
>>> Publisher.objects.get(name='liwei')
-
<Publisher: liwei>
到这里我们就达到了和数据库打交道的目的,其他的一些方法慢慢熟悉就可以了。
阅读(1816) | 评论(0) | 转发(1) |