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、使用时
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
注意:每个类必须继承自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()
作用:将每个应用下的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
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'%}">
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
注意:每个类必须继承自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