前情回顾一下,:
django项目
安装:
创建项目
配置(setting,static,csrf)
创建app,python manage.py startapp app1
三部分
urls.py路由配置
1,普通正则
2分组正则
传位置参数:url(r‘^blog/(\d+)/‘,views.blog)
3分组命名(得到的是关键字参数)
url(r‘^blog/(?P<year>(\d+)/‘,views.blog‘)) 视图函数要传参blog(request,year)
4用name指定别名
url(r‘^blog/$‘, views.blog, name=‘blog‘) 这里我们使用别名来进行反向解析,为了得到动态的html页面跳转效果
html里面:{%url ‘blog‘%}
views函数里面from django.urls import reverse
函数返回值里面return reverse("blog")
5使用命名空间
url(r‘^blog/‘, include(app1.urls,namespace=‘num1‘ 2017 12)) 这里也牵涉到反向解析
HTML里面{% url ‘num1:blog‘%} url后面空一格写单引号,引号里面写namespace然后冒号name
views里面:from django.urls import reverse 返回值return redirect(reverse("num1:blog",arg=(2017,12)))
views.py
request对象
response对象
FBV和CBV
模板语言
{{变量}}
{{变量.}}如果变量是一个字典,我们直接使用这样的方法去取值
{%for%}循环
{%endfor%}结束循环
{%if%}判断
{%endif%}结束判断
过滤器(filter) {{变量名|filter_name:参数}}
{{时间对象|date:‘Y-m-d‘}}
{%url%}
{%load static%}
{%static ‘img/1.png‘%}
母板,继承,块,组件
连接数据库(orm)
五步四部分
1创建数据库
2在app下的models.py里面创建model类,继承models.Model
3.在setting.py里面配置数据库连接信息
4在项目project的init里面写上import pymysql, pymysql.install_as_mysqldb() # 这一句使用我们的pycharm会自动补全,有提示信息
5,发命令
python manage.py makemigrations # 收集变更
python manage.py migrate # 翻译成sql语句执行
四部分
models.py
django
pymysql
mysql
orm:类 数据表
类的属性
数据列 (表里面的字段)
对象 数据行
对表格进行增删改查:
查:
models.类名,objects.all() 取到所有的数据是一个列表 [取不到值是不会报错的,就显示为空]
models.类名,objects.get() 取到一个对象[特点是取不到值就会报错]
models.类名.objects.exclude(条件) 得到除了这个条件的其他的结果
models.类名.objects.first()
models.类名.objects.last()
增加:
一种方式:
models.类名.objects.create(name=‘peter‘)
一种方式:
obj = models.类名(name=‘peter‘)
obj.save()
删除:
models.类名,objects.filter(age=19).delete()
修改:
models.类名.objects.filter(age=90).update(name=‘greate‘)
单个对象是不能够调用update的
obj=models.类名.objects.get(id=1)
obj.name=‘green‘
obj.save()
今日内容:
单标的增删改查
单表查询的api介绍:
13条常用数据:
返回的是queryset对象
1.all()
2.filter()
3.exclude()
4.values()
5.values_list()
6.order_by()
7.reverse()
8.distinct()
返回数字的:
count()
返回bool值的:
exists()
返回具体的数据对象的:
get()
first()
last()
logging配置参数:
logging={
‘version‘:1, # 目前为止只有这一个值,当前使用版本
‘disable_existing_loggers‘:false, # 不禁用已经存在的logger实例
# 定义一些日志的处理方式
‘handlers‘:{
‘console‘:{
‘level‘:‘‘DEBUG‘‘,
‘class‘:‘logging.streamhandler‘,
},
},
‘loggers‘:{
‘django.db.backends‘:{
‘handlers‘:[‘console‘],
‘propagate‘:True, # 向上传导
‘level‘:‘‘DEBUG‘‘,
},
}
}