Django 学习 (第五部)

表设计:html

from django.db import models # Create your models here. # class Foo(models.Model): # name = models.CharField(max_length=1)


class Business(models.Model): # id
    caption = models.CharField(max_length=32) code = models.CharField(max_length=32,null=True,default="SA") # fk = models.ForeignKey('Foo')

class Host(models.Model): nid = models.AutoField(primary_key=True) hostname = models.CharField(max_length=32,db_index=True) ip = models.GenericIPAddressField(protocol="ipv4",db_index=True) port = models.IntegerField() b = models.ForeignKey(to="Business", to_field='id') # 10
class Application(models.Model): name = models.CharField(max_length=32) r = models.ManyToManyField("Host")
''' Models 层是 Django 框架中最强大的部分之一, 大大方便了 Web 层与数据层的交互。 因为对 Model 层缺乏系统理解,在使用 model Api 时常常须要查找文档, 在此作一次系统地整理。 一个model类对应数据库中的一张表, 类中的属性表明数据库中的各个字段。 类实例化后的对象, 表明数据库中的一条记录。 '''
''' 三、filter 级联 filter, exclude (不包含)等方法不单单能够单独使用, 也能够级联进行使用 建立 model 对象 Model 对象实例化以后,能够调用 save() 方法其写入到数据库。 from blog.models import Blog # 实例化对象 b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.') # 将对象写入数据库 b.save() 当执行 save() 函数时, ORM 会执行 INSERT SQL 语句, 将数据写入数据库。在调用 save() 函数以前, 实例不会执行 INSERT 操做。 保存对象更新 假设: 上例中的 b 实例已经存入数据库, 如今要更新 b 中的 tagline 字段。先更新 tagline 对应的值,而后执行 save() 操做。以下: #更新 tagline 字段 b.tagline = 'All the latest Beatles new 03/28' # 将更新写入数据库 b.save() 例: 查询姓名为 paul 的做者: # 返回的 QuerySet 对象中只包含 name='paul' 的 model 对象 Author.objects.filter(name='paul') 例: 查询姓名不为 paul 的全部做者: # 返回的 QuerySet 对象中,不包含 name='pual' 的 model 对象 Author.objects.exclude(name='paul') 上面介绍的 filter() 等方法返回的结果是 QuerySet 对象。若是明确知道有且只有一个对象能够查询到时,可使用 get() 方法进行查询, 其返回结果为一个 model 对象。 1 one_entry = Entry.objects.get(pk=1) 返回的 one_entry 为 model 对象, 而不是 QuerySet 对象。 采用这种方法查询是,若是查询结果为空,将抛出 DoesNotExist 异常。在通常状况下,不建议使用可使用以下方式代替: one_entry = Entry.objects.filter(pk=1) if one_entry.exists(): one_entry = one_entry[0] pk 缩写 在 Django 中采用 pk 缩写来表示 ‘primary key’, 表中的 id (primary key) 主键 字段,可使用 pk 来表示 例如: 下面的查询语句等价 Blog.objects.get(id__exact=13) Blog.objects.get(id=13) Blog.objects.get(pk=13) ''' 具体参见:# https://www.cnblogs.com/zhaoyingjie/p/6984957.html

Django下的migrationspython

Django migrations的时候咱们可能遇到两个工具:数据库

django-admin和manage.py。django

其实它们的做用是同样的,不一样的是centos

django-admin是存放在python的site-packages/django/bin路径,app

manage.py是在建立project的时候生成的。使用django-admin能够对不一样的项目进行设置。框架

Migrations主要包括如下几个命令:函数

makemigrations工具

做用:根据model的变化生成对应的python代码,该代码用于更新数据库。spa

语法:django-admin makemigrations [app_label [app_label ...]]

若是没有填写任何参数,django会检查全部应用程序中的model变化生成python脚本

,脚本存放在每一个应用下面一个叫作migrations的文件夹下,脚本名字相似0001_initial.py格式。

 

centos安装django

 https://www.cnblogs.com/joy99/p/9034253.html

相关文章
相关标签/搜索