博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django开发笔记
阅读量:6063 次
发布时间:2019-06-20

本文共 2100 字,大约阅读时间需要 7 分钟。

django基础之视图

1.在Django中网页前端的页面和其他内容都是由视图来传递的(视图对web请求进行回应)Django通过检查请求的URL(准确地说,是URL里域名之后的那部分)来选择使用哪个视图。

2.每个视图函数或者类只负责处理两件事中的一件

  • 返回一个包含所有请求页面内容的HttpResponse对象
  • 抛出一个诸如HTTP404异常

你的视图可以数据库里读取记录,或者动态生成一个PDF文件,输出XML文件,或者你想用Python库生成任何你想要的形式全看你自己的想法了

 

django基础之模型

一旦建立好数据模型,Django会自动为你生成一套数据库抽象的API,可以让你创建、检索、更新和删除对象。

1.创建和保存对象

Django使用一种直观的方式把数据库表中的数据表示成Python对象:一个模型代表数据库中的一个表,一个模型的实例代表数据库中的一条特定的记录。

#在你显式调用save()之前,Django 不会访问数据库。#save() 方法没有返回值。>>> from blog.models import Blog>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')>>> b.save()#保存对象的改动>>> b5.name = 'New name'>>> b5.save()#上面例子Blog 的一个实例b5 已经被保存在数据库中,下面这个例子将更改它的name 并且更新数据库中的记录#如果你想只用一条语句创建并保存一个对象,使用create()方法。>>>p = Person.objects.create(first_name="Bruce", last_name="Springsteen")

保存ForeignKeyManyToManyField字段

  • 更新 字段的方式和保存普通字段相同 —— 只要把一个正确类型的对象赋值给该字段。下面的例子更新了Entry 类的实例entry 的blog 属性,假设Entry 和Blog 分别已经有一个正确的实例保存在数据库中(所以我们可以像下面这样获取它们):
>>> from blog.models import Entry>>> entry = Entry.objects.get(pk=1)>>> cheese_blog = Blog.objects.get(name="Cheddar Talk")>>> entry.blog = cheese_blog>>> entry.save()
  • 更新 的方式有一些不同 —— 需要使用字段的方法来增加关联关系的一条记录。下面这个例子向entry 对象添加Author 类的实例joe
 
>>> from blog.models import Author>>> joe = Author.objects.create(name="Joe")>>> entry.authors.add(joe)#为了在一条语句中,向ManyToManyField添加多条记录,可以在调用add()方法时传入多个参数>>> john = Author.objects.create(name="John")>>> paul = Author.objects.create(name="Paul")>>> george = Author.objects.create(name="George")>>> ringo = Author.objects.create(name="Ringo")>>> entry.authors.add(john, paul, george, ringo)

2.获取对象

  通过模型中的管理器构造一个查询集,来从你的数据库中获取对象。

      查询集:从数据库取出来的对象集合,可以是零个,一个或者多个过滤器(过滤器为基于所给的参数限制查询的结果)

      从SQL的角度,查询集同SELECT语句等价,过滤器是像WHERE和LIMIT一样的限制字句。

    你可以从模型的管理器里面取得查询集,每个模型至少有一个管理器,默认命名为objects,通过模型对象来直接访问他。

>>> Blog.objects
>>> b = Blog(name='Foo', tagline='Bar')>>> b.objectsTraceback: ...AttributeError: "Manager isn't accessible via Blog instances."#管理器只可以通过模型的类访问,而不可以通过模型的实例访问,目的是为了强制区分“表级别”的操作和“记录级别”的操作。#对于一个模型来说,管理器是查询集的主要来源。例如,Blog.objects.all() 返回包含数据库中所有Blog 对象的一个查询集。

  

 

转载于:https://www.cnblogs.com/derby/p/6258890.html

你可能感兴趣的文章
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
使用 IntraWeb (11) - 基本控件之 TIWButton
查看>>
使用Operations Manager监控Active Directory
查看>>
onix-文件系统
查看>>
数据中心架构
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
用JS获取地址栏参数的方法
查看>>
一个密码改变了我的人生
查看>>
BGP的消息报文类型
查看>>
PHP解压网页GZIP
查看>>
用JS实现的俄罗斯方块
查看>>
linux 文件压缩命令
查看>>
IT成长中的龟兔赛跑
查看>>
dajango 模板中 js 使用服务器返回的数据
查看>>
SpringBoot通过JPA链接数据库及配置文件相关
查看>>