![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
web前端
文章平均质量分 69
给你骨质唱疏松
个人笔记分享
展开
-
Django之Auth模块
引入我们在开发一个网页的时候, 无可避免的需要设计实现网站的用户系统; 此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能, 为了节省这个麻烦的过程, Django自带了强大的用户认证系统Auth, 它默认使用auth_user表来存储用户的数据ps : auth 本质上也是一个app一.Auth 模块的使用于字段1.先导入 auth 模块form django.contrib import auth 2.进行数据迁移命令来生成 auth_user 表python3原创 2021-04-21 10:13:48 · 393 阅读 · 0 评论 -
django之Cookie、Session、Token
一.Cookie、Session、Token的由来我们知道HTTP协议无连接的, 也就是不保存用户的状态信息早期(十几年前)的网页是静态的, 数据都是写死的, 人们访问网页只是用来查看新闻的, 没有保存用户状态的需求而往后出现了像论坛、博客、网购这一类需要保存用户信息的网站, 如果网站不保存用户的状态信息, 意味着用户每次访问都需要重新输入用户名和密码, 这无疑对用户的体验是极其不好的于是, 就出现了会话跟踪技术, 我们可以把它理解为客户端与服务端之间的一次会晤, 一次会晤包含的多次请求与响应, 每原创 2021-04-21 10:13:13 · 459 阅读 · 1 评论 -
CBV加装饰器与正反向代理简介
一.CBV加装饰器可以给类添加装饰器可以在方法上添加装饰器from django.views import Viewfrom django.utils.decorators import method_decorator# 第一种写法:直接加在类上# 第一个参数是装饰器引用,第二个参数是被装饰对象的方法# @method_decorator(auth,name='get')class MyViews(View): # 第二种写法:指名道姓的加在方法上(不需要指定方法名n原创 2021-04-21 10:12:39 · 135 阅读 · 0 评论 -
中间件与CSRF跨站请求伪造
引入1.什么是中间件中间件是一个很大的概念, 它介于两个事务之间服务器中间件:服务器的调优,例:Java的Tomcat消息队列中间件:消息队列,在应用程序与应用程序之间,数据库中间件:应用程序与数据库之间一.Django中间件 (middleware)1.什么Django中间件请求来的时候需要先经过中间件才能到真正的Django后端响应走的时候也需要经过中间件才能发送出去通俗的讲 : 中间件相当于是Django的门户, 你进来时要经过它, 出去的时候也要经过它介于request与原创 2021-04-21 10:11:32 · 289 阅读 · 0 评论 -
forms组件源码分析
引入分析forms 组件如何进行校验为何将校验成功的数据放入 cleaned_data 中检验失败的数据放入 errors 中代码示例 :# 进行校验 is_valid()if form_data.is_valid(): print('校验成功') # 获得校验成功的数据 cleaned_data print(form_data.cleaned_data)else: print('检验失败') # 获得检验失败的错误提示 errors原创 2021-04-21 10:10:46 · 134 阅读 · 1 评论 -
Django之forms组件
一.Django的forms组件应用场景1.应用一般应用于前端的登入、注册界面, 对用户输入的字段进行校验, 快速的判断用户输入的内容是否合法, 并返回信息2.为何不在前端直接使用JS进行校验前端的校验可以没有, 但后端的校验必须要有因为前端的校验弱不禁风, 有很多种方式可以伪装成浏览器发送请求传递数据或者通过爬虫程序绕过前端页面直接朝后端提交数据二.forms组件的基本使用(步骤)导入forms组件定义一个类, 并继承Form在类中书写要校验的字段, 字段的属性就是要校验的规原创 2021-04-21 10:10:00 · 1318 阅读 · 0 评论 -
Django分页器
一.分页器简介当数据量非常大时, 我们不可能把所有的数据都放在同一页中, 于是就有了分页的概念, 将数据像书一样每一页规定可容纳多少条数据, 运用到Django中的分页组件, 它其实是Django内置的一个类二.Paginator对象与Page类对象1.如何得到这两个类对象导入分页类from django.core.paginator import PaginatorPaginator类对象# 语法伪代码paginator = Paginator([要分页的数据],[每页显示条数]原创 2021-03-26 21:31:19 · 1972 阅读 · 0 评论 -
Django与Ajax
一.Ajax简介1.什么是AjaxAJAX(Asynchronous Javascript And XML)翻译成中文就是 “异步Javascript和XML”即使用Javascript语言与服务器进行异步交互,传输的数据为XML当然,传输的数据不只是XML,现在更多使用json数据通俗的讲 : 它是一种创建交互式网页应用的网页开发技术2.Ajax特点异步提交浏览器页面局部刷新 : 这一特点给用户的感受是在不知不觉中完成请求和响应过程3.异步与同步提交同步交互:客户端发出一个请原创 2021-03-26 21:30:26 · 1047 阅读 · 0 评论 -
CGI、FastCGI、WSGI、uWSGI、uwsgi关系
引入CGI、FastCGI、WSGI、uWSGI、uwsgi是什么 ?之间的关系?一.CGI通用网关接口(Common Gateway Interface/CGI)是外部应用程序与Web服务器之间的接口标准,用来规定一个程序该如何与web服务器程序之间通信CGI程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行用来规范web服务器传输到php解释器中的数据类型以及数据格式,包括URL、查询字符串、POST数据、HTTP header等,也就是为了保证web se原创 2021-03-26 21:29:15 · 1532 阅读 · 0 评论 -
Django框架之模型层之聚合查询(aggregate)、分组查询(annotate)、F查询、Q查询、Meta元信息、原生SQL、综合练习、Django admin 的使用、补充知识点
十六.聚合查询 aggregate( *args,**kwargs)1.五种聚合函数Avg (Average) : 平均值Max (Maximum) : 最大值Min (Minimum) : 最小值Sum (Summary) : 求和Count : 个数2.aggregate( )aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典键的名称是聚合值的标识符,值是计算出来的聚合值键的名称是按照字段和聚合函数的名称自动生成出来的如果你想要原创 2021-03-26 21:28:03 · 1990 阅读 · 0 评论 -
Django框架之模型层之手动创建第三张表、QuerySet对象API、单表操作API、多对多操作API、基于对象(子查询)/基于双下划线查询(连表查询)(正向查询,反向查询)
七.手动创建第三张表1.自动创建(常用)优点 : 第三张表以及对应的外键关联字段不需要书写缺点 : 可扩展性差, 无法对ORM自动生成的中间表进行增加字段的操作注意 : 可以使用ORM提供给多对多关系表操作API以及正方向和双下划线查询第三张表中没有其他字段class Author(models.Model): name = models.CharField(max_length=32,verbose_name='作者名')# 通过ORM自带的ManyToManyField自动创原创 2021-03-26 21:24:43 · 296 阅读 · 0 评论 -
Django框架之模型层之字段及参数介绍
一.django 测试环境搭建当你只是测试项目中某一个 py 文件内容, 不想去启动整个项目的时候,这时候就可以搭建一个测试环境1.方式一任意创建一个 py 文件, 在该文件内书写固定的配置(可以去manage.py文件中去复制)import osif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day06.settings") import django # 加入这两行原创 2021-03-26 21:18:19 · 978 阅读 · 0 评论 -
Django框架之模板层(inclusion_tag、模板的导入与继承、过滤器、模板标签、模板语法详解)
一.两种模板方法变量相关 : {{ }}逻辑相关 : {% %}二.注释注释是代码之母 : {# #}三.模板语法之传值1.Python中基本数据类型传值def test_func(request): s = "Hello 派大星!" i = 1314520 f = 1.75 l = [1,2,3,4,5] d = {"name":"shawn","age":23} t = (2,3,4,5,5) se = {3,4,5,原创 2021-03-19 17:26:12 · 303 阅读 · 0 评论 -
Django框架之视图层(CBV源码剖析、FBV、JsonResponse对象、form表单上传文件)
引入视图层是实现业务逻辑的关键层一.三剑客本质HttpResponse、render、redirect视图函数必须要返回一个 HttpResponse 对象, 如果未返回, 会出现如下错误 :提示你没有返回一个 HttpResponse 对象, 而是返回了一个 None为什么必须返回这个对象呢? 我们 Ctrl + 鼠标点击分别查看三者的源码可得到解释# HttpResponse# renderdef render(request, template_name, c原创 2021-03-18 17:48:31 · 203 阅读 · 0 评论 -
数据增删改查页面搭建
数据增删改查页面需求实现在页面中以表格形式显示数据库所有数据每条数据后边带一个编辑和一个删除选项点击删除, 则删除该条记录, 对应的数据库记录也被删除, 紧接着重新显示更新后的数据表格点击编辑, 则跳转到编辑页面, 对数据进行更新提交后跳转重新显示更新后的数据表格表格的下方设置一个增加按钮点击增加, 跳转到增加页面, 输入增加内容并提交, 紧接着重新显示更新后的数据表格普通版本实现代码urls.py 文件from django.contrib import adminfrom d原创 2021-03-17 19:22:09 · 1287 阅读 · 1 评论 -
Django框架之路由层
一.路由层之路由匹配1.什么是路由路由可以看成是跟在 ip 和 port 之后的地址2.url( ) 方法# 示例urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/', views.login_func), url(r'^register/$', views.register_func),]url( ) 方法的第一个参数其实是正则表达式, 一旦第一个参数匹配到了内容直接结束匹配, 并调原创 2021-03-17 19:21:22 · 323 阅读 · 1 评论 -
django ORM 表关系与Django 请求生命周期流程图
一.表与表之间的关系1.三种对应关系一对多一对一多对多2.表关系判断得出表关系结论需要双向进行观察对比(换位思考)3.表关系举例书籍表 : books出版社表 : publish作者表 : author作者介绍表 : author_info一本书可以对用多位作者, 一位作者可以对应多本书 (多对多)一本书只能有一个出版社, 一个出版社可以出版多本书 (一对多)一位作者对应一个作者简介,一个作者简介对应一位作者 (一对一)4.ORM 针对外键字段的创建位置原创 2021-03-16 19:04:56 · 218 阅读 · 0 评论 -
django ORM 简介
一.django ORM 简介1.什么是ORMORM : 全称 object relational mapping, 对象关系映射功能 : 通过orm实现使用操作对象的方式来操作数据库中的数据目的 : 就是为了能够让不懂SQL语句的人通过python面向对象的知识点也能够轻松自如的操作数据库缺陷 : sql 封装死了, 有时候查询速度很慢2.ORM与数据库的映射关系ORM DB 类 --------------------> 表对象原创 2021-03-16 16:53:24 · 7266 阅读 · 1 评论 -
Python与django连接数据库
一.pycharm 链接数据库点击Database点击+号添加下载驱动测试失败示例测试成功示例查看链接后的数据库二.django 链接数据库django 默认使用的数据库是自带的 SQLkite3, 功能比较少, 兼容性不够, 我们需要使用 mysql 将其替换1.对setting.py 文件中的 DATABASES 参数进行修改# 默认的数据库配置 : DATABASES = { 'default': { 'ENGINE':原创 2021-03-16 16:52:43 · 762 阅读 · 1 评论 -
静态文件配置与request对象简介
一.静态文件配置1.什么是静态文件静态(static)文件, 写好之后就不会自动改变的文件资源 :写好的CSS文件写好的JS文件图片文件第三方框架文件2.创建静态文件我们默认将所有的静态文件都放在一个static文件夹内django默认是不会自动帮我们创建static文件夹,需要我们手动创建static目录下基本还会在分几个文件夹:static/ |---- js |---- css |---- img |---- 第三方文件资源(b原创 2021-03-16 16:52:05 · 255 阅读 · 0 评论 -
Web前端开发
前端介绍????Web前端简介HTML????HTML简介????HTML文档结构与标签语法……待更CSS……待更JavaScript????JavaScript简介????JS变量以及基本数据类型介绍????JS数值类型与字符串类型的内置方法????JS运算符介绍????JS流程控制????JS函数????JS常用内置对象之数组Array????JS其他常用对象(Date、Math、JSON、RegExp、global、windows、自定义对象)????随机验证码练原创 2021-03-13 23:58:23 · 126 阅读 · 0 评论 -
随机验证码练习
效果图没点击刷新,就会出现随机码 随机验证码 <!DOCTYPE html><html><head> <title>随机验证码</title></head><body> <script type="text/javascript"> //获取最大到最小之间的数 function random(min,max){ return Math.floor原创 2021-03-11 22:59:23 · 474 阅读 · 0 评论 -
JS之global对象的编码和解码方法
URLvar url = 'https://www.luffycity.com/study/chapter/39863/2'编码encodeURIComponent()编码 (使用最多的方法)encodeURI(url) (只能编码空格)console.log(encodeURI(url)); // 只能编码空格console.log(encodeURIComponent(url));解码decondeURIComponent()console.log(decodeURI(enco原创 2021-03-11 22:29:09 · 281 阅读 · 0 评论 -
JS之自定义对象
引入JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键。创建自定义对象你可以看成是我们python中的字典 但是js中的自定义对象要比python里面的字典操作起来更加的方便// 第一种创建自定义对象的方式let d1 = {'name': 'shawn', 'age': 18};console.log(typeof d1); // objectconsole.log(d1['name']); // shawn(获取对象方式一)原创 2021-03-11 22:28:15 · 157 阅读 · 0 评论 -
JS之windows对象
在ECMAScrip中顶层对象就是window对象// 定义变量时var a=3;console.log(window.a); // 3// 定义函数时function hello(){ alert(window.a); // 3}window.hello();原创 2021-03-11 22:16:10 · 177 阅读 · 0 评论 -
JS之RegExp对象(正则对象).
常用匹配模式g (全局匹配,找到所有匹配,而不是在第一个匹配后停止)i (忽略大小写)注意正则放到引号内{ } 内的逗号后面不要加空格// 创建正则对象方式 1 var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$"); // 匹配用户名只能是英文字母、数字和_,并且首字母必须是英文字母, 长度最短不能少于6位, 最长不能超过12位。reg1.test("shawn_1111") // true// 创建正则对象的方原创 2021-03-11 22:15:26 · 322 阅读 · 0 评论 -
JS之JSON对象
JSON格式的字符串转成对象var str1='{"name":"shawn","age":23}';var obj1=JSON.parse(str1);console.log(obj1.name); // "shawn"console.log(obj1["name"]); // "shawn"将对象转成JSON格式var obj = {"name":"shawn","age":23};var str = JSON.stringify(obj);...原创 2021-03-11 22:14:27 · 82 阅读 · 0 评论 -
JS数学对象Math
一.Math对象常用方法法含义Math.floor()向下取整,如5.1取整为5Math.ceil()向上取整,如5.1取整为6Math.max(a,b)求a和b中的最大值Math.min(a,b)求a和b中的最小值Math.random()随机数,默认0-1之间的随机数,若想求min~max之间的数,公式为:min+Math.random()*(max-min)abs(x)返回数的绝对值exp(x)返回 e 的指数log(x)原创 2021-03-11 22:13:40 · 137 阅读 · 0 评论 -
JS日期对象Date
一.创建日期对象创建日期对象只有构造函数一种方式,使用new关键字// 不指定参数,默认当前时间var now = new Date();console.log(now);// Thu Mar 11 2021 21:17:51 GMT+0800 (中国标准时间)var xmas = new Date('December 25,1995 13:30:00');console.log(xmas); // Mon Dec 25 1995 13:30:00 GMT+0800 (中国标准时间)v原创 2021-03-11 21:25:11 · 104 阅读 · 0 评论 -
JS 函数
一.函数定义用来封装你的重复性代码在 Python 中定义函数使用 def 很关键字在 js 中使用 function 定义函数// 语法 function [函数名](形参1,形参2,形参3...){ [函数体代码];}无参函数// 定义无参函数function func1(){ alert("Hello world");}// 调用func1(); // "Hello world"有参函数// 定义有参函数function func2(原创 2021-03-11 20:39:27 · 91 阅读 · 0 评论 -
js 常用内置对象之数组(Array)
一.常用内置对象JavaScript 中所有的事物都是对像 : 字符串、数值、数组、函数…对象就是带有属性和方法的特殊数据类型示例一var food = '牛羊的肉';function 老虎(){ alert('吃' + food);}function 企鹅(){ alert('也吃'+ food);}老虎(); // 老虎吃牛羊的肉企鹅(); // 企鹅也吃牛羊的肉示例二//对象(属性和方法), 创建一个对象 : 姓名、年龄、性别、爱好(动作)var perso原创 2021-03-10 23:50:12 · 352 阅读 · 0 评论 -
JS数值类型与字符串类型的内置方法
一.Number 数值类型JavaScript 中不区分整形和浮点型, 只有一种数字类型 : Numbervar a = 3;var b = 3.3;var c = 2e2; // 200var n = NaN; // number 类型, 表示的是"不是一个数字(NOT a number)"使用 typeof 查看数据类型typeof(a); // "number"typeof(b); // "number"typeof(c); // "number"typeof(d);原创 2021-03-09 23:34:07 · 141 阅读 · 0 评论 -
JS流程控制
一.if … else if … else1.if … elsevar height = 180;if(height > 175){ console.log("OK");}else { console.log("NO");}2.if … else if … elsevar weather = 'sunny';if(weather === 'sunny'){console.log('天气很好,出去玩');}else if(weather ==='rainy'){原创 2021-03-09 23:32:15 · 105 阅读 · 0 评论 -
JS运算符介绍
一.算数运算符+ : 加- : 减* : 乘/ : 除% : 取余++ : 自增-- : 自减var x = 5;var y = 3;var sum = x + y;var sum2 = 4 + 5 + sum;var en = x - y;var or = x * y;var or2 = x * y * sum;//取余var op = x % y;alert(sum2)alert(or)alert(op)alert(or2)var c = x + sum原创 2021-03-09 23:31:33 · 258 阅读 · 0 评论 -
JS变量以及基本数据类型介绍.
一.JavaScript引入方式1.script内部引入<script type="text/javascript"> //编写js代码 alert('I am 派大星'); alert('Hello?')</script>2.引入外部 JS 文件<script type="text/javascript" src="JS外部文件XXXX.js"></script>二.JavaScript 语法规范1.注释//单行注释/*原创 2021-03-09 23:29:55 · 143 阅读 · 0 评论 -
JavaScript简介
JavaScript 的起源故事JavaScript 的设计思想ECMAScript 和 JavaScript 的关系1996年11月,JavaScript的创造者–Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScr原创 2021-03-09 21:12:39 · 127 阅读 · 0 评论 -
HTML文档结构与标签语法
引入在上一篇我们介绍了HTML是一种超文本标记语言, 主要负责编辑文本结构和文本内容, 以便浏览器能正常显示, 浏览器的解析顺序自上而下, 下面对HTML的文档结构展开介绍Pycharm中输入 : html:5 + Tab 或者 ! + Tab<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title>原创 2021-03-09 21:11:44 · 156 阅读 · 1 评论 -
HTML简介(HTMl发展史、HTML5与XTML的区别)
一.什么是 HTML用户使用浏览器打开网页看到结果的过程就是 : 浏览器将服务端的文本文件(即网页文件)内容下载到本地,然后打开显示的过程为了让显示的效果不那么单调,我们会偏向使用word一类的文本编辑工具来编排文本内容,编排的原理就是 : 在编辑文件时会选中各部分内容,然后为内容打上不同的标记,比如什么是标题,什么是段落,然后存放硬盘里,等下次打开时,word会识别之前的标记,然后按照预先编排好的结果显示出来站在显示文本内容的角度去看,浏览器与word的原理一样,我们可以将浏览器当成一个网原创 2021-03-04 09:44:48 · 1212 阅读 · 1 评论 -
前端介绍(前端的发展史)
一.前端的演变1.web1.0时代的网页制作网页制作是web1.0时代的产物,那个时候的网页主要是静态网页,所谓的静态网页就是没有与用户进行交互而仅仅供读者浏览的网页,我们当时称为“牛皮癣”网页例如一篇QQ日志、一篇博文等展示性文章; 在web1.0时代,用户能做的唯一事情就是浏览这个网站的文字图片内容,这时用户也不能像现在在大多数网站都可以评论交流(缺乏交互性)相信可能大多数人都听过“网页三剑客 Dreamweaver+Fireworks+Flash”吧,这个组合就是web1.0时代额产物2原创 2021-03-04 09:41:54 · 3049 阅读 · 1 评论