Python 学习笔记(五)

我们经常需要从文件中读取数据或向其中写入数据,但要做到这一点,我们需要检查文件是否存在。

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

关于ORM:

全称Object Relational Mapping(对象关系映射)。

特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易读。

具体的实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。优点是(1)简洁易读:将数据表抽象为对象(数据模型),更直观易读;(2)可移植:封装了多种数据库引擎,面对多个数据库,操作基本一致,代码易维护;(3)更安全:有效避免SQL注入。

Flask-RESTful 内置了支持验证请求数据,它使用了一个argparse 的库。

help–定义了报错时的提示信息。

Flask-RESTful 提供了 <span class="pre">fields</span> 模块和 <span class="pre">marshal_with()</span> 装饰器。类似 Django ORM 和 WTForm,可以使用 fields 模块来响应中格式化结构。

flask.ext.restful. marshal_with(fields, envelope=None)

A decorator that apply marshalling to the return values of your methods.

主要是解决以下报错:

导入模块的方式;

此外,fields.Nested(),fields.List()也是常用从方法。

进程>线程>协程

主进程:执行的时候,默认的进程称作主进程;子进程,在主进程中可以开启子进程。

multiprocessing模块提供了类似threading模块的接口,并对进程的各种操作进行了良好的封装,提供了各种进程间通信的接口例如Pipe, Queue等等,可以实现进程间的通信,同步等操作。

在子进程中修改全局变量对父进程中的全局变量没有影响。因为父进程在创建子进程时对全局变量做了一个备份,父进程中的全局变量与子进程的全局变量完全是不同的两个变量。全局变量在多个进程中不能共享。

即:如果是全局变量,则每个进程都会拥有一份全局变量,各自操作各自的全局变量。

有时候会需要父进程等待子进程结束再执行父进程后面的代码,此时可以考虑使用join()方法。

例子如下:

jion()也可以理解为阻塞主进程,此处后面的代码,主进程暂不执行。它可以设置timeout。

(1) start():启动子进程实例(创建子进程);

(2) is_alive():判断子进程是否还在活着;如果任务完成,则false;

(3) join([timeout]):是否等待子进程执行结束,或等待多少秒;

(4) terminate():不管任务是否完成,立即终止子进程;

(5) close() :关闭 <span class="pre">Process</span> 对象,释放与之关联的所有资源。如果底层进程仍在运行,则会引发 <span class="pre">ValueError</span> 。注意,如果资源释放后(已调用colse()),再执行 is_alive()会报错。

如果要启动大量的子进程,可以用进程池的方式批量创建子进程。

需要使用到了multiprocessing模块的Queue(队列)。

1.快速入门 — Flask- SQLAlchemy 2.0 documentation

2.Python3多进程multiprocessing模块的使用

3. <span class="pre">multiprocessing</span> — 基于进程的并行

Original: https://www.cnblogs.com/xuliuzai/p/15390819.html
Author: 东山絮柳仔
Title: Python 学习笔记(五)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/621276/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java面试题(六)–Redis

    1 Redis基础篇 1、简单介绍一下Redis优点和缺点? 优点: 1、本质上是一个 Key-Value 类型的内存数据库,很像memcached 2、整个数据库统统加载在内存当…

    数据库 2023年6月16日
    087
  • spring-boot-starter-actuator

    使用: HTTP方法 路径 描述 鉴权 GET /autoconfig 查看自动配置的使用情况 true GET /configprops 查看配置属性,包括默认配置 true G…

    数据库 2023年6月16日
    083
  • MySQL学习(4)—MySQL索引

    ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引。其中聚集索引、复合索引、前缀索引、唯一索引默认都是使用B+树,…

    数据库 2023年6月14日
    078
  • 入住感言

    希望我的博客真的可以帮助到别人,也希望自己能够坚持下去。这些年回想起来,我经常做的事就是感动自己。我并没有自己想象的这么努力,虚有其表罢了!几年后的今天希望自己不会在这么想,唯有时…

    数据库 2023年6月6日
    098
  • SpringMvc(一)-初识

    1、环境搭建 1.1 jar包 4.3.18.RELEASE org.springframework spring-web ${spring.version} org.spring…

    数据库 2023年6月16日
    084
  • Redis学习笔记一

    ============================= Redis学习笔记一 注:笔记旨在记录 一、redis简介: 高性能的 key-value 数据库 特点: 支持数据持久…

    数据库 2023年6月16日
    071
  • COLA 架构规范定义

    基础架构图 Adapter 适配层:对前端展示的路由和适配。 VO:返回给前端的对象 assembler:将 responseDTO 转换为 VO web:处理页面请求的 Cont…

    数据库 2023年6月6日
    0110
  • 主从复制架构直接转换MGR(manual)

    IP port role info 192.168.188.81 3316 node1 master 192.168.188.82 3316 node2 slave1 192.16…

    数据库 2023年6月16日
    0221
  • Vue 和 Django 实现 Token 身份验证

    使用 Django 编写的 B/S 应用通常会使用 Cookie + Session 的方式来做身份验证,用户登录信息存储在后台数据库中,前端 Cookie 也会存储少量用于身份核…

    数据库 2023年6月14日
    073
  • MySQL SUBSTRING_INDEX截取字符串

    一、SUBSTRING_INDEX 二、示例 Original: https://www.cnblogs.com/woods1815/p/16368248.htmlAuthor: …

    数据库 2023年6月14日
    083
  • Git 环境搭建

    安装 Git:官网 👉https://git-scm.com/ GIt基础配置(以下操作均在 git bash 窗口下进行) git config –global user.na…

    数据库 2023年6月6日
    074
  • 16 两个对象值相同(x.equals(y) == true),但却可以有不同的hashCode,这句话对不对?

    不对,如果两个对象x和y满足x.equals(y) == true,那么他们的哈希码应该相同。 根据hashCode方法协定:在每个重写了equals方法的类中,必须重写hashC…

    数据库 2023年6月6日
    080
  • Python–Queue

    线程队列: 先入先出队列、后进先出队列、优先级队列 先入先出: 后进先出: 优先级队列: 设置队列空间大小 生产者消费者模型示例: Original: https://www.cn…

    数据库 2023年6月9日
    089
  • zabbix自定义监控进程和日志

    自定义监控 进程 日志 mysql主从状态 mysql主从延迟 自定义监控 进程 [root@client ~]# cd /usr/local/etc/ [root@client …

    数据库 2023年6月14日
    091
  • 解决PHP undefined function mcrypt_encrypt()的报错问题

    今天迁移服务器代码遇到了一个未定义的错误 查找了相关资料后,发现是缺少php_mcrypt扩展 于是去下载扩展: https://windows.php.net/downloads…

    数据库 2023年6月14日
    088
  • 代码随想录-数组篇

    上次刷没刷完整,和李哥做字节的题感觉先前刷的题白刷了,故打算从头到尾完整走一遍。 二分法 1-1.二分查找 力扣题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一…

    数据库 2023年6月14日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球