Django 知识点总结

知识点总结

一、URL:
1、在python 正则表达式中,正则表达式命名组的语法是(?P<name>pattern),其中命名组中的命名就是name,并且pattern 是某些匹配的模式
2.可以定义404 错误页面,统一处理
3.包含其他的 urlpatterns 可以用include 
4.url 的反向解析
	urlpatterns = [
	    path('',views.index,name='index')
	]

	from django.urls import reverse
	def index(request):
	    print (reverse('index'))
	    return HttpResponse('Ok')

打印输出:
/index


二、Mode 的开发流程:
1)1.在应用的models.py 中定义模型类,要求继承自models.Model
2.把应用加入到settings 配置文件的INSTALLED_APPS 项中
3.生成迁移文件
 python manage.py makemigrations

4.执行迁移
 python manage.py migrate

5.使用模型类进行CRUD 操作(即增删改查)

2)mode 增删改查
	#增
	ob=Users() #创建实例对象
	ob.name='zhangsan'
	ob.age=18
	ob.phone='112333444'
	ob.save()
	#改
	ob=Users.objects.get(id=2)
	ob.name='lisi'
	ob.age=30
	ob.phone='11177777'
	ob.save()
	#删除
	ob=Users.objects.get(id=2)
	ob.delete()

	#查询
	mod=Users.objects #获取user 模型的Model 操作对象
	# ulis=mod.all() #获取所有数据

	# ulist=mod.filter(name='lisi')  #获取name 值为lisi 的信息
	# ulist=mod.filter(age__gt=20) #获取所有age 大于20 的信息
	#ulist=mod.filter(age__gte=30) #获取所有age 大于等于30 的信息
	# ulist=mod.filter(age__lte=20)  #获取所有gae 小于等于20 的信息
	ulist=mod.order_by('age') #以age

	for u in ulist:
	    print (u.id,u.name,u.age,u.phone,u.addtime)




三、cookie 中存数据(保存在客户端,即保存在客户端电脑硬盘上,可以找到cookie 对应的磁盘文件):
1.普通
response.set_cookie('uname','zhangsan',expires=value,path='/')
2.加盐
普通cookie 是明文传输的,可以直接在客户端直接打开,所以需要加盐,解盐之后才能查看
response.set_signed_cookie('k','v',salt='fdsa')

cookie 中取数据:
1.普通
request.COOKIES['hello']
request.COOKIES.get('hello')


四、session 
1.设置session 后数据库中对数据进行了序列化
例如 request.session['uname']='zhangsan' 进行session 设置,数据库中session 值为
session_key: rgn2ks6apf7k3il99uiud0y3f7wwfab0   session_data:NmRkZDI5YTY1OThkZTUwNmEzOWIzNTI4YTMzZmQ1ZTk5MGVhOGZmODp7InVuYW1lIjoiemhhbmdzYW4ifQ==                       
expire_date:2022-04-27 02:45:23.424624
2022-04-27 02:45:23.424624D:\python27\Lib\site-packages\django\conf\global_settings.py

  具体session 操作:

    #在session 中默认存放时间是两周
    #SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
    request.session['uname']='zhangsan'
    #设置有效时间
    #1.参数类型:整数:秒
    request.session.set_expiry(5*24*60*60)

    #删除session 数据,只是删除对象中sesion 数据
    del request.session['uname']

    #删除session 对象和数据库中的数据
    request.session.flush()
    return HttpResponse('设置成功')



posted @ 2022-04-13 10:02  lixinliang  阅读(84)  评论(0编辑  收藏  举报