- 博客(38)
- 收藏
- 关注
原创 django之auth模块
Auth模块简介auth模块可以完成自动完成注册登录等所有的功能在models执行数据库迁移命令的时候,会自动生成一张auth_user表django在启动之后提供了一个admin后台管理的登录界面,登录此界面可以管理所有的数据表admin后台管理表参考的就是auth_user表,在后台执行python manage.py createsuperuser创建超级用户Auth方法总结1.authenticate方法user_obj = authenticate(request, use
2021-03-11 20:52:26
172
原创 django之中间件
django中间件简介django是中间件的门户: 当请求来的时候依次经过七个中间件然后再进入到后端, 当响应走的时候依次反方向尽力七个中间件然后再返回到前端.django默认的七个中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.c
2021-03-09 22:07:18
192
原创 Djaong之forms组件相关
简单功能实现前端注册显示提示信息思路分析: 通过在post请求中和get请求中同时定义一个字典 前端通过span标签站位(行级标签根据内部文本大小决定大小) 当发送时候符合检测返回前端的span中的模板语法值为空 当发送不符合检测时候则返回定义好的字符串 后端: msg_dict = {'username': '', 'password': ' '} if request.method == 'POST': username = request.POST.ge
2021-03-01 21:42:24
169
原创 Django之Ajax相关
Ajax介绍Ajax:异步提交,局部刷新发送请求: 1.浏览器输入网址 2.form表单 3.a标签 4.ajax ===> POST/GETAjax: 1.并不是一门新的编程语言,而是一门新的标准方法(类似于装饰器) 2.能够在不刷新页面的前提下,与服务器交换数据刷新部分内容Ajax基本格式前端基本格式 $('.btn').click(function () { $.ajax({ // 1.指定朝那个后端发数据
2021-03-01 19:40:09
140
转载 数据库设计三大范式
第一范式(基本范式,字段拆分)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。第二
2021-02-22 20:53:06
121
原创 django之七(模型层ORM相关)
字段DateField # 年月日DateTimeField # 年月日时分秒 两个参数: 1.auto_now:每次操作数据的时候都会修改时间 2.auto_now_add:在创建数据的时候自动生成时间,更新时不会有改动测试环境配置从manage.py复制前四行代码,手动写两行代码import osif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "a.settings"
2021-02-10 15:11:40
142
原创 djaong之六(模板层)
模板语法的传值'''1.变量相关的传值{{}}2.逻辑相关{{%}}'''def index(request): a = 1 b = 1.1 c = 'aaa' d = [1, 2, 3, 4] # d.0,d.1,d.2,d.3 e = (1, 2, 3, 4) # 通过点的方式取值 f = {'username': '王伟', 'password': '123'} # 通过点的方式取值 f.username g = {1, 2,
2021-02-03 21:46:32
121
原创 django系列五(JsonResponse,request方法,CBV等)
三种传输方式三种传输方式中render和dedirect继承了HttpResponse的类视图函数必须要返回一个HttpResponse对象HttpResponserenderredirect内部简单原理:from django.template import Template,Context res = Template('<h1>{{ user }}</h1>') #放入html文件 con = Context({'user':{'username
2021-02-03 19:50:43
357
原创 Django之四(路由层)
django请求生命周期流程图ps:缓存数据库的存在(绿色)路由层相关路由匹配1.urls的匹配是正则表达式的匹配,当从上到下匹配到任意一个符合正则条件的网址,就会停止匹配2.当在网页中输入url没有加/,而在urls层又有/时,django会自动加/再访问一次 如何取消自动加/? 在配置文件中:APPEND_SLASH = True/False3.url的标准格式是urls = [ url(r'^$'),对应的网址), # 匹配首页 url(r'^xxx/$',对应的网址),
2021-02-01 20:57:02
114
原创 Djaong之三(ORM相关)
数据的增删改查# 1.增加数据import models方法一:user_obj = models.表类名.objects.create(**kwargs)例如:models.User.objects.create(username='mobiel',password='123456')ps:user_obj 是要添加的数据行本身方法二:user_obj = models.表类名(**kwargs)例如:user_obj = models.User(username='mobiel',
2021-01-31 09:38:35
121
1
原创 Django之二(静态文件配置等)
1.静态文件配置"""1.对于html的渲染文件来说,统一放在创建的static文件夹下,同时可以给static文件夹进一步分类:static: js css img bootstrap等配置包2.当访问一个网页的时候,一定是在urls和view开始了路由匹配视图函数才能够渲染出来,而html文件需要借助的一些配置文件由于没有开放借口,所有不能够加载。3.django加载配置文件的步骤: 1.将需要的文件写入或则直接copy到static文件夹下 2.在settings文件中进行配
2021-01-29 21:35:41
125
原创 Django之一(简介)
软件开发架构client-----server架构browser-----server架构web服务的本质1.浏览器的信息流程 1.) 向浏览器发数据请求 2.) 服务端接受请求 3.) 服务端发送数据 4.) 浏览器渲染2.http协议 http协议 明文协议 https协议 密文协议 weksocket协议 数据传输为密文3.http协议的四大特性 1.) 基于请求响应 2.) 应用于socket之上的应用层协议 3.) 无状态 4.) 短/无链接4.响应状态码
2021-01-28 10:45:50
136
原创 前框之Bootstrap框架
简介前端框架Bootstrap框架封装了多种已经装饰好的样式,我们要使用它直接通过类操作即可,如果有需求可以参考官网文档,然后copy下来.链接:https://v3.bootcss.com/css/#overview-normalize基本知识点布局容器<!--1.container 左右留白--><div class="container"> ...</div><!--2.container-fluid 平铺--><div c
2021-01-26 11:11:03
178
原创 前端之jQuery
jQuery简介jQuery相当于是python的模块(在前端称为'类库'),内部封装了js的一些代码,能够帮助我们更简单的书写前端代码Jquery的两种导入方式: 1.直接将jQuery代码下载到本地,放入js代码中,直接导入 2.基于直接引入jQuery的CDN服务(基于网络请求加载) 免费的cnd网址:bootcdn <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js">&l
2021-01-23 09:10:08
240
原创 前端之JavaScript(BOM操作与DOM相关)
BOM部分/全称:browser object Model/BOM操作1.window.innerheight #获取当前页面的高度2.window.innerwidth #获取当前页面的宽度3.window.open() # 打开一个新的网页,第一个参数输入url,第二个空着不写,第三个位置放宽度,高度,和位置 window.open('https://mp.csdn.net/console/home?spm=1000.2115.3001.4503','','height=400px,wi
2021-01-20 19:39:52
113
原创 前端之Javascript
js简介1.js也是一门编程语言,可以写后端代码2.js主要用5.1和6版本3.js的注释:单行// asdasdsad多行/*123*/4.两种引入方式: 1.直接书写 2.通过src引入js文件5.js的书写格式: js是分号作为语句的结束js定义变量的两种方式var x = 10;set x = ;两种定义的区分var不会自动区分局部变量和全局变量,而let会区全局和局部变量 n = 10for n in range(5): print(n)pr
2021-01-17 21:08:36
246
原创 前端之CSS系列(解决浮动塌陷等)
解决浮动带来的父标签塌陷的问题# 浮动带来的影响当父标签没有设置高度和宽度的时候,此时父标签的宽度和高度是由里面的内容来决定他的大小的,如果此时内容脱离了标签,那么父标签就会塌陷# 解决浮动的四中方式 1.给标签设置他的高度和宽度 2.在标签中加一个空白子标签,他的高度与脱离标签的高度一样 3.利用clear属性 {clear:left,right,both} clear属性是从上到下找一个左边或者右边或者两边都没有元素的位置插入该标签(如left:该标签的左边(地面和空中)不能有浮动的元素
2021-01-15 10:47:35
102
原创 前端之CSS相关
分组与嵌套是指可以组合使用多种不同的css选择器,如元组选择器+基本选择器+属性选择器,:表示同级别,并列关系span,div,p { color:yellow; }#s1,.c1,[username] { color:yellow; }伪类选择器是指可以给标签添加四中状态1.访问前的样式 a:link2.鼠标悬浮时的状态 a:hover3.激活状态,即鼠标点击状态 active4.访问之后的状态 visited5.获取焦点:当鼠标点击了focus框的时候触发 fo
2021-01-13 22:06:13
135
原创 前端之表格标签,from表单,CSS介绍等
表格标签<table> <thead> <tr> <td></td> <th></th> </tr> </thead> <tbody> <tr> <td></td> <th></th> </tr> </tbody></table><t
2021-01-12 21:54:20
199
原创 前端系列一(html介绍以及相关标签介绍)
html基本了解当向浏览器发送信息的时候,发生了几件事?'''1.向浏览器发信息2.服务器接收请求3.服务器基于TCP/IP协议发送请求4.浏览器渲染服务器发送的信息''''''为了使浏览器能够兼容多个服务端发送的信息,而产生的标记语言===》HTML'''html的特点'''1.是基于请求响应的2.是基于TCP/IP协议之上应用于应用层的3.无状态 不保存用户的信息(人生若只如初见,何事秋风悲画扇) 每一次都当第一次见。4.无/短链接 发送一次信息就关闭链接 基于
2021-01-11 21:25:29
149
1
原创 操作系统发展历,多道技术,以及进程相关
操作系统发展史1.穿孔卡片阶段是指用户将想要处理的数据用穿孔卡片的方式输入,让CPU执行'''这个时期主要有两个特点: 1.用户独占计算机 2.CPU利用效率太低'''2.联机批处理用户用磁带进行存储,将多个用户的磁带一次性插入,提高了CPU利用的效率3.脱机批处理用户将要输入的信息传入卫星,然后转到高速缓存即内存,让CPU和内存打交道。多道技术多道技术是当程序遇到IO操作时自动切换执行下一个操作多道技术:切换+保存状态多道技术的目的: 1.实现时间上的服用 让CPU
2021-01-10 21:04:34
168
原创 Mysql系列之六(视图,事务,触发器等)
视图1.什么是视图视图就是通过查询一张表储存起来,下次可以接着用2.为什么要用视图如果要频繁的使用一张虚拟表,你可以制作成视图,后续直接使用3.如何操作# 固定语法create view 视图表明 as sql语句获得的虚拟表具体操作# 具体操作create view teacher2course asselect * from teacher INNER JOIN courseon teacher.tid = course.teacher_id; 注意1.视图创建在硬
2021-01-09 20:52:29
122
原创 Mysql系列之四(sql语句)
前期准备### 前期表准备create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50),
2021-01-08 15:46:12
88
原创 Mysql系列之三(约束,外键)
约束条件1.default默认值插入的时候如果没有输入值则会自动填充默认的值# 插入值的时候可以指定插入的字段create table t1( id int, name char(4), age char(6));insert into table(name,age,id) values('json','18',1);# default默认值create table t2( id int, name char(24), sex enum('female','male','othe
2021-01-07 14:57:30
190
原创 Mysql系列之二(数据类型)
一.引擎不同的文件有不同的后缀名,例如txt,docx,cfg,ini,mp4等等,不同的文件有不同的处理方式。而引擎就是处理不同种文件格式的方式1.如何查看所有的引擎show engines ; # 查看所有引擎select databese(); # 查看在哪一个数据库下2.MySQL常见的四种引擎1.InnoDB # 在5.5之后为默认引擎,支持事务,外键,行锁2.MyISAM # 在5.5之前为默认引擎3.memory # 内存存储,数据存储在内存,断电即小时4.blackho
2021-01-05 21:24:00
90
原创 镜像库和人工智能网站
镜像库阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/人工智能相关参考网站<http:
2020-12-31 22:35:18
275
原创 常用模块之re
正则表达式1.什么是正则表达式正则表达式是指用一连窜的特殊字符来表示常用的符号,用来筛选和匹配想要的内容2.正则表达式的具体内容注:1.在括号内用:?可以将查询到非括号中内容也显示出来2.括号即表示一个组,也表示只显示内容3.正则表达式的具体运用# 匹配所有的字符字母下划线print(re.findall('\w','asdas123_sd.dsad13_dsa'))# ['a', 's', 'd', 'a', 's', '1', '2', '3', '_', 's', 'd', '
2020-12-30 10:32:22
164
原创 常用模块之json,pickle,hashlib,configparser,logging
1.序列化模块之json为什么要序列化:?1.持久保持数据程序运行产生的一些数据需要被保存,如果我们玩游戏时,游戏账户的等级,金币等等2.跨平台交互分项目开发产生的数据交互json可以多种语言交互,但json对于python所独特的内容不能够进行存储import jsonjson.dumps()json.loads()json.load() # 针对文件操作json.dump() # 针对文件操作import jsona = {'a':1}b = json.dumps(a)
2020-12-29 12:22:59
93
原创 Mysql系列之一
一、数据存储的演变过程1.随意的传入数据在数据库没有出现之前,我们通常以打开文件的方式将数据存入到一个文件中,不能保证格式是否一致。json~18~男joy|22|男memo#12#女因此,当我们想要读出数据就会显得很繁琐以及困难2.软件开发目录规范的出现软件开发目录规范的出现规范了数据存放的地址目录规范 bin config core lib db interface readme# 通常我们见数据存放在db中二.数据库的数据交互假设我们上述的开发目录中是一个单击
2020-12-27 21:17:24
85
原创 Python内置函数
Python内置函数1.issubclass判断一个类是不是另外一个类的子类class Parent: def __init__(self): self.name = 'egon'class Son(Parent): def __init__(self): self.name = 'alex'print(issubclass(Son,Parent))# 返回结果为True2.locals返回当前名称空间的所有变量名def func(
2020-12-24 23:08:40
59
原创 python实现单例模式
单例模式介绍:单例模式是指创造多个对象但最后都会指向同一个内存地址,这种方式能够节省程序运行的内存空间。创建思想,第一次创建的时候判断是否存在,如果没有存在则创建,而后每次调用将返回同一个内存地址常用在socket套接字,日志记录,连接数据库等方面类实现单例模式:在类中定义一个变量,和类绑定函数实现import settingsclass Msql: __instance = None # 如同在类体外更改一样,更改后在后续运行代码时候类中的绑定的内属性被更改 # 类和函数不一样 #
2020-12-22 21:01:08
118
2
转载 python类的三大特性之继承
一.继承什么是继承继承是指一种创建新类的方法,在python中我们可以将一新建的类继承一个父类或者多个父类,新建的类称为子类或者派生类,他继承的父类称之为基类和超类通过类的__bases__属性,我们可以查看一个类继承的父类class Animal: passclass People(Animal): passprint(People.__bases__) #(<class '__main__.Animal'>,)在python2中有经典类和新式类之分,经典类
2020-12-21 20:21:30
164
原创 python面向对象三大特性之封装
一:封装1.封装的概念我们将相似的代码定义在类中就是一种封装,封装分为两步,隐藏和开放接口。我们可以对类中的代码严格的控制对他的访问。2.隐藏属性pythona在类中采取双下划线开头的方式定义一个隐藏的属性和隐藏的函数,本质上是一种变形操作将变量名变为_类名__变量名,并且会在函数的定义阶段和检查语法阶段进行变形,类在定义是就会执行,而函数会在被加()时被调用。总结: 1.python中对变量名前加__方法设置隐藏 2.仅仅是一种变形操作 ==> _类名__变量名 3.会在定义阶段和
2020-12-19 21:13:44
130
1
原创 python面向对象介绍
1.对象的概念面向对象的核心是对象二字,而对象的作用就在于高度整合,将不同的属性和功能放在一起,即提高了程序的解耦合能力,也提高了程序的可拓展性2.类和对象类即种类,对象即类的对象,类中放着的是对象共有的属性和功能,而对象中放着的是对象自己独有的功能和属性。3.面向对象编程3.1 类和对象的实例化要实例化一个对象则必须要先定义一个类,通常把用类创造对象的过程称为类的实例化过程class People: age = 18 def __init__(self,name): self.na
2020-12-19 20:35:04
110
1
原创 IO模型
常见的五种IO模型常见的IO模型大概有5种:1.IO阻塞模型(blocking IO)2.非IO阻塞模型(blocking IO)3.IO多路复用(IO multiplexing)4.信号驱动IO(signal driven IO 不常用)5.异步IO(asynchronous IO)IO执行一共有两个阶段:一个阶段是指等待数据阶段,第二个阶段是指将速度从操作系统打包复制给应用程序#1)等待数据准备 (Waiting for the data to be ready)#2)将数据从内核拷贝
2020-12-16 21:42:55
111
转载 锁相关以及池相关和协程相关
锁相关以及池相关和携程相关死锁与递归锁(了解)信号量(了解)Event事件(了解)线程q(了解)进程池与线程池(掌握)协程(了解)协程实现TCP服务端的并发效果(了解)死锁与递归锁(了解)当你知道锁的使用抢锁必须要释放锁,其实你在操作锁的时候也极其容易产生死锁现象(整个程序卡死 阻塞)from threading import Thread, Lockimport timemutexA = Lock()mutexB = Lock()# 类只要加括号多次 产生的肯定是不同的对象
2020-12-16 13:19:59
70
原创 python元类
Python元类一.引言:python语言是一门面向对象的语言,在python中一切皆对象二 类的两种创建方式:一个类的三大组层部分:1.类名2.父类3.三类体代码1.类的创建可以用type方法#tyoe('类名',(父类,),{名称空间})classname = 'yct'def __init__(self,name,age): self.name = name self.age = agedef say(): passPerson = type('P
2020-12-10 21:30:04
70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人