表设计:

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. 【读书笔记】iOS-属性中的内存管理参数

    一,assign 代表设置时候直接赋值,而不是复制或者保留它. 二,retain. 会在赋值的时候把新值保留.此属性只能用于Object-C对象类型. 三,copy 在赋值时,将新值复制一份,复制工作 ...

  2. 学习css(TODO)

    1. css 是一个什么样的角色? 答:css 负责控制网页的样式. 扩展:div + css 是经典的网页布局.实现网页内容与表现相分离. 2. css 的使用方式? 答:1. 内联式:直接在 HT ...

  3. Jni OnLoad()和OnUnload()

    除了前面说的自定义JNI函数之外,JNI还提供了两个特殊函数,它们是JNI_OnLoad()和JNI_OnUnload(),分别在加载库和卸载库的时候调用. 1.JNI_OnLoad() Java调用 ...

  4. 贝塞尔曲线UIBezierPath简单使用

    //常用属性 /* 1.CGPath: 将UIBezierPath类转换成CGPath 2.currentPoint: 当前path的位置,可以理解为path的终点 3.lineWidth: 线条宽度 ...

  5. Android View体系(二)实现View滑动的六种方法

    1.View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动的处理.其实不管是那种滑动的方式基本思想都是类似的:当触摸事件传到View时,系统 ...

  6. sql 查询表格中多列重复的数据并显示该表的其他列

    我们一般情况下通过分组函数group by来查询重复的列 ) R 但是查询出的结果不能显示该表的其他列 想要查询一张表中有多个列重复的数据且也要显示该表的其他列 SELECT M.* FROM [db ...

  7. EF 排序扩展

    public static class LinqOrderEx { private static IOrderedQueryable<T> OrderingHelper<T>( ...

  8. Calling Matlab function from python: “initializer must be a rectangular nested sequence”

    I am writing a python script from which I hope to call the Matlab anovan function. I have attempted ...

  9. 用友U8年度账结转 常用凭证丢失

    用友年度账结转常用凭证丢失解决方法 1.将新年度账两个表备份后清空:gl-bfreq和gl-bfreqinfo 2.复制旧年度账中gl-bfreq和gl-bfreqinfo两个表数据到新年度账即可.

  10. 解决Windows10或者其他版本Windows Update报错的问题

    最近更新系统,发现报错0x80248014,系统版本为redstone2(创意者更新). 总结发现,只要是windows各个版本自动更新报错的,如0x80开头的一系列错误,都可以通过如下步骤解决: 手 ...