模板templates与模型ORM

1、模板
    1、模板的语法
        1、变量(略)
        2、标签
            1、什么是标签
                允许嵌套一些与服务器相关的内容到标签中。每个标签表示的都是独立的功能,由服务器进行解释执行
            2、语法
                {% ... %}
            3、常用的标签
                1、{%if 条件%} ... {%endif%}
                    接收 :not ,and ,or
                    但是 :不支持 and 和 or 同时出现
                    以下内容当False处理:
                        空[]
                        空()
                        空{}
                        空字符串
                        零值: 0
                        特殊对象:None
                2、{%if 条件%} ... {%else%}...{%endif%}
                3、{%ifequal 值1 值2%}  ... {%endifequal%}
                    判断两个数值是否相等,相等则执行操作
                4、
                    {%ifequal 值1 值2%}
                    ...
                    {%else%}
                    ...
                    {%endifequal%}
                5、{%for 变量 in 元组|字典%}...{%endfor%}
                    1、forloop.counter:记录循环的次数
                    2、forloop.counter0:同上,但从0开始
                    3、forloop.revcounter:记录未被遍历的项目数
                    4、forloop.revcounter0:
                    5、forloop.first : 布尔值,标记是否为第一个项目(第一次遍历)
                    6、forloop.last : 布尔值,标记是否为最后一个项目(最后一次遍历)
        3、过滤器
            1、作用
                在显示数据前,对数据进行改变
            2、常用过滤器
                1、{{var|upper}}
                    将 var 变量的值 变为 大写
                2、{{var|lower}}
                    将 var 变量的值 变为 小写

                ... ...
    2、静态文件的处理
        1、什么是静态文件
            静态文件指的是模板中要用到的css , js , image等一些普通文件。Django中靠相对路径 和 绝对路径来获取静态文件是取不到的,
                只能通过特殊的静态文件的设置,才能访问到静态文件
        2、Settings.py 中设置静态文件
            1、STATIC_ROOT
                在部署时,将静态文件收集到哪个位置
            2、STATIC_URL
                指定访问静态文件的路径
            3、STATICFILES_DIRS
                指定开发阶段中,所有的静态文件所存放的位置
                STATICFILES_DIRS = (BASE_DIR,'static')
        3、使用静态文件
            1、最顶层 {%load static%}
            2、使用时

                <img src="{%static 'images/food.jpg'%}">


2、模型-ORM(Model)
    1、什么是模型
        模型,就是根据数据中的表结构而创建出来的class。数据库中的每张表都可以被映射成一个class,
            表中的每个字段都可以被映射成一个属性。表名可以被构建成 class name ,表中的字段,
            可以被构建成 class 中的一个 属性(名称一致)。并且可以对数据进行CRUD的操作
            C:Create,R:Retrieve,U:Update,D:Delete
    2、如何创建和使用模型 - ORM
        1、什么是ORM
            ORM :Object Relational Mapping,简称ORM ,O/RM,O/R Mapping ,中文为 :对象关系映射
        2、ORM技术的特点
            1、提高了开发效率.ORM可以自动的对实体对象与数据库中的Table进行字段与属性的映射,所以可以省略庞大的数据访问层。
            2、不用SQL编码,能够直接对数据库进行CRUD操作
        3、Django对数据库的支持
            sqlite,mysql,oracle,... ...
        4、如何创建 和 配置数据库
            1、创建一个数据库
                create database webdb default charset utf8 collate utf8_general_ci
            2、在 settings.py 中配置数据库
                DATABASES = {
                    'default':{
                        'ENGINE': .....,
                        'NAME':.... ...
                    }
                }

                1、ENGINE : 引擎
                    连接到 mysql的话 django.db.backends.mysql
                2、NAME : 要连接的数据库名称
                3、PASSWORD : 密码,没有可以省略,否则必须写
                4、HOST :连接的主机,本机可以是 localhost或不写
                5、PORT :端口,可以省略,或 3306
                6、USER :用户名称 root

                小问题:
                    python2 依赖 MySQLdb

                    python3 依赖 pymysql


    3、编写Model
        注意:每个类必须继承自models.Model
        class Publish(models.Model):
            name = models.CharFiled(max_length=30)
            address = models.CharField(max_length=50)
            city = models.CharField(max_length=60)
            country = models.CharField(max_length=50)
            website = models.URLFied()

   

    4、数据库的同步操作

        1、./manage.py makemigrations
            作用:将每个应用下的models.py文件进行映射生成一个日志文件,并存放在migrations文件夹中
        2、./manage.py migrate
            作用:将每个应用下的migrations文件夹中的日志文件同步到 数据库中

    5、Django提供的数据字段 以及 字段选项

        1、数据字段
            1、BooleanField
            2、CharField
            3、DateField
            4、DateTimeField
            5、EmailField
            6、FileField
            7、ImageField
            8、TextField
            9、URLField
        2、字段选项
            作用:决定了字段的其他属性
            1、null :判断是否为空
                name=models.CharField(max_length=20,null=True)
            2、blank :后台填写的数据是否可以为空白
            3、choices :作为数据选项
            4、default :设置默认值
            5、primary_key :标识主键
            6、verbose_name :为字段起别名
            7、db_column :指定列名
            8、db_index :指定列的顺序

    6、数据的导入导出(数据迁移) 以及 版本切换
        1、版本切换
            在Django中想恢复到之前的数据库操作
            ./manage.py migrate 应用名称 0001
            ex:
                ./manage.py migrate index 0002
        2、数据库的导出
            将数据库导成 sql 文件
            1、mysqldump -u root -p 数据库名 > 文件.sql
                (导出所有的表结构以及数据)
            2、mysqldump -u root -p -d 数据库名 > 文件.sql
              (只导出表结构,不导出数据)
        3、数据库的导入
            mysql -u root -p 数据库名 < 文件.sql
            (必须提前创建数据库)

        4、通过数据库自动导出 Models
            ./manage.py inspectdb > 文件名.py

    7、模型的数据库操作方法(CRUD)
        1、在视图中增加数据
            1、Entry.objects.create(属性=值,属性=值)
            2、创建一个 实体对象 ,并通过 save() 完成增加操作
                obj = Entry(属性=值,属性=值)
                obj.save();

        2、查询操作
            在 view 中完成,并将查询结果放在 Template中显示

            所有的查询都要在 Entry.objects 的基础上完成
            1、基本查询操作
                1、all()
                    用法:Entry.objects.all()
                    返回:QuerySet
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值