表设计:

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')
#
class Application(models.Model):
name = models.CharField(max_length=32)
r = models.ManyToManyField("Host")
'''
Models 层是 Django 框架中最强大的部分之一, 大大方便了 Web 层与数据层的交互。
由于对 Model 层缺少系统理解,在使用 model Api 时经常需要查找文档,
在此做一次系统地整理。 一个model类对应数据库中的一张表, 类中的属性代表数据库中的各个字段。 类实例化后的对象, 代表数据库中的一条记录。 '''
'''
3、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下的migrations

Django migrations的时候我们可能遇到两个工具:

django-admin和manage.py。

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

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

manage.py是在创建project的时候生成的。使用django-admin可以对不同的项目进行设置。

Migrations主要包括以下几个命令:

makemigrations

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

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

如果没有填写任何参数,django会检查所有应用程序中的model变化生成python脚本

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

centos安装django

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

Django 学习 (第五部)的更多相关文章

  1. Django( 学习第五部 Django之模板语法)

    目录 模板语法 --- 传值 摸板语法 --- 过滤器 模板语法 --- 标签 自定义过滤器.标签.inclusion_tag 模板的继承 模板语法 --- 传值 {{}}       变量相关 {% ...

  2. 今天主要推荐一下django学习的网址!

    前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...

  3. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  4. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  5. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  6. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  7. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  8. django学习之Model(二)

    继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...

  9. Python框架之Django学习

    当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛 ...

  10. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

随机推荐

  1. 异步 Apex 类

    异步Apex类 一个Apex类可以定义为异步类,用于异步执行. 异步类可以通过多种方式实现: Future注解 批处理 Queueable接口 Schedulable接口 Future注解 使用Fut ...

  2. Android NDK编译之undefined reference to 'JNI_CreateJavaVM'

    利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: ...

  3. Android Context类

    一.Context类的使用场景 ①.创建Application对象时,而且整个app公用一个Application对象 ②.创建Service对象时 ③.创建Activity对象时 二.应用程序共有几 ...

  4. Django 信息

    Request information USER admin GET No GET data POST No POST data FILES No FILES data COOKIES Variabl ...

  5. 洗礼灵魂,修炼python(27)--异常处理(1)—>了解异常

    python学到这,其实你应该是在入门到进阶的中间阶段了,但是还没有到进阶的阶段的,这是肯定的,因为进阶得可以从实际问题中解决问题的,比如写一个自动化的爬虫程序啊,对一件事物作大数据归纳分析,开发一个 ...

  6. zTree 优秀的jquery树插件

    zTree 优秀的jquery树插件,文档详细,渲染快 使用方法: 1.引用zTree的js和css文件 <link href="~/Content/zTree_v3/css/zTre ...

  7. vi 复制或剪切多行超级强大方法

    同一个文件:光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a, 'b co 'c 把 co 改成 m 就成剪切了多个文件:在文件一: 光标移到起始行,输入ma ...

  8. iTween for Unity

    你曾经在你的游戏中制作过动画吗?问这个问题可能是愚蠢的,几乎每个Game都有动画,虽然有一些没有,但你必须处理有动画和没有动画.让我们结识 ITween. iTween 官方网站:http://itw ...

  9. Android 发送自定义广播(标准和本地)

    1.首先自定义一个广播接收器:MyBroadcastReceiver package example.com.mybroadcastreceiver; import android.content.B ...

  10. 【PAT】B1072 开学寄语(20 分)

    代码注释应该很清晰 先存下违禁品,放到数组中,未使用map #include<cstdio> #include<string.h> int wupin[10],N,M; boo ...