- django模型里与数据库相关代码一般都写在models.py中
- django模型支持sqlite3,Mysql,PostgreSQL等数据库,在settings.py中配置即可,不用更改models.py中的代码
打开learn/models.py文件,修改其中的代码
#新建了一个person类,继承了models.Model,定义了name和age字段
class Person(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField()
同步数据库
$ python3 manage.py makemigrations
$ python3 manage.py migrate
则在数据库中生成了person表,如下图:
django提供了丰富的数据库API:
$ python3 manage.py shell
Python 3.5.2 (default, Sep 20 2016, 16:45:05)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from learn.models import Person
>>> Person.objects.create(name='caideyang',age=28) //创建数据
<Person: Person object>
>>> Person.objects.get(name='caideyang') //查询
<Person: Person object>
>>>
在上例子中,objects.get() ⽅法查询出来符合条件的对象,但显示结果为<Person: Person object>,不知道确切结果,需要修改models.py
class Person(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField()
def __str__(self):
#python2.7中使用def __unicode__(self):
return self.name
新建⼀个对象的⽅法有以下⼏种:
- Person.objects.create(name=name,age=age)
- p = Person(name="WZ", age=23)
p.save() - p = Person(name="TWZ")
p.age = 23
p.save() - Person.objects.get_or_create(name="WZT", age=23)