标签:
大家可以按照我的步骤来开始做:
1 2 3 | django-admin.py startproject learn_models # 新建一个项目 cd learn_models #进入到该项目的文件夹 django-admin.py startapp blog_app #新建一个 blog_app 应用(app) |
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘blog_app‘,
‘web_app‘,
]
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length=50)
email = models.EmailField()
memo = models.TextField()
def __unicode__(self): # 在Python3中使用 def __str__(self) return self.username
python manage.py makemigrations
python manage.py migrate
Django提供了丰富的API, 下面演示如何使用它。
1 2 3 4 5 6 | $ python manage.py shell >>> from people.models import UserInfo>>> UserInfo.objects.create(name = "zhangsan" , age = 24 ) <Person: Person object > >>> |
我们新建了一个用户zhangsan 那么如何从数据库是查询到它呢?
1 2 3 | >>> Userinfo.objects.get(name = "zhangsan" ) < UserInfo: UserInfo object > >>> |
我们用了一个 .objects.get() 方法查询出来符合条件的对象,但是大家注意到了没有,查询结果中显示<UserInfo:UserInfo object>,这里并没有显示出与zhangsan的相关信息,如果用户多了就无法知道查询出来的到底是谁,查询结果是否正确,我们重新修改一下 blog_app/models.py
1、name 和 age 等字段中不能有 __(双下划线,因为在Django QuerySet API中有特殊含义(用于关系,包含,不区分大小写,以什么开头或结尾,日期的大于小于,正则等)
2、也不能有Python中的关键字,name 是合法的,student_name 也合法,但是student__name不合法,try, class, continue 也不合法,因为它是Python的关键字( import keyword; print(keyword.kwlist) 可以打出所有的关键字)
标签:
原文地址:http://www.cnblogs.com/zhangju/p/5836514.html