- 博客(90)
- 收藏
- 关注
原创 cookie与session组件
cookie与session简介http协议 四大特性 1.基于请求响应 2.基于TCP\IP作用于应用层之上 3.无状态 基于http协议通信的服务端无法保存客户端状态 纵使见她千百遍 我都当她如初见 4.无(短)连接 随着互联网的发展 很多网站都需要保存客户端状态 为了实现该需求cookie与session应运而生(最初的功能核心:保存用户状态) cookie:服务端让客
2022-03-28 17:06:24
329
原创 Django的下载与基本操作
下载与基本操作1,django的历史版本一,两种安装Django框架方式1,用pycharm安装django框架2,创建django项目文件二、安装django框架方式二(命令行方式)1,安装(安装最新LTS版):pip3 install django==1.11.92, 验证是否安装成功终端输入django-admin3,创建一个django项目:下面的命令创建了一个名为"mysite"的Django 项目:django-admin startprojec
2022-03-28 17:05:32
1136
原创 Django中间件
django中间件"""django中间件是django的门户1.请求来的时候需要先经过中间件才能到达真正的django后端2.响应走的时候最后也需要经过中间件才能发送出去django自带七个中间件"""django请求生命周期流程图研究django中间件代码规律MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.Sessi
2022-03-28 17:04:56
232
原创 form组件
form组件前戏"""练习 页面上获取用户输入的用户名和密码 然后判断用户名和密码是否符合一些条件 如果不符合则返回相应的提示信息"""自定义数据校验功能 主要步骤1.搭建前端页面 标签渲染2.校验数据是否合法 数据校验3.返回相应的提示信息 提示信息# 上述的三个步骤form组件都可以自动实现form组件基本定义# 与模型层类的定义相似class MyForm(forms.Form): # username字段最短三位最长八位 usern
2022-03-28 17:04:22
436
原创 自定义分页器
自定义分页器在前端展示的时候发现一个很严重的问题,一页展示了所有的数据,数据量太大,查看不方便针对数据量大但又需要全部展示给用户观看的情况下,我们统一做法都是做分页处理分页推导首先我们需要明确的时候,get请求也是可以携带参数的,所以我们在朝后端发送查看数据的同时可以携带一个参数告诉后端我们想看第几页的数据其次我们还需要知道一个点,queryset对象是支持索引取值和切片操作的,但是不支持负数索引情况接下来我们就可以推导我们的自定义分页器步骤了current_page = request.
2022-03-27 13:48:19
149
原创 Django ajax语法
字段参数之choices(重要)用户表 性别字段 学历字段 在职状态 ..."""如果我们在设计表字段的时候 有一些字段能够完全列举出所有可能的情况"""# 这个时候推荐使用choices参数class User(models.Model): name = models.CharField(max_length=32) age = models.IntegerField() gender_choices = ( (1, '男性'),
2022-03-27 12:57:46
679
原创 Django中orm优化操作
Q查询"""Q查询""" # filter括号内多个条件均为and关系 # 1.查询主键为3或者卖出数为1000的数据 # res = models.Book.objects.filter(pk=3, maichu=1000) # 逗号分隔为and关系 from django.db.models import Q ###########基本用法########### # res = models.Book.objects.filter(Q(pk=3),
2022-03-27 12:53:48
1827
原创 Django跨表查询
外键字段的增删改查一对多与一对一多对多# 针对一对多 一对一字段操作 # 增 # 直接录入相关的主键字段数据 # models.Book.objects.create(title='三国演义',price=123.32,publish_id=1) # publish_obj = models.Publish.objects.filter(pk=2).first() # models.Book.objects.create(title='水浒传',price=34
2022-03-27 12:47:21
1413
原创 Django模板关键字查询
自定义过滤器、标签、inclusion_tag# 做一个大致了解即可(使用频率不高)过滤器相当于python中的内置函数 自定义过滤器相当于python中自定义函数自定义标签也是"""自定义过滤器 标签 inclusion_tag都需要三步走战略 1.在应用文件夹下创建一个名字必须叫templatetags文件夹 2.在创建的文件夹下创建一个任意名称的py文件 3.在该py文件内先固定写两句话 from django import template register = templ
2022-03-27 12:33:31
727
原创 Django模板语法
小白必会三板斧# 视图函数必须返回一个HttpResponse对象HttpResponse class HttpResponse: pass render def render(...): return HttpResponse(...)redirect def redirect(...) # redirect_class是HttpResponse子类 return redirect_class(...)JsonResponse
2022-03-27 11:34:58
537
原创 django路由层
简易版本django请求生命周期流程图(重要)该图是我们学习的django的流程 也是后期复习django重要的手段路由匹配url(正则表达式,函数或者类型地址)路由匹配的原则:从上往下正则表达式能够匹配到内容就算匹配成功会立刻执行后面的视图函数并且结束整个路由匹配过程,一个视图函数可以对应多个路由,一个路由只对应一个视图函数 优化操作在路由匹配环节如果第一次都没有匹配上django会在路径后面加斜杠再次匹配 APPEND_SLASH = True # 改参数可以控制 简易使用默
2022-03-27 11:26:41
415
原创 Django orm操作
django orm简介# 什么是ORM? ORM:对象关系映射# 为什么要用ORM? 能够让不会写SQL语句的python程序员 使用面向对象的语法即可简单快捷的操作MySQL,极大地提升开发效率 '''但是ORM有时候自动生成的SQL效率可能会很低'''类 表对象 一行行记录对象点属性 记录某个字段对应的值# 如何使用ORM? 在django应用文件夹下的models.py中操作 """orm无法创建库 需要自己提前创建好"""orm创建表""
2022-03-27 11:03:16
1266
原创 Django结构配置
django主要目录结构mysite文件夹 mysite同名文件夹 settings.py # django暴露给用户可以自定义配置的文件 urls.py # 存放路由(路径)与函数(视图函数)对应关系 wsgi.py # 依赖于wsgiref模块的socket启动部分 manage.py文件 # django的入口(启动)文件 app01文件夹 migrations文
2022-03-27 10:52:14
579
原创 Django简介
纯手撸简易版本web框架"""1.代码过于冗余2.处理http数据繁杂"""import socketserver = socket.socket()server.bind(('127.0.0.1',8080)) # 端口号尽量使用8000之后的server.listen(5)while True: conn, addr = server.accept() data = conn.recv(1024) data = data.decode('utf8')
2022-03-27 10:35:23
113
原创 多表查询MySQL
多表查询思路# 准备数据 建表create table dep(id int primary key auto_increment,name varchar(20) );create table emp(id int primary key auto_increment,name varchar(20),sex enum('male','female') not null default 'male',age int,dep_id int);#插入数据insert into
2022-02-24 17:33:45
121
原创 数据库外键约束关键字
外键# 外键前戏以创建一张员工表为例表头内容包含: id name age dep_name dep_desc """缺陷: 1.表的重点不清晰 到底是员工表还是部门表 可以忽略 2.表中相关字段一直在重复存储 浪费存储空间 可以忽略 3.表的扩展性极差,牵一发而动全身 不能忽略解决方式: 将上述一张表拆分成两张表 emp与dep 上述三个缺陷全部解决 但是: 带来了一个小问题 表与表之间的数据没有对应关系了"""# 解决:外键
2022-02-24 17:00:45
2149
原创 前端框架 — Bootstrap
前端框架Bootstrap# 官网:https://v3.bootcss.com/# 下载步骤 1.进入官网直接点击下载 2.选择用于生产环境的Bootstrap下载 3.下载的压缩包 自行解压到能找到的文件路径 4.使用框架调整页面样式一般都是操作标签的class属性即可 # bootstrap需要依赖于jQuery才能正常执行(动态效果)# 引入方式 本地引入(最完整的) 1.引入jQuery 2.引入bootstrap的css文件 3.引入bootstra
2022-02-24 15:59:04
832
原创 MySQL引擎原理
存储引擎# 存储引擎可以看成是处理数据的不同方式 # 查看存储引擎的方式 show engines;# 需要掌握的四个存储引擎 MyISAM MySQL5.5之前默认的存储引擎 不支持事务、行级锁和外键 针对数据的操作较于InnoDB不够安全 但是数据的存取速度较于InnoDB更快 InnoDB MySQL5.5之后默认的存储引擎 支持事务、行级锁和外键 针对数据的操作更加的安全 memory 基于内存存取数据 速度最快但是断电立即丢失 blackho
2022-02-21 21:27:09
465
原创 初识数据库
数据演变史# 1. 单独的文本文件 没有固定的存放位置和格式 文件名:user.txt userinfo.txt data.txt 数据格式:qq|123 zz~123 """程序彼此之间无法兼容"""# 2. 软件开发目录规范 规范了文件名和存储位置 """文件的查找变的简单了 并没有解决核心问题"""# 3. 数据库阶段 规定了文件的存储位置和数据格式 """目前正在使用的阶段 解决了核心问题"""数据存储发展史# 1. 单机游戏阶段 数据各自保存在各自的计算机上 无法
2022-02-18 15:40:26
335
原创 前端 — jQuery
jQuery简介宗旨:Write less,do more内部封装了js代码,是编程更加简单并且兼容所有的主流浏览器jQuery版本版本:1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)2.x:不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)3.x:不兼容IE678,只支持
2022-02-16 20:19:54
117
原创 前端基础 — BOM和DOM
BOM与DOM操作BOM 浏览器对象模型:使用js操作浏览器DOM 文档对象模型:使用js操作前端页面BOM操作window对象所有浏览器都支持 window 对象。它表示浏览器窗口。*如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。*没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。所有 JavaScript 全局对象、函数以及变量均自动成为 window
2022-02-15 16:16:53
116
原创 前端基础 — JavaScript
JavaScript概述# JavaScript简称JS 与Java一点关系都没有 完全是为了蹭Java的热度 # JS也是一门编程语言 js虽然是一门编程语言但逻辑不严谨 JavaScript 很容易学习JavaScript引入方式1.Script标签内写代码<script> // 在这里写你的JS代码</script>2.引入额外的JS文件<script src="myscript.js"></script>JavaSc
2022-02-14 22:30:42
405
原创 前端基础 — CSS内容
css简介# 层叠样式表: 就是给HTML标签修改样式,对文档进行格式化(渲染)语法结构 选择器 { 属性名1:属性值1; 属性名2:属性值2}css注释语法 /*注释内容*/css引入方式1.style内部直接编写css代码格式如下:<head> <meta charset="UTF-8"> <title>Title</title> <style> p{
2022-01-23 09:45:19
694
原创 前端基础 — HTML内容
HTML介绍Web服务本质import socketsk = socket.socket()sk.bind(("127.0.0.1", 8080))sk.listen(5)while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world!</h1>"
2022-01-19 21:17:23
357
原创 前端基础 — 简介
基础介绍HTML 网页的骨架(没有样式很丑)CSS 网页的样式(给骨架美化)JS 网页的动态效果(丰富用户体验)什么是前端? 任何与操作系统打交道的界面都可以称之为“前端” eg: 手机界面(app) 电脑界面(软件)什么是后端? 不直接与用户打交道,而是控制核心逻辑的运行 各种编程语言编写的代码(Python、Java、C++)BS架构我们在编写TCP服务端的时候,针对客户端的选择可以是自己写的客户端代码也可以是浏览器充当客户端(bs架构本质也是cs架构)在
2022-01-19 15:56:13
332
原创 并发编程 —IO模型
IO模型介绍"""理论为主 代码实现大部分为伪代码(没有实际含义 仅为验证参考)"""IO模型研究的主要是网络IO(linux系统)# 基本关键字 同步(synchronous) 大部分情况下会采用缩写的形式 sync 异步(asynchronous) async 阻塞(blocking) 非阻塞(non-blocking) # 研究的方向Stevens在文章中一共比较了五种IO Model: * blocking IO 阻塞IO * n
2022-01-18 17:45:13
138
原创 并发编程 — 协程
引子之前我们学习了线程、进程的概念,了解了在操作系统中**进程是资源分配的最小单位,线程是CPU调度的最小单位。**按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发。这样就可以节省创建线进程所消耗的时间。为此我们需要先回顾下并发的本质:切换+保存状态
2022-01-18 17:18:15
114
原创 并发编程 — 线程
线程概念的引入背景进程之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。有了进程为什
2022-01-18 16:47:08
162
原创 并发编程 — 进程
理论知识操作系统背景知识顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统,点击进入PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算
2022-01-18 15:52:41
716
原创 并发编程 — 操作系统介绍
手工操作 —— 穿孔卡片1946年第一台计算机诞生–20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。手工操作方式两个特点: (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 (2)CPU 等待手工操作
2022-01-17 15:41:49
199
原创 网络编程*
阅读目录一. 楔子二. 客户端/服务端架构三. 网络基础四. 套接字(socket)初使用五. 黏包六. socket的更多方法介绍七. 验证客户端链接的合法性八. socketserver模块一. 楔子现在已经学会了写python代码,加入你写了两个python文件a.py和b.py,分别去运行会发现,这两个python的文件分别运行的很好。但是如果这两个程序之间想要传递一个数据,你要怎么做呢?这个问题以现在得只是就可以解决了,我们可以创建一个文件,把a.py想要传递得内容写到文
2022-01-11 22:25:09
1025
原创 Keepalive高可用
Keepalived 高可用简介什么是高可用一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。常用的工具1.硬件通常使用 F52.软件通常使用 keepalivedkeepalived是如何实现高可用的?1) 涉及名词keepalived软件是基于VRRP协议实现的,VRRP虚拟路由冗余协议,主要用于解决单点故障问题 ARP广播VRRP协议vip负责IP漂移vmac负责通知ARP广播修改mac地址
2022-01-11 21:31:35
400
原创 HTTPS
动静分离1.创建NFS挂载点(实现文件所有用户共享) [root@nfs ~]# mkdir /static [root@nfs ~]# vim /etc/exports 添加以下内容:/static 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666) [root@nfs ~]# systemctl restart nfs-server [root@nfs ~]# chown -R www.www /static/
2022-01-09 16:33:26
1163
原创 代理服务配置与负载均衡
代理主要作用:将流量平均分配代理的方式 01 正向代理 外部想要访问服务器 先找代理 找到之后还需要找服务器 应用:VPN 02 反向代理 外部想要访问服务器 只需要找代理 不需要找服务器 应用:负载均衡Nginx代理服务支持的协议ngx_http_uwsgi_module : Python协议ngx_http_fastcgi_module : PHP 协议ngx_http_scgi_module : Java协议ngx_http_v2_module
2022-01-09 16:02:32
236
原创 LNMP架构
location使用Nginx Location可以控制访问网站的路径,但一个server可以有多个location配置,多个location是有优先级区分的 如下图:# 测试 先打包 /etc/nginx/conf.d目录下所有 .conf文件 [root@web01 conf.d]# vim test.confserver { listen 80; server_name _; # '_' 匹配所有域名 location ~* /python {
2022-01-09 14:41:39
1337
原创 nginx模块
Nginx中的模块(Python模块)目录索引模块示例:location / { autoindex on;}1、启用或禁用目录列表输出语法: autoindex on | off;默认: autoindex off;语境: http,server,location2、指定是否应在目录列表中输出确切的文件大小(四舍五入)语法: autoindex_exact_size on | off;默认: autoindex_exact_size on;语境: http,ser
2022-01-04 20:47:17
1433
原创 nginx软件
Nginx是什么?Nginx是web服务软件。Nginx是一个开源且高性能、可靠的http web服务、代理服务的软件 1、开源 2、Nginx web服务器 3、Nginx是俄罗斯一个程序员 4、Nginx还是代理Nginx特点1)高性能,高并发nginx支持很高的并发,nginx在处理大量并发的情况下比其他web服务要快2)轻量且高扩展性#轻量功能模块少,只保留核心模块,其他代码模块化 (易读,便于二次开发,对于开发人员非常友好) #高扩展性需要什么模块再安装模块,
2022-01-04 20:35:30
1138
原创 NFS共享网络服务
nfs网络服务NFS: 共享网络文件存储服务器简介NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFSnfs 应用没有nfs时 1.A用户上传图片经过负载均衡,负载均衡将上传请求调度
2022-01-04 16:35:18
347
原创 备份服务器(Rsync)
Rsync介绍备份的场景什么是备份?备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步什么情况下需要备份 一般数据比较重要的情况下,数据如果丢失容易找不回来的,建议备份 备份的解释: 将原有的数据复制一份或几份存起来,以备不时之需 不做备份的后果,(数据丢失找不回)备份方式 cp : 本机复制 scp : 远程复制 推(本地上传到远程服务器): scp 1.txt root@ip:[路径] [root
2021-12-29 22:31:54
914
原创 架构-防火墙iptables
架构图详解架构:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构1.用户需求用户带着域名提交访问请求2.DNS通过DNS解析域名找到该域名对应IP返回3.防火墙(iptables)也叫:包过滤防火墙iptables内置4个表,即filter表、nat表、mangle表和raw表 每个表都会有相应的链filter表
2021-12-25 17:35:12
1872
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人