django框架-9模型(数据库)

  • 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
Paste_Image.png
Paste_Image.png

则在数据库中生成了person表,如下图:

Paste_Image.png
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.objects.get(name='caideyang')  //查询

>>> 

在上例子中,objects.get() ⽅法查询出来符合条件的对象,但显示结果为,不知道确切结果,需要修改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
Paste_Image.png

新建⼀个对象的⽅法有以下⼏种:

  1. Person.objects.create(name=name,age=age)
  2. p = Person(name="WZ", age=23)
    p.save()
  3. p = Person(name="TWZ")
    p.age = 23
    p.save()
  4. Person.objects.get_or_create(name="WZT", age=23)

你可能感兴趣的:(django框架-9模型(数据库))