每日笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 每日笔记

今天主要学习的就是装饰器数据库的一些基本操作


主要知识点:



装饰器的作用:为已有的函数,在不改变源代码和不改变原函数的调用方式的前提下,增添新的功能。


装饰器的核心原理:我们在调用被装饰器装饰器的函数的时候,其实此函数名并不是原函数了,而是装饰器中的内函数的引用。(一定要记住这句话!!!!!!重要的话说三遍,假装我说了三遍了)


装饰器分类简单了解即可,我们需要记忆的内容是万能装饰器的格式:

  1. import time  
  2. # 定义一个外函数,实现用作装饰器的闭包  
  3. def set_func(func):  
  4.    # 定义一个内函数   
  5.    def inner(*args,**kwargs):  
  6.        # 装饰功能语句,截取起始时间  
  7.        start = time.time()  
  8.        # 调用实际执行的函数(被装饰的函数)  
  9.        result = func(*args,**kwargs)  
  10.        # 装饰功能语句,截取结束时间  
  11.        end = time.time()  
  12.        # 显示一下时间  
  13.        print('共用了%s秒 ' % (end - start))  
  14.        # 返回被装饰函数的结果  
  15.        return result  
  16.    # 返回内函数的引用  
  17.    return inner  

上面试一个简单的万能装饰器,实现的是给函数增加一个现实所用时间的功能。


类装饰器:

  1. # 实现装饰器类  
  2. # 实现两个方法  
  3. # inint方法,用来接收被装饰函数的应用  
  4. # call方法,用来让被装饰函数名调用时,可执行,因为使用类装饰器后,被装饰函数就不在指向原函数对象,而是指向类的实例对象  
  5. import time  
  6. class CountTime(object):  
  7.    # 事项init,作用,接收被装饰函数名  
  8.    def __init__(self,func):  
  9.        # 将被装饰的函数名保存起来  
  10.        self.__func = func  
  11.    # 实现call方法,这个方法才是被装饰函数执行时,真正执行的方法,也就是闭包中的内函数  
  12.    def __call__(self, *args, **kwargs):  
  13.        start = time.time()  
  14.        result = self.__func(*args, **kwargs)  
  15.        end = time.time()  
  16.        print('共用了 %s 秒' % (end - start))  
  17.        return result  
  18. @CountTime  # show1 = ConuntTime(show1)  ---->  show = <class CountTime at @xxxxx> -> show1()  

与之前的装饰器一样,只不过此处返回的是一个实例对象,不再是一个函数。


多个装饰器装饰同一个函数:(装饰的原理在问题解决中进行一个详细的解释)

用的不多,见到的时候知道咋回事就行了

装饰的时候从下到上装饰,执行的时候从上向下执行。

装饰器时为已有的函数添加额外的功能。

知道了原理就行了

装饰器的传参:

   其实就是在一个闭包函数外面再套一层函数,用来接收参数。


关系型数据库:

列:列、属性、字段

域:当前字段的取值范围。

行:元组、记录


数据库的基本操作:

ps 查看系统进程   aux 查看所有进程

  • 启动服务

sudoservice mysql start

  • 停止服务

sudoservice mysql stop

  • 重新启动服务

sudoservice mysql restart

  • 查看服务状态

sudoservice mysql status



连接:

mysql -hlocalhost -P3306 -uroot -p

mysql -uroot -pmysql

mysql -uroot -p

退出:

exit国际通用

quit

ctrl + d

mysql> --查看当前数据库有哪些     -> show databases;两个横杠代表注释

新建数据库

create database 数据库名;

create database 数据库名charset utf8;    (创建一个支持中文的数据库)

查看数据库的创建信息

show create database 数据库名;

改数据库

alter database 数据库名 charset utf8;

alter database 数据库名 charset=utf8;

使用切换数据库

查看当前操作的数据库

select database();

切换

use 数据库;     (这个操作可以不写封号)

use 数据库

删除数据库

drop database 数据库名;

查看数据库

show databases;

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
C++
学习C++笔记402
C++ 多线程
66 0
|
C++
学习C++笔记400
C++ 多线程
59 0
|
C++
学习C++笔记399
C++ 多线程
60 0
|
C++
学习C++笔记380
C++ 预处理器
55 0
|
编译器 C++
学习C++笔记361
C++ 命名空间
68 0
|
C++
学习C++笔记355
C++ 动态内存
62 0
|
人工智能 C++
学习C++笔记337
C++ 文件和流
60 0
|
C++
学习C++笔记335
C++ 文件和流
60 0
|
iOS开发 C++
学习C++笔记336
C++ 文件和流
63 0
|
安全 C++
学习C++笔记283
C++ 类 & 对象
61 0