自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 python-弱引用

如何在环状数据结构中管理内存在python中,垃圾回收器通过引用计数来回收垃圾对象,当一个对象引用计数为0,或者只剩下弱引用时,这个对象会被释放。弱引用1弱引用不增加引用计数,使用弱引用访问对象得到对象引用。【在cmd中输入ipython可以进入python交互环境。】当对象所有的指向全部指向其他地方后,这个方法才会释放内存,del方法才会被触发。a1指向del方法,a1赋值给a2,a2也指向了del方法,当a1指向None后,del方法仍然被引用了,所以无法释放内存。当这个类没有对象引用后,引用

2020-08-22 20:54:08 621

原创 python---类比较

类比较数值可以直接进行比较,而集合比较的是包含关系 这两者都可以直接比较,但是对于类来说却不可以直接比较。a = 2b = 1# print(a >1)# print(a.__gt__(b)) # gt --- ># 集合比较的是 包含关系# print({1,2,3} > {4}) # False# print({1,2,3} > {1,2}) # True定义两个类,首先在第一个类中,可以相互比较,但是需要定义比较的方法,类之间也是如此,定义比较的方法。

2020-07-11 21:46:03 1452

原创 python-property的使用

property的使用定义一个方法来设置和访问该属性,如下面代码所示,即使赋值为字符串也不会报错,它会直接访问属性,倒是代码的不安全。"""A.get_age() # 访问器A.set_age() # 设置器通过A.age 访问A.age = 20 设置定义类AgeDemo通过访问器访问年龄通过设置器设置年龄年龄不是int类型则主动抛出异常"""# class AgeDemo:# def __init__(self,age):# self.

2020-07-11 21:09:41 296

原创 python----上下文管理器

with 语句自定义使用上下文管理器with语句处理对象必须要有__enter__方法及__exit__方法。并且__enter__方法在语句体(with语句包括起来的代码块)执行之前进入运行,__exit__方法在语句执行完毕退出后自动运行。对于with的一些使用:# try:# print("123")# raise KeyError# except KeyError as e:# # print(e)# print("KeyError")# fina

2020-07-11 16:09:54 163

原创 python----内存大小及消耗

节省内存当实例运行过多时,会消耗大量的内存,如何去降低这些大量实例的内存开销呢?解决方案:定义了 __slots__属性,声明实例有哪些属性(关闭动态绑定)首先定义两个方法,作为两个实例class player(object): def __init__(self,uid,name, status): self.uid = uid self.name = name self.status = statusclass player2(obje

2020-07-11 11:21:25 853

原创 python---自定义内置方法

派生内置定义一个新类型的元组,对于传入的可迭代对象,我们只保留int类型且值大于0的元素。python中有内置的元组类型,tuple类型。自己也可以自定义一个方法类型,class IntTuple(tuple):# # 重写父类的构造方法# def __init__(self,iterable):# # iterable里面的元素 为整数且>0的值# for i in iterable:# if isinstan

2020-07-11 10:31:25 764

原创 python---对象自省工具与super

python对象自省机制自省是通过一定的机制查询到对象的内部结构;较为常减的函数用法有:dir(),type(),hasattr(),isinstance()。通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。class Person(object): name = "happy"class Student(Person): def __init__(self,h_name): self.h_name = h_nameg

2020-07-04 16:26:01 156

原创 python---类属性和实例属性

type 与 isinstance在python中,type代表着类型,而isinstance则是为是否关系;二者在应用中都有很大的空间。type 不考虑 继承关系isinstance 考虑继承关系# class Father(object):# # def dele(self):# # raise NotImplementedError# ## # def crea(self):# # raise NotImplementedError

2020-07-04 15:56:53 262

原创 python-浅语言

鸭子类型与多态鸭子类型对于像Java和C#的强类语言多应用与多态的概念,而python却属于鸭子类型。鸭子类型指的就是在调用实例化方法时,不检查类型,只要你方法存在,参数正确,就可以运行该方法。属于动态语言;它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走路也想鸭子。”那么这就可以看成是鸭子类型。多态指的是定义的和运行的类型不一样,那么就可以被成为多态。如下面的代码所示,只要这个extend的方法存在,参数正确,它并不分析类型是否正确,在最底层都会处理,然后正确输出结果。a = [1,

2020-07-04 11:51:48 174

原创 flask复习

视图高级类视图标准类视图from flask import viewsclass XxxXx(views.View): # 这个方法必须实现 def dispatch_request(self): return xxxxapp.add_url_rule("URL", views_func= XxxXx.as_view('名字')基于调度方法的类视图from flask i...

2020-05-21 14:20:48 306

原创 Restful API规范与Flask-Restful插件

Restful API规范是用于在前端与后台进行通信的一套规范,使用这个规范可以让前后端开发变得更加轻松。协议采用http或者https协议数据传输格式数据之间传输的格式应该都使用ison,而不使用xmlurl连接url连接中,不能有动词,只能有名词,并且对于一些名词,如果出现复数胡,那么应该在后面加s。HTTP请求的方法GET:从服务器中获取资源POST:在服务器中新创建一个资源PUT:在服务器中更新资源(客户端提供所有改变后的数据)PATCH:在服务器上更新资源(客户端只提供需

2020-05-20 11:01:40 394

原创 Flask上下文与钩子函数

Flask上下文Flask项目中有两个上下文,一个是应用上下文(app),另一个是请求上下文(request)。请求上下文request和应用上下文current_app都是一个全局变量,所有请求都是共享的。Flask有特殊机制可以保证每次请求的数据都是个离的,即A请求所产生的数据不会影响到B请求。所以可以直接导入request对象,也不会被一些脏数据影响,并且不需要在每个函数中使用reques...

2020-05-10 09:07:02 257

原创 cookie和session的介绍使用

cookie和session的区别1。 cookie:在网站中,HTTP请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户,cookie的出现就是为了解决这个问题。第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存到本地。当前用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务...

2020-05-08 10:19:36 185

原创 web--安全攻防1-信息收集

信息收集域名介绍域名是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标记计算机的电子方位,浏览网站过程:从DNS服务器获得指定域名对应的IP地址WhoisWhois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(比如域名所有人、域名注册商)不同域名后缀的whois信息需要不同的whois数据库查询。如com的whois数据库...

2020-05-07 09:51:45 479

原创 flask-文件类型上传

文件上传在模板中,form表单中,需要指定encotype='multipart/form-data’才能上传。在后台如果想要获取上传文件,那么应该使用request.files.get(‘avatar’)来获取。保存文件之前,先要使用werkzeug.utils.secure_filename来对上传文件名进行一个过滤。这样才能保证不会有安全问题。获取到上传上来的文件后,使用avata...

2020-05-05 15:51:57 1902

原创 flask-表单验证

Flask-WTF它是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用一下命令来安装Flask-WTF。pip install flask-wtf表单验证安装完flask-wtf后,第一个功能就是用表单来做数据验证,现在又...

2020-05-05 10:24:44 1031

原创 flask-SQLAlchemy插件

SQLAlchemy插件另外一个框架,叫做flask-SQLAlchemy,flask-SQLAlchemy是对SQLAlchemy进行了一个简单的封装,使得我们在flask中使用SQLAlchemy更加简单,可以通过pip install flask-SQLAlchemy.数据库初始化:数据库初始化不再是通过creat_enginefrom flask import Flaskfro...

2020-05-04 15:24:39 290

原创 flask--排序与查询高级运用

排序order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。在模型定义的时候指定默认排序:有些时候,不想每次查询的时候都指定排序的方式,可以指定模型的时候就指定排序的方式。在模型定义中,添加一下代码__mapper_args__"{ "order_by":title }即可让文章使用标题来进行排序正向排序和反向排序:默认jo...

2020-05-03 10:31:32 1385 2

原创 flask--表的外键约束--表关系

表关系基础框架from sqlalchemy import create_engine, and_, or_from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, Float, Text, ForeignKeyfrom sqlalchemy...

2020-05-02 10:31:57 266

原创 外键与其四种约束---一对多

外键再MySQL中,外键可以让表之间的关系更加紧密,而SQLAlchemy同样也支持外键。通过ForeignKey类来实现,并且可以指定表的外键来约束。基础代码同上篇一样!class User(Base): __tablename__ = 'user' id = Column(Integer, primary_key=True, autoincrement=True) ...

2020-05-01 18:10:12 509

原创 SQLAlchemy属性常用数据类型--过滤条件

过滤条件过滤是数据提取的一个很重要的功能,一下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法来实现的。基本代码:from sqlalchemy import create_engine, and_, or_from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import ...

2020-05-01 11:24:32 468

原创 SQLAlchemy属性常用数据类型

常用数据类型integer: 整形Float: 浮点类型Boolean:传递True/False进去DECIMAL:顶点类型enum: 枚举类型Date:传递dateting.date()进去DateTime:传递dateting.datetime()进去Time:传递datetime.time()进去String:字符类型,使用时需要指定长度,区别于text类型Text:文...

2020-05-01 10:02:02 768

原创 flask-ORM增删改查

ORM增加数据基本框架:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmakerHOSTN...

2020-05-01 08:27:24 672

原创 flask-子域名-数据库ORM

子域名子域名在许多网站中都用到,比如一个网站叫做xxx.com,那么我们可以定义一个子域名cms.xxx.com来作为cms管理系统的网址,子域名的实现一般也是通过蓝图来实现,我们创建蓝图的时候添加url_prefix=/user/作为url的前缀,那样我们就可以通过/user/来访问user下的url。但使用子域名则不需要。另外还需配置SERVER_NAME.比如app.config[SER...

2020-04-29 11:19:06 204

原创 flask蓝图

蓝图我们写的url和视图函数都是处于同一个文件,如果项目较大的话,这显然不是一个合理的结构,而蓝图可以优雅的帮我们实现这种需求。基本使用:from flask import Flaskfrom blueprints.news import news_bpfrom blueprints.book import book_bpapp = Flask(__name__)# 注册进来ap...

2020-04-28 15:11:26 155

原创 类视图与蓝图

类试图视图函数可以基于类来实现,类试图的好处是支持继承,但是类试图不能跟函数视图一样,写完类试图还需要通过aap.add_url_rule(url_rule,view_func)来进行注册。from flask import Flask, url_forapp = Flask(__name__)@app.route("/")def index(): # 如果add_url_r...

2020-04-28 10:35:29 214

原创 模板继承--宏

模板继承Flask中的模板可以继承,通过继承可以把模板中许多重复出现的元素提取出来,放在父模板中,并且父模板通过定义block给子模版开一个口,子模版根据需要,在实现这个block,假设现在有一个base.html这个父模板。block 里面添加内容,在另外的文件中继承它里面的内容:{% extends ‘xxx.html’ %}base.html:{% block header %} ...

2020-04-27 09:43:46 153

原创 git-hub的使用---多人协同

在文件夹中新建项目:mkdir personcd personmkdir xxgit inittouch app.py # 创建了一个新的文件git status # 文件状态git add .git commit -m "xxx" # 版本信息git status # 检查状态在git_hub中新建一个组织,上传信息:git remote add origin ...

2020-04-20 18:44:05 734

原创 GitHub使用

步骤注册账号创建仓库本地代码推送到远程仓库创建新建一个仓库,取名。在文件夹中打开Git Hub ,输入:git remote add origin https://github.com/shi-sheng/cs.git git push -u origin master输入账号密码,然后刷新页面。进入另一文件,输入: git push -u origin dev刷...

2020-04-18 19:07:17 139

原创 Git分支

创建分支-解决bug进入到git Bash中,创建分支:git branchgit branch devdev 是创建分支的名字,切换分支输入:git checkout dev修改某一文件,例如修改index.html,输入:vim index.html查看文件内容:cat index.htmlgit add . # 提交git commit -m "名字" # 信息gi...

2020-04-18 11:52:23 135

原创 Git

GitGit是一个分布式的版本控制软件。软件类似于QQ、office等安装到电脑上才能使用的工具版本控制,类似于毕业论文、写文案、视频剪辑,需要反复修改和保留原历史数据。分布式:文件夹拷贝本地版本控制集中式版本控制分布式版本控制版本控制是保留之前的所有的版本,以便回滚和修改。安装Git。地址:https://git-scm.com/book/zh/v2/%E8%B5%B7%...

2020-04-15 17:28:42 171

原创 flask-宏\import--include和set

宏模板做的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。{% macro input(name, value='',type='text') %} <input type="{{ type }}" name="{{ name }}" value="{{ value }}" { % endm...

2020-04-15 10:23:42 225 1

原创 模板过滤器-Jinja2->控制语句

模板过滤器过滤器是通过管道符号(|)进行使用的。例如: {{ name|length }}, 将返回name的长度,过滤器相当于是一个函数,把当前的变量出入到过滤器中,然后过滤器根据自己的功能,再返回响应的值,之后再将结果渲染到页面中,Jinja2中内置了许多的过滤器,再这里可以看到所有的过滤器:abs(value): 返回一个数值的绝对值default(value,default_val...

2020-04-14 11:17:22 453

原创 flask的url、页面跳转和重定向

构造url一般我们通过一个url就可以执行到某一个函数。如果反过来,我们知道一个函数,怎么去获得这个url呢?url_for函数就可以实现这个功能。url_for()函数接受两个及以上的参数,它接受函数名作为第一个参数,接受对应的url规则的命名参数。如果还出现其他的参数。则会添加到url的后面作为查询参数。通过构建url的方式而选择直接在代码中拼url的原因有两点将来如果修改了url,但...

2020-04-12 14:21:54 13053 1

原创 URL与视图类型

URL与视图url与函数的映射在此前的helloword.py文件中,我们已经看到,一个URL要与执行函数进行映射,使用的是@app.route装饰器。@app.route装饰器中,可以指定URL的规则来进行更加详细的映射,比如现在要映射一个文章详情的URL,文章详情的URL是/article/id/, id有可能为1、2、2.。。那么可以通过一下方式:简单的定义一个:@app.route...

2020-04-11 18:50:06 152

原创 flask简介-debug-配置文件

flask简介它是一个非常流行的python Web框架,之所以流行,有一下几个方面:微框架、简洁、只做它需要做的,给开发者提供了很大的扩展性Flask和相应的插件写的很好,用起来也很舒服。开发效率高,比如使用SQLAlchemy的ORM操作可以节省开发者大量的书写sql的时间flask的灵活性非常高,它不会帮你做太多的决策,一些你都可以按照自己的意愿进行更改。使用Flask开发...

2020-04-11 14:37:56 242

原创 flask虚拟环境

虚拟环境为什么需要虚拟环境:到目前为止,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x 写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10 不在兼容Django 0.9的一些语...

2020-04-11 13:21:54 338

原创 vue-cli

vue-cli现在cmd中cd到一个文件夹下,输入vue create vue-project,默认回车就行。用命令行创建项目在指定路径下使用 vue created [项目名称],创建项目。会让你选择要安装哪些包,(默认是 Babel 和 ESLint ),也可以手动选择。如果在安装的时候比较慢,可以在安装的时候使用淘宝链接:vue create -r https://regis...

2020-04-11 09:54:30 83

原创 node环境配置--npm

node环境配置nvm安装nvm (Node Version Manage) 是一个用来管理node 版本的工具,我们之所以需要使用node ,是因为我们需要 node中的 npm(Node Package Mangage) , 使用npm的目的是为了能够方便的管理一些前端开发的包。安装步骤如下:到链接下载nvm的安装包:https://github.com/coreybutler/nvm...

2020-04-09 13:39:04 222

原创 命名路由、重定向和别名

命名路由有时候,通过一个名称来表示一个路由显得更方便一些,特别是在连接一个路由,或者是执行一些跳转的时候。可以在创建 router 实例的时候,在 routes 配置中给某个路由设置名称。consy router = new VueRouter({ routes: [ { path: '/user/:userId', name: 'us...

2020-04-09 11:53:56 440

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除