zoukankan      html  css  js  c++  java
  • Django基本模块介绍

    首先了解什么是MVC
    MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容
    django就是遵循MVC设计的,它有一个专有名词:MVT
    M的全拼为Model,负责处理数据,内嵌了ORM框架
    V的全拼为View,负责接收HttpRequest,业务处理,返回HttpResponse
    T的全拼为Template,负责封装构造要返回的html,内嵌了模板引擎


    Model模块:
    ORM:django和数据库进行数据交互重要框架,它让我们不用再需要面向数据库编写代码
    一,定义模型类:
    1.1模型类必须继承自Model类,创建模型类就是在数据库中创建数据表,django会自动为表创建一个主键列,
    如果自己设置某些属性为主键后django不会再创建主键,默认主键属性为id,可以用pk代替
    1.2属性命名限制,不能使python的关键字,不能使用连续的下划线,这是django的查询方式
    定义属性需要制定字段类型,
    格式属性=models.字段类型(选项)
    常用字段类型:字符串CharField(max_length=字符长度), 整数 IntegerField ,自动增长 AutoField ,
    日期DateField(auto_now=False,auto_now_add=False),前者是每次保存对象时打印当前时间
    后者是显示第一次创建的时间,显示时间戳,二者只能选其一
    1.3关系字段类型:一对多: ForeignKey, 多对多:ManyToManyField ,一对一:OneToOneField
    1.4 可以设置元选项更改数据库的表名,在模型类中定义Meta类,直接写db_table= '指定表名'

    2模型的实例方法
    2.1 save()将对象保存到数据库表中
    2.2 delete()将对象从数据库表中删除

    3 查询集
    3.1 表示从数据库获取的对象集合,它有两大特性:惰性执行,创建的时候不会执行,调用数据才会执行
    缓存,查询集的结果被保存下来,再次查询使用缓存数据
    3.2返回的集合可以使用过滤器:
    (1)all()返回所有数据
    (2)filter(条件) 返回满足条件的数据
    (3)exclude():返回满足条件之外的数据
    (4)order_by(): 排序
    (5)get():返回满足条件的对象
    (6)count():返回当前查询的总条数
    (7)exists():判断查询集中是否有数据,如果有返回True,否则返回False

    4 字段查询:实现sql中where功能
    4.1运算符号
    (1)exact:表示判等
    (2)contains: 表示包含
    (3)startswith, endswith:以指定值开头或结尾
    (4)isnull:是否为Null
    (5)year...日期类型的属性

    list=BookInfo.books.filter(id__exact=1)
    可简写为:list=BookInfo.books.filter(id=1)

    View模块
    1 因为它是负责接收HttpRequest对象,所以要对客户端发送过来的url进行正则匹配,
    让相应的函数进行信息处理
    2 视图就是在View中定义的函数 试图函数的参数必须包含HttpRequest实例,必须返回一个HttpResponse对象

    3 常见响应错误
    3.1 404错误 错误的地址
    3.2 500错误 服务器出错
    3.3 400错误 语法错误
    4 HttpRequest对象 django在接收到http协议后会自己创建一个request对象
    4.1request调用一下方法查看属性
    (1)path :一个字符串,请求页面的完整路径
    (2)method:字符串,请求使用的方法,通常为get或者post
    (3)GET:get请求方式的所有参数
    (4)POST:post请求方式的所有参数
    (5)COOKIES: 所有的cook信息
    (6)session: url携带的session信息

  • 相关阅读:
    静态库中的静态变量连接失败的解决
    (转)Virtual PC 2007虚拟网络设置
    (zt)iPhone Developer注册
    (zt)正则表达式30分钟入门教程
    (zt)Flex SDK 3.2和Flex Builder 3.0.2升级
    (转)完成端口之性能优化
    (摘)法拉利年代型号
    安装windows下的NDS开发环境
    [C#]小问题
    javascript "未结束字符串"
  • 原文地址:https://www.cnblogs.com/Autism/p/11754951.html
Copyright © 2011-2022 走看看