Django
文章平均质量分 72
Django从入门到入土
-wellplayed-
这个作者很懒,什么都没留下…
展开
-
Django分页器
在页面显示分页数据,需要用到Django分页器组件Paginator对象: paginator = Paginator(user_list, 10)# per_page: 每页显示条目数量# count: 数据总个数# num_pages:总页数# page_range:总页数的索引范围,如: (1,10),(1,200)# page: page对象page对象:page=paginator.page(1)# has_next 是否有下一页# next_page_number 下一页页码。原创 2023-12-12 14:38:34 · 483 阅读 · 0 评论 -
缓存的使用
在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户.原创 2023-12-06 14:38:12 · 1057 阅读 · 0 评论 -
Auth模块的使用
按上面的方式扩展了内置的auth_user表之后,一定要在settings.py中告诉Django,我现在使用我新定义的UserInfo表来做用户认证。authenticate()会在该 User 对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。一旦我们指定了新的认证系统所使用的表,我们就需要重新在数据库中创建该表,而不能继续使用原来默认的auth_user表了。auth 提供的一个创建新的超级用户的方法,需要提供必要参数(username、password)等。原创 2023-12-05 14:39:08 · 1158 阅读 · 0 评论 -
Django中间件
中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。原创 2023-12-05 14:37:34 · 1573 阅读 · 0 评论 -
Django高级之——Ajax、cookie与session
其实Cookie是key-value结构,类似于一个python中的字典。随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。Cookie是由服务器创建,然后通过响应发送给客户端的一个键值对。客户端会保存Cookie,并会标注出Cookie的来源(哪个服务器的Cookie)。当客户端向服务器发出请求时会把所有这个服务器Cookie包含在请求中发送给服务器,这样服务器就可以识别客户端了!原创 2023-12-04 14:40:14 · 1175 阅读 · 0 评论 -
模型层进阶
queryset的cache是用于减少程序对数据库的查询,在通常的使用下会保证只有在需要的时候才会查询数据库。使用exists()和iterator()方法可以优化程序对内存的使用。不过,由于它们并不会生成queryset cache,可能 会造成额外的数据库查询。原创 2023-12-01 14:49:43 · 1209 阅读 · 0 评论 -
ORM常用字段及参数
"""自定义的char类型的字段类""""""限定生成数据库表的字段类型为char,长度为max_length指定的值"""# 使用自定义的char类型的字段。原创 2023-12-01 14:46:12 · 948 阅读 · 0 评论 -
模型层——多表操作
实例:我们来假定下面这些概念,字段和关系作者模型:一个作者有姓名和年龄。作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息。作者详情模型和作者模型之间是一对一的关系(one-to-one)出版商模型:出版商有名称,所在城市以及email。书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many)。原创 2023-12-01 14:41:12 · 920 阅读 · 0 评论 -
模型层——单表操作
查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装。原创 2023-12-01 14:37:51 · 1023 阅读 · 0 评论 -
Web框架与Django路由层
对于一些复杂或者复用的需要,可以定义自己的转化器。regex类属性,字符串类型方法,value是由类属性regex所匹配到的字符串,返回具体的Python变量值,以供Django传递到对应的视图函数中。方法,和to_python相反,value是一个具体的Python变量值,返回其字符串,通常用于url反向引用。使用...原创 2023-11-28 14:47:56 · 1669 阅读 · 0 评论 -
视图层与模板层
你可能已经注意到我们在例子视图中返回文本的方式有点特别。也就是说,HTML被直接硬编码在 Python代码之中。尽管这种技术便于解释视图是如何工作的,但直接将HTML硬编码到你的视图里却并不是一个好主意。对页面设计进行的任何改变都必须对 Python 代码进行相应的修改。站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多。原创 2023-11-29 14:51:24 · 1676 阅读 · 0 评论 -
Web应用与http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。原创 2023-11-27 21:21:18 · 1324 阅读 · 0 评论 -
auth模块
auth模块前戏# 本质: auth模块本质就是在执行完数据库迁移命令以后, 操作django自动生成的auth_user表. django的admin后台管理需要用到该表# 命令行创建超级用户: python3.6 manage.py createsuperuser# auth模块方法及使用# auth模块主要提供了登录认证, 保存用户状态, 判断当前用户是否登陆, 获取当前登陆用户, 登录认证装饰器, 密码核对, 修改密码, 注销当前登录用户, 注册等功能# 登录认证。原创 2023-11-24 18:37:56 · 895 阅读 · 0 评论 -
Django中间件与csrf
django中间件是django的门户1. 请求来的时候需要先经过中间件才能到达真正的django后端2. 响应走的时候最后也需要经过中间件才能发送出去# django支持程序员自定义中间件, 并且暴露给程序员五个可以自定义的方法# 掌握# 了解1. 在项目名或者应用名下创建一个任意名称的文件夹2. 在该文件夹内创建一个任意名称的py文件3. 在该py文件内需要书写类(注意: 这个类必须继承MiddlewareMixin)然后在这个类里面就可以自定义五个方法了。原创 2023-11-23 17:15:30 · 420 阅读 · 0 评论 -
forms组件
"""钩子函数会在特定的节点自动触发完成响应操作钩子函数在forms组件中就类似于第二道关卡,能够让我们自定义校验规则在forms组件中有两类钩子1. 局部钩子当你需要给单个字段增加校验规则的时候可以使用2. 全局钩子当你需要给多个字段增加校验规则的时候可以使用两类钩子函数书写:第一类: 局部def clean_字段(self):return 字段第二类: 全局def clean_字段(self):添加错误提示信息:self.add_error('字段', 'error')原创 2023-11-23 14:48:47 · 122 阅读 · 0 评论 -
Cookie与Session组件
1. cookie是存在于浏览器上的. 保存形式以key:value键值对的形式2. session是存在于服务端的. django中保存在django_session表中. key: 对应session_key字段. value: 对应session_data 还有一个session_date用来保存终止会话时间3. session是基于cookie工作的. 在django中session会告知浏览器以sessionid:随机字符的格式保存数据。原创 2023-11-22 14:41:13 · 116 阅读 · 0 评论 -
Ajax进阶
Ajax发送json格式数据 当我们需要使用到非django内置的第三方功能或者组件代码的时候, 我们一般情况下会创建一个名为utils文件夹 在该文件夹内对模块进行功能性划分, 而utils这个文件夹可以在每个应用下创建 具体结合实际情况原创 2023-11-21 14:40:51 · 1016 阅读 · 0 评论 -
多对多的创建方式与Ajax
'''AJAX 全称 Asynchronous JavaScript and XML 异步JavaScript和XML特点是: 异步提交. 局部刷新例如: github注册页面动态获取用户名实时的跟后端确认并实时展示的前端(局部刷新)1. AJAX 不是新的编程语言,而是一种使用现有标准的新方法(比较装饰器)2. AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程)原创 2023-11-20 14:46:26 · 875 阅读 · 0 评论 -
Django——模型层补充
【代码】Django——模型层补充。原创 2023-11-17 14:42:47 · 521 阅读 · 0 评论 -
Django——模型层进阶
增 create# 实际# 虚拟# 删 deletemodels.Book.objects.filter(pk=1).delete() # 级联删除# 改 update# 实际# 虚拟# 查# 实际# 虚拟# 增 add 可以指定多个# 提示: .authors时已经到第三张表了# 实际# 虚拟# 删 remove 可以指定多个# 提示: .authors时已经到第三张表了# 实际# 虚拟# 改 set 放可迭代对象, 可迭代对象中可指定多个。原创 2023-11-16 15:05:06 · 1167 阅读 · 0 评论 -
Django——模板层、模型层
1. 在应用下创建一个名字”必须“叫templatetags文件夹2. 在该文件夹内创建“任意”名称的py文件3. 在该py文件内"必须"先书写下面两句话(单词一个都不能错)强调: 自定义过滤器函数, 最大只能设有2个形参def abc(v1, v2): # abc函数名任意. 导入自定义过滤器使用的是上面指定的name的值# 使用: (注意: 先导入我们自定义filter那个文件mytag)# 自定义标签: 数可以有多个 类似于自定义函数。原创 2023-11-15 15:12:22 · 726 阅读 · 0 评论 -
Django——视图层
'''FBV全称Function Based View CBV全称Function Based View. FBV和CBV各有千秋# CBV特点: 能够直接根据请求方式的不同直接匹配到对应的方法执'''# 路由层使用# 视图层使用passpass# 三板斧三板斧: HttpResponse, render, redirect第一点: 视图函数本质就是返回HttpResponse对象, render, redirect都继承了HttpResponse类.第二点: render内部原理。原创 2023-11-14 14:44:57 · 562 阅读 · 0 评论 -
Django——路由层
反向解析就是通过一些方法得到一个结果 该结果可以直接访问对应的url触发视图函数regex='\d{2}' # 属性名必须为regexreturn value # 匹配的regex是两个数字,返回的结果也必须是两个数字# 先注册转换器# 路由匹配1. urls.py中url方法第一个参数是正则2. Django默认帮你开启了第一次匹配不成功, 往匹配效验的路径末尾追加一个斜杠/, 再进行重定向重新遍历循环匹配一次配置: 默认settings.py中没有需要自己添加。原创 2023-11-13 14:51:15 · 667 阅读 · 0 评论 -
Django——orm模块创建表关系
【代码】Django——orm模块创建表关系。原创 2023-11-10 14:40:39 · 961 阅读 · 0 评论 -
Django快速入门
静态文件(static): js, css, img, 第三方前端框架, ...网站写好的js文件网站写好的css文件网站用到的图片文件第三方前端框架...提示: 只要已经写好功能的文件, 可以拿来就直接使用的文件就属于静态文件# 补充: django默认是不会自动帮你创建static文件夹 需要你自己手动创建一般情况下我们在static文件夹内还会做进一步的划分处理static/├── js├── css├── img├── ....'''原创 2023-11-09 15:03:42 · 576 阅读 · 0 评论 -
了解web框架
"""纯手撸框架缺陷:1.socket代码过于重复(每次搭建服务端都需要反复造轮子)2.针对HTTP请求数据没有完善的处理方式(目前只能定向切割)"""django大而全 自带的功能非常的多 但是有时候会略显笨重类似于'航空母舰'flask小而精 自带的功能非常的少 但是第三方模块非常的多类似于'游骑兵'# flask的第三方模块加到一起甚至比django还多 并且也越来越像django# flask由于过多的依赖于第三方模块 有时候也会受制于第三方模块tornado。原创 2023-11-08 15:06:18 · 632 阅读 · 0 评论