当前位置: 首页 > news >正文

中国三北防护林体系建设网站做网络推广为什么会被抓

中国三北防护林体系建设网站,做网络推广为什么会被抓,定制网站开发费用多少,成都小程序系统定制开发文章目录同步操作同步连Mysql同步连redis同步连mongodb异步操作异步连mysql异步连redis异步连mongodb同步操作 同步连Mysql python 连接mysql可以使用pymysql、mysqlclient等。 安装: # win pip install pymysql 连接mysql: # __author__ "laufing"…

文章目录

  • 同步操作
    • 同步连Mysql
    • 同步连redis
    • 同步连mongodb
  • 异步操作
    • 异步连mysql
    • 异步连redis
    • 异步连mongodb

同步操作

同步连Mysql

python 连接mysql可以使用pymysql、mysqlclient等。

安装

# win
pip install pymysql 

连接mysql:

# __author__ = "laufing"
import pymysql# 连接
conn = pymysql.connect(host="localhost", port=3306, user="lauf", password="xxx", # 太长直接换行database="test_lauf", charset="utf8")
# 开启事务
conn.begin()# 获取游标
cursor = conn.cursor()
# 执行操作
cursor.execute("create table if not exists stu(id int primary key auto_increment, name varchar(50) unique , age int, price decimal, ""birth date)engine=innodb;") # innodb 支持事务、外键;行级锁
cursor.execute("insert into stu(id, name, age, price, birth) values (1, 'jack', 12, 20.4, '2000-01-20'),""(2, 'lucy', 18, 300.5, '1990-05-23');")# ...# 尝试回滚  不会删除已创建的表
# conn.rollback()# 提交
conn.commit()# 最后关闭
cursor.close()
conn.close()

以上cursor操作部分,可以使用with来操作。

自定义上下文管理器,实现数据库的连接:

  1. 进入with作用域前,连接db、开启事务、 并获取游标;
  2. with作用域实现sql操作;
  3. with作用域结束退出时
# __author__ = "laufing"
import pymysql# 自定义上下文管理器
class LaufConnectMysql():def __init__(self, **kwargs):# kwargs 收集 pymysql连接db的参数  + transaction: booltransaction = kwargs.pop("transaction")self.conn = pymysql.connect(**kwargs)self.cursor = Noneif transaction:# 开启事务self.conn.begin()def __enter__(self):""" 进入with作用域前 即执行"""print("进入with作用域前的准备工作(as)...")# 返回什么,with xxx as xxx, as 后面拿到的就是什么# 返回cursor游标对象self.cursor = self.conn.cursor()self.cursor.conn = self.connreturn self.cursordef __exit__(self, exc_type, exc_val, exc_tb):print("退出with作用域的收尾工作...")# 关闭游标self.cursor.close()# 关闭连接self.conn.close()# 防止内存泄漏if __name__ == '__main__':# 连接db的参数kw_args = {"host": "localhost","port": 3306,"user": "lauf","password": "xxx","database": "test_lauf","charset": "utf8","transaction": True}# with 操作with LaufConnectMysql(**kw_args) as cursor:  #print("with作用域:", cursor, type(cursor))# 执行操作try:cursor.execute("create table if not exists stu(id int primary key auto_increment, name varchar(50) unique , age int, price decimal, ""birth date)engine=innodb;") # innodb 支持事务、外键;行级锁cursor.execute("insert into stu(id, name, age, price, birth) values (1, 'jack', 12, 20.4, '2000-01-20'),""(1, 'lucy', 18, 300.5, '1990-05-23');")except Exception as e:print("sql操作异常:", e.args)cursor.conn.rollback()finally:cursor.conn.commit()

在这里插入图片描述

同步连redis

python 同步连接redis可以使用redis包。
安装

# win
pip install redis

连接redis

import redisconn = redis.Redis(host="localhost", port=6379, db=0)
print(conn.exists("user_1"))

使用连接池


import redis# 创建连接池
pool = redis.ConnectionPool(host="localhost", port=6379, db=0, max_connections=30)# 创建一个连接
conn = redis.Redis(connection_pool=pool)
print(conn.type("user_1"))
# 创建第二个连接
conn1 = redis.Redis(connection_pool=pool)
print(conn1.exists("count1"))

同步连mongodb

python同步连接mongodb可以使用pymongo包。

 
 

异步操作

  1. 基于协程的异步;
  2. 基于线程池、进程池的异步;

异步连mysql

异步连接mysql使用aiomysql(基于协程);
若没有对应的异步操作模块,则考虑使用线程池&进程池实现。
安装

pip install aiomysql

异步连接mysql:

import asyncio
import aiomysql  # 基于pymysql实现async def main():# 异步连接mysqlconn = await aiomysql.connect(host="localhost", port=3306, user="lauf",password="xxx", db="test_lauf")# 开启事务await conn.begin()# 获取游标cur = await conn.cursor()# 执行sqltry:await cur.execute("create table if not exists asyncstu(id int primary key auto_increment, ""name varchar(50));")await cur.execute("insert into asyncStu(id, name) values(1, '666');")except Exception as e:print("sql操作异常:", e.args)# 回滚await conn.rollback()finally:# 提交await conn.commit()# 查询await cur.execute("select * from asyncstu;")result = await cur.fetchall()print("查询的结果:", result)# 关闭游标await cur.close()conn.close()# 普通的阻塞式函数
def func():# 开启事件循环 asyncio.run(main())if __name__ == '__main__':func()

使用async def定义的协程函数,必须执行才返回协程对象;
协程对象必须在asyncio的事件循环中执行
 

异步连redis

# pip install aioredisimport asyncio
import aioredisasync def connect(host, port):# 连接是IO操作conn = await aioredis.Redis(host=host, port=port)# 读写是IO操作result = await conn.keys("*")print("all keys:", result)# 断开连接是IO操作await conn.close()if __name__ == '__main__':asyncio.run(connect("localhost", 6379))

 

异步连mongodb

python中无aiopymongo,可以考虑使用线程池完成异步连接mongodb。

http://www.zhongyajixie.com/news/43582.html

相关文章:

  • 千里马招标网站低价刷粉网站推广
  • 白银网站运行搜索引擎营销的典型案例
  • 湖北网站建设检修沧州seo公司
  • 做微网站公司名称百度云资源搜索
  • 中国万网注册网站网站seo整站优化
  • 什么网站做视频搜一搜
  • 网站建实例爱站工具包官网
  • 深圳建筑工地招工平台绍兴百度seo排名
  • 南京百度做网站电话小程序推广方案
  • 做的网站怎样百度能搜到成品网站源码在线看
  • 中国建设银行官方网站e路航下载优化大师
  • 十大难进的互联网公司安卓优化大师官方下载
  • 没有有知道钓鱼网站在哪儿做韩国网站
  • 泰国公共建设网站台州seo排名公司
  • thinkphp做中英文网站宝鸡seo排名
  • 怎样管理网站各种资源都有的搜索引擎
  • asp网站栏目如何修改seo整站优化外包
  • 专用车网站建设哪家专业怎么去做推广
  • 网站轮播图制作营销软文200字
  • 自己做的网站不备案不能访问吗东莞网络排名优化
  • 您的网站空间已过期拉新app推广平台排名
  • 哪些网站可以做淘宝店招厦门seo优化公司
  • 哪些网站用c 做的奖券世界推广网站
  • 2021手机能看的网站汕头最好的seo外包
  • wordpress 批量修改字体大小seo研究中心倒闭
  • 上海网站建设webmeng英雄联盟韩国
  • 郴州做网站宁德seo推广
  • 网上免费注册网站活动推广方案
  • 做平台网站一般有php还是js太原免费网站建站模板
  • 省技能大赛网站开发方案深圳快速seo排名优化