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)

大家都在看

  • SQL练习六–More JOIN operations

    Field nameTypeNotes id INTEGER An arbitrary unique identifier title CHAR(70) The name of t…

    数据库 2023年6月16日
    075
  • 系统设计的11个考虑

    有了《系统架构的11条原则》,真正到设计阶段还有另外11个考虑。 系统正确性 考虑一:负负得正 假如我们看到某个代码,明显有逻辑错误,想随手改改。你就要考虑一件事情:这段明显有问题…

    数据库 2023年6月6日
    082
  • 查看PostgreSQL监听端口

    如何查看PostgreSQL的监听端口呢?下面总结一下查看PostgreSQL监听端口的方法。 方法1:netstat命令查看 或者sudo netstat -plunt |gre…

    数据库 2023年6月11日
    066
  • B树-删除

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 删除 根据B树的以下两个特性 每一个非叶子结点(除根结点)最少有 ⌈ m/2⌉ 个子结点 有k…

    数据库 2023年6月14日
    067
  • Python实现XMind测试用例快速转Excel用例

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/c2d10f21.html 你好,我是测试蔡坨坨。 今天分享一个Python编写的小工具,实现XMind…

    数据库 2023年6月11日
    073
  • MySQL实战45讲 10

    10 | MySQL为什么有时候会选错索引? 使用哪个索引是由 MySQL 来确定的 可能遇到的情况:一条本来可以执行得很快的语句,却由于 MySQL 选错了索引,而导致执行速度变…

    数据库 2023年5月24日
    0121
  • redis cluster和hash slot

    redis cluster介绍 从redis3.0.0开始,官方支持了redis cluster的集群模式,结束了redis没有集群的时代。 redis cluster 支撑 N …

    数据库 2023年6月9日
    0142
  • MySQL知识点总结(完整版)

    登录和退出MySQL服务器 &#x767B;&#x5F55;MySQL $ mysql -u root -p12345612 &#x9000;&#x…

    数据库 2023年5月24日
    060
  • The user specified as a definer(‘mysql.infochema’@”localhost’) does not exist

    最近将之前用的 mysql5.5 升级到了 mysql8.0,第一天还能正常使用,几天没用后,登录发现报错:The user specified as a definer (&#8…

    数据库 2023年6月6日
    077
  • index_merge引发的死锁排查

    前几天排查了一个死锁问题,最开始百思不得其解,因为发生死锁的两个事务是单语句事务,语句类型相同(where属性列相同,仅值不同),而且语句都走了相同的索引,但最终确实发生了死锁。通…

    数据库 2023年6月9日
    086
  • jieba分词java版本自定义stop_words

    背景 项目使用到jieba分词,分词部分结果产品不满意,想过滤一些不重要的高频词汇;我们是使用的结巴分词java版。maven引入如下: com.huaban jieba-anal…

    数据库 2023年6月11日
    082
  • HTML详解

    一、初识HTML 初始基本标签代码解释 点击查看代码 <!–DOCTYPE:告诉浏览器我们要使用什么规范–> <!DOCTYPE html> <h…

    数据库 2023年6月16日
    083
  • Consul 入门-gRPC 服务注册与发现

    前言 &#x5047;&#x5982;&#x6211;&#x6709;&#x94B1;&#xFF0C;&#x6211;&am…

    数据库 2023年6月6日
    086
  • JUC学习笔记(九)

    JUC学习笔记(一)https://www.cnblogs.com/lm66/p/15118407.htmlJUC学习笔记(二)https://www.cnblogs.com/lm…

    数据库 2023年6月6日
    058
  • 汇编实验十编写子程序

    第一题,显示字符串,8行3列显示Welcome to masm! assume cs:codedata segmentdb ‘Welcome to masm!&#821…

    数据库 2023年6月11日
    064
  • 数据科学手把手:碳中和下的二氧化碳排放分析 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 本文地址:https://www.showm…

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