最新要闻
- 资讯推荐:补贴9万后12万买C6 博主揭雪铁龙套路玩的深!低配比高配还贵
- 1TB存储影像机皇!小米13 Ultra或5月发布:同步小米平板6/小米手环8
- 世界滚动:曾称花40万买燃油车很悲催!智己CEO:智己LS7近一半车主来自BBA
- 世界实时:《你好李焕英》后二次合作:贾玲第二部导演作品有张小斐
- 【天天时快讯】董明珠谈“35岁职场危机”:不理解 人们要到60岁才退休
- 主龙骨图片_主龙骨
- 一次看过瘾!《流浪地球》系列两部电影下周连映:时长5小时
- 环球热门:全球第15!小米13 Pro DXO音频140分:险胜iPhone 13 Pro Max
- 今日最新!有六百万人 沉迷在B站上看“抓小偷”
- 天天报道:不退休不会卖股票!董明珠:格力没实现6000亿营收目标 有遗憾
- 【天天新要闻】500km续航纯电MPV!李想首曝网约车D1 Plus:项目被叫停太遗憾
- 吕钱浩:苹果2026年可能会推真全面屏iPhone 那个时候中兴已是第7代了
- 焦点快报!博主阿秋准备坐地铁游香港:晒证件自证是90后
- 环球快资讯:手机换号伤不起!当代人换手机号的成本有多高?
- 百事通!iPhone 17 Pro将是最完美iPhone!果粉还要等两年时间
- 苦是一种享受!董明珠回应仍做手机:格力一些部件必靠进口 国产质量不达标
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
最资讯丨Python 中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,RabbitMQ
在Python 中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,RabbitMQ等数据库/中间件的方式
Python 中连接 MSSQL 数据库
要在 Python 中连接 MSSQL 数据库,可以使用 pyodbc 模块。以下是一个简单的示例:首先,需要安装 pyodbc 模块。可以使用 pip 命令进行安装:
pip install pyodbc
然后,可以使用以下代码连接到 MSSQL 数据库:
(相关资料图)
import pyodbc# 建立连接conn = pyodbc.connect("DRIVER={SQL Server};""SERVER=server_name;""DATABASE=database_name;""UID=username;""PWD=password")# 创建游标cursor = conn.cursor()# 执行查询cursor.execute("SELECT * FROM table_name")# 获取查询结果for row in cursor:print(row)# 关闭连接conn.close()
在上面的代码中,将 server_name
替换为 MSSQL 服务器的名称,将 database_name
替换为要连接的数据库的名称,将 username
和 password
替换为登录 MSSQL 的用户名和密码。
接下来,使用 pyodbc.connect()
方法建立连接,该方法需要指定连接字符串。在连接字符串中,使用 DRIVER={SQL Server}
指定要使用的驱动程序,SERVER
指定服务器名称,DATABASE
指定要连接的数据库名称,UID
指定登录的用户名,PWD
指定登录的密码。
然后,使用 conn.cursor()
方法创建游标,使用 cursor.execute()
方法执行查询语句,使用 for
循环遍历查询结果,最后使用 conn.close()
方法关闭连接。
Python 中连接 MySQL 数据库
要在 Python 中连接 MySQL 数据库,可以使用 PyMySQL 模块。以下是一个简单的示例:
首先,需要安装 PyMySQL 模块。可以使用 pip 命令进行安装:
pip install pymysql
然后,可以使用以下代码连接到 MySQL 数据库:
import pymysql# 建立连接conn = pymysql.connect(host="localhost", port=3306, user="username", password="password", database="database_name")# 创建游标cursor = conn.cursor()# 执行查询cursor.execute("SELECT * FROM table_name")# 获取查询结果for row in cursor:print(row)# 关闭连接conn.close()
在上面的代码中,将 host
替换为 MySQL 服务器的地址,将 port
替换为 MySQL 服务器的端口号,将 username
和 password
替换为登录 MySQL 的用户名和密码,将 database_name
替换为要连接的数据库的名称。
接下来,使用 pymysql.connect()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用 host
指定 MySQL 服务器的地址,port
指定 MySQL 服务器的端口号,user
指定登录的用户名,password
指定登录的密码,database
指定要连接的数据库名称。
然后,使用 conn.cursor()
方法创建游标,使用 cursor.execute()
方法执行查询语句,使用 for
循环遍历查询结果,最后使用 conn.close()
方法关闭连接。
Python 中连接 SQLite 数据库
要在 Python 中连接 SQLite 数据库,可以使用内置的 sqlite3 模块。以下是一个简单的示例:
首先,需要使用以下代码建立连接:
import sqlite3# 建立连接conn = sqlite3.connect("my_database.db")# 创建游标对象cursor = conn.cursor()
在上面的代码中,使用 sqlite3.connect()
方法建立连接。该方法需要指定数据库文件的路径。如果该文件不存在,则会自动创建一个新的数据库文件。如果路径为 :memory:
,则表示在内存中创建一个临时数据库。
接下来,使用 cursor()
方法创建游标对象,该对象用于执行 SQL 查询语句。
例如,可以使用以下代码创建一个名为 users
的表:
# 创建表格cursor.execute(""" CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT, email TEXT )""")
在上面的代码中,使用 execute()
方法执行 SQL 查询语句。在该示例中,创建了一个包含 id
、name
和 email
三个字段的表格。
接下来,可以使用以下代码插入一些数据:
# 插入数据cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com"))cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Bob", "bob@example.com"))cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Charlie", "charlie@example.com"))# 提交更改conn.commit()
在上面的代码中,使用 execute()
方法执行 SQL 查询语句。在该示例中,插入了三条数据,每条数据包含 name
和 email
两个字段的值。在插入数据后,使用 commit()
方法提交更改。
接下来,可以使用以下代码查询数据:
# 查询数据cursor.execute("SELECT * FROM users")rows = cursor.fetchall()# 打印结果for row in rows: print(row)
在上面的代码中,使用 execute()
方法执行 SQL 查询语句。在该示例中,查询了 users
表中的所有数据,并使用 fetchall()
方法获取查询结果。最后,使用循环遍历查询结果,并打印每行数据。
最后,可以使用以下代码关闭连接:
# 关闭连接cursor.close()conn.close()
在上面的代码中,使用 close()
方法关闭游标对象和数据库连接对象。
除了以上的连接方法外,还可以使用 SQLAlchemy 模块来连接 SQLite 数据库。SQLAlchemy 是一个 Python 的 SQL 工具包,支持多种 SQL 数据库,包括 SQLite。以下是一个使用 SQLAlchemy 的示例:
from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker# 建立连接engine = create_engine("sqlite:///my_database.db", echo=True)# 创建 Session 类Session = sessionmaker(bind=engine)# 创建 Base 类Base = declarative_base()# 创建 User 类class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True) name = Column(String) email = Column(String)# 创建表格Base.metadata.create_all(engine)# 创建 Session 对象session = Session()# 插入数据session.add_all([ User(name="Alice", email="alice@example.com"), User(name="Bob", email="bob@example.com"), User(name="Charlie", email="charlie@example.com")])session.commit()# 查询数据users = session.query(User).all()for user in users: print(user.id, user.name, user.email)# 关闭 Session 对象session.close()
在上面的代码中,使用 create_engine()
方法建立连接。该方法需要指定数据库文件的路径。在该示例中,使用了 echo=True
参数,表示在控制台输出 SQL 查询语句,方便调试。
接下来,使用 sessionmaker()
方法创建 Session 类,该类用于创建 Session 对象。使用 declarative_base()
方法创建 Base 类,该类用于定义数据模型。
在该示例中,定义了一个 User
类,该类继承了 Base
类,并定义了 id
Python 中连接 Redis
要在 Python 中连接 Redis 数据库,可以使用 redis 模块。以下是一个简单的示例:首先,需要安装 redis 模块。可以使用 pip 命令进行安装:
pip install redis
然后,可以使用以下代码连接到 Redis 数据库:
import redis# 建立连接r = redis.Redis(host="localhost", port=6379, db=0)# 设置键值对r.set("key", "value")# 获取键值对value = r.get("key")print(value)# 关闭连接r.close()
在上面的代码中,将 host
替换为 Redis 服务器的地址,将 port
替换为 Redis 服务器的端口号,将 db
替换为要连接的数据库的编号。
接下来,使用 redis.Redis()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用 host
指定 Redis 服务器的地址,port
指定 Redis 服务器的端口号,db
指定要连接的数据库的编号。
然后,使用 r.set()
方法设置键值对,使用 r.get()
方法获取键值对,最后使用 r.close()
方法关闭连接。
除了以上的连接方法外,还可以使用 Redis 的连接池来提高连接的效率。连接池可以在多个线程之间共享连接,从而减少连接的开销。以下是一个使用连接池的示例:
import redisfrom redis import ConnectionPool# 建立连接池pool = ConnectionPool(host="localhost", port=6379, db=0)# 获取连接r = redis.Redis(connection_pool=pool)# 设置键值对r.set("key", "value")# 获取键值对value = r.get("key")print(value)# 关闭连接r.close()
在上面的代码中,使用 redis.ConnectionPool()
方法创建连接池,然后使用 redis.Redis()
方法获取连接,指定 connection_pool
参数为连接池。其他操作与前面的示例相同。
使用连接池可以提高连接的效率,但需要注意连接池的大小,以免占用过多的资源。可以使用 max_connections
参数来指定连接池的大小。
Python 中连接 ElasticSearch
要在 Python 中连接 ElasticSearch 数据库,可以使用 elasticsearch 模块。以下是一个简单的示例:
首先,需要安装 elasticsearch 模块。可以使用 pip 命令进行安装:
pip install elasticsearch
然后,可以使用以下代码连接到 ElasticSearch 数据库:
from elasticsearch import Elasticsearch# 建立连接es = Elasticsearch(["localhost:9200"])# 创建索引es.indices.create(index="my_index")# 添加文档doc = {"title": "Elasticsearch Tutorial", "content": "This is a tutorial for Elasticsearch"}es.index(index="my_index", id=1, body=doc)# 搜索文档res = es.search(index="my_index", body={"query": {"match": {"content": "tutorial"}}})print(res)# 关闭连接es.close()
在上面的代码中,将 localhost:9200
替换为 ElasticSearch 服务器的地址和端口号。
接下来,使用 Elasticsearch()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用一个包含 ElasticSearch 服务器地址的列表。
然后,使用 es.indices.create()
方法创建索引,使用 es.index()
方法添加文档,使用 es.search()
方法搜索文档,最后使用 es.close()
方法关闭连接。
除了以上的连接方法外,还可以使用 ElasticSearch 的连接池来提高连接的效率。连接池可以在多个线程之间共享连接,从而减少连接的开销。以下是一个使用连接池的示例:
from elasticsearch import Elasticsearchfrom elasticsearch import ConnectionPool, ConnectionSelector# 创建连接池pool = ConnectionPool([{"host": "localhost", "port": 9200}], maxsize=10)# 创建连接选择器selector = ConnectionSelector([pool])# 建立连接es = Elasticsearch(connection_class=selector)# 创建索引es.indices.create(index="my_index")# 添加文档doc = {"title": "Elasticsearch Tutorial", "content": "This is a tutorial for Elasticsearch"}es.index(index="my_index", id=1, body=doc)# 搜索文档res = es.search(index="my_index", body={"query": {"match": {"content": "tutorial"}}})print(res)# 关闭连接es.close()
在上面的代码中,使用 elasticsearch.ConnectionPool()
方法创建连接池,指定 ElasticSearch 服务器的地址和端口号。然后,使用 elasticsearch.ConnectionSelector()
方法创建连接选择器,将连接池传递给选择器。最后,使用 Elasticsearch()
方法建立连接,指定 connection_class
参数为连接选择器。
使用连接池可以提高连接的效率,但需要注意连接池的大小,以免占用过多的资源。可以使用 maxsize
参数来指定连接池的大小。
Python 中连接 MongoDB
要在 Python 中连接 MongoDB 数据库,可以使用 pymongo 模块。以下是一个简单的示例:首先,需要安装 pymongo 模块。可以使用 pip 命令进行安装:
pip install pymongo
然后,可以使用以下代码连接到 MongoDB 数据库:
import pymongo# 建立连接client = pymongo.MongoClient("mongodb://localhost:27017/")# 创建数据库和集合db = client["my_database"]col = db["my_collection"]# 插入文档doc = {"name": "John", "age": 30}col.insert_one(doc)# 查询文档res = col.find({"name": "John"})for doc in res:print(doc)# 关闭连接client.close()
在上面的代码中,将 mongodb://localhost:27017/
替换为 MongoDB 服务器的地址和端口号。
接下来,使用 pymongo.MongoClient()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用 MongoDB 服务器的地址和端口号。
然后,使用 client["my_database"]
方法创建数据库,使用 db["my_collection"]
方法创建集合。可以将 my_database
和 my_collection
替换为要创建的数据库和集合的名称。
接下来,使用 col.insert_one()
方法插入文档,使用 col.find()
方法查询文档,最后使用 client.close()
方法关闭连接。
除了以上的连接方法外,还可以使用 MongoDB 的连接池来提高连接的效率。连接池可以在多个线程之间共享连接,从而减少连接的开销。以下是一个使用连接池的示例:
import pymongofrom pymongo import MongoClient, uri_parserfrom pymongo.pool import Pool, PooledConnectionclass ConnectionPool(Pool):def __init__(self, uri, *args, **kwargs):super().__init__(*args, **kwargs)self.uri = uriself.client = MongoClient(uri, connect=False)def create_connection(self):return PooledConnection(self.client)def get_uri(self):return self.uri# 建立连接池uri = "mongodb://localhost:27017/my_database"pool = ConnectionPool(uri, max_size=10)# 建立连接client = MongoClient(pool=pool)# 创建数据库和集合db = client.my_databasecol = db.my_collection# 插入文档doc = {"name": "John", "age": 30}col.insert_one(doc)# 查询文档res = col.find({"name": "John"})for doc in res:print(doc)# 关闭连接client.close()
在上面的代码中,使用 ConnectionPool
类继承自 pymongo.pool.Pool
类,重写了 create_connection()
方法和 get_uri()
方法。在 create_connection()
方法中,使用 PooledConnection
类创建连接。在 get_uri()
方法中,返回 MongoDB 服务器的地址和端口号。
然后,使用 ConnectionPool
类创建连接池,指定 MongoDB 服务器的地址和端口号。使用 max_size
参数来指定连接池的大小。
最后,使用 MongoClient(pool=pool)
方法建立连接,指定 pool
参数为连接池。使用 client.my_database
和 db.my_collection
方法创建数据库和集合。可以将 my_database
和 my_collection
替换为要创建的数据库和集合的名称。
Python 中连接 PostgreSQL
要在 Python 中连接 PostgreSQL 数据库,可以使用 psycopg2 模块。以下是一个简单的示例:首先,需要安装 psycopg2 模块。可以使用 pip 命令进行安装:
pip install psycopg2
然后,可以使用以下代码连接到 PostgreSQL 数据库:
import psycopg2# 建立连接conn = psycopg2.connect(host="localhost", port=5432, dbname="my_database", user="my_username", password="my_password")# 创建游标cur = conn.cursor()# 创建表cur.execute("CREATE TABLE my_table (id SERIAL PRIMARY KEY, name VARCHAR(50), age INTEGER)")# 插入数据cur.execute("INSERT INTO my_table (name, age) VALUES (%s, %s)", ("John", 30))# 查询数据cur.execute("SELECT * FROM my_table WHERE name = %s", ("John",))rows = cur.fetchall()for row in rows:print(row)# 提交事务conn.commit()# 关闭游标和连接cur.close()conn.close()
在上面的代码中,将 localhost
替换为 PostgreSQL 服务器的地址,将 5432
替换为 PostgreSQL 服务器的端口号,将 my_database
、my_username
和 my_password
替换为要连接的数据库、用户名和密码。
接下来,使用 psycopg2.connect()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用 PostgreSQL 服务器的地址、端口号、数据库、用户名和密码。
然后,使用 conn.cursor()
方法创建游标,使用 cur.execute()
方法执行 SQL 命令。在上面的示例中,使用 CREATE TABLE
命令创建表,使用 INSERT INTO
命令插入数据,使用 SELECT
命令查询数据。
最后,使用 conn.commit()
方法提交事务,使用 cur.close()
和 conn.close()
方法关闭游标和连接。
除了以上的连接方法外,还可以使用 SQLAlchemy 模块来连接 PostgreSQL 数据库。SQLAlchemy 是一个 Python 的 SQL 工具和 ORM(对象关系映射)框架,支持多种数据库,包括 PostgreSQL。以下是一个使用 SQLAlchemy 的示例:
from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker# 建立连接engine = create_engine("postgresql://my_username:my_password@localhost:5432/my_database")# 创建 SessionSession = sessionmaker(bind=engine)session = Session()# 定义模型Base = declarative_base()class MyTable(Base):__tablename__ = "my_table"id = Column(Integer, primary_key=True)name = Column(String(50))age = Column(Integer)# 创建表Base.metadata.create_all(engine)# 插入数据my_data = MyTable(name="John", age=30)session.add(my_data)session.commit()# 查询数据rows = session.query(MyTable).filter_by(name="John").all()for row in rows:print(row.id, row.name, row.age)# 关闭 Sessionsession.close()
在上面的代码中,将 my_username
和 my_password
替换为要连接的用户名和密码,将 localhost
替换为 PostgreSQL 服务器的地址,将 5432
替换为 PostgreSQL 服务器的端口号,将 my_database
替换为要连接的数据库。
接下来,使用 create_engine()
方法建立连接,该方法需要指定连接字符串。在连接字符串中,使用 PostgreSQL 服务器的地址、端口号、用户名、密码和数据库。
然后,使用 sessionmaker()
方法创建 Session,使用 Session()
方法创建一个 Session 对象。这里使用 SQLAlchemy 的 ORM 功能,定义一个模型 MyTable
,该模型对应一个名为 my_table
的表。使用 Base.metadata.create_all()
方法创建表。
接下来,使用 session.add()
方法插入数据,使用 session.query()
方法查询数据。在上面的示例中,使用 filter_by()
方法过滤数据,使用 all()
方法获取所有结果。
最后,使用 session.close()
方法关闭 Session。
使用 SQLAlchemy 连接 PostgreSQL 数据库可以提供更方便的 ORM 功能,并且可以支持更多的数据库。
Python 中连接 Oracle
要在 Python 中连接 Oracle 数据库,可以使用 cx_Oracle 模块。以下是一个简单的示例:首先,需要安装 cx_Oracle 模块。可以使用 pip 命令进行安装:
pip install cx_Oracle
然后,可以使用以下代码连接到 Oracle 数据库:
import cx_Oracle# 建立连接conn = cx_Oracle.connect("my_username/my_password@my_host:my_port/my_service_name")# 创建游标cur = conn.cursor()# 创建表cur.execute("CREATE TABLE my_table (id NUMBER(10), name VARCHAR2(50), age NUMBER(3))")# 插入数据cur.execute("INSERT INTO my_table (id, name, age) VALUES (:1, :2, :3)", (1, "John", 30))# 查询数据cur.execute("SELECT * FROM my_table WHERE name = :1", ("John",))rows = cur.fetchall()for row in rows:print(row)# 提交事务conn.commit()# 关闭游标和连接cur.close()conn.close()
在上面的代码中,将 my_username
、my_password
、my_host
、my_port
和 my_service_name
替换为要连接的用户名、密码、主机名、端口号和服务名。
接下来,使用 cx_Oracle.connect()
方法建立连接,该方法需要指定连接字符串。在连接字符串中,使用 Oracle 数据库的用户名、密码、主机名、端口号和服务名。
然后,使用 conn.cursor()
方法创建游标,使用 cur.execute()
方法执行 SQL 命令。在上面的示例中,使用 CREATE TABLE
命令创建表,使用 INSERT INTO
命令插入数据,使用 SELECT
命令查询数据。
最后,使用 conn.commit()
方法提交事务,使用 cur.close()
和 conn.close()
方法关闭游标和连接。
除了以上的连接方法外,还可以使用 SQLAlchemy 模块来连接 Oracle 数据库。SQLAlchemy 是一个 Python 的 SQL 工具和 ORM(对象关系映射)框架,支持多种数据库,包括 Oracle。以下是一个使用 SQLAlchemy 的示例:
from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker# 建立连接engine = create_engine("oracle+cx_oracle://my_username:my_password@my_host:my_port/my_service_name")# 创建 SessionSession = sessionmaker(bind=engine)session = Session()# 定义模型Base = declarative_base()class MyTable(Base):__tablename__ = "my_table"id = Column(Integer, primary_key=True)name = Column(String(50))age = Column(Integer)# 创建表Base.metadata.create_all(engine)# 插入数据my_data = MyTable(id=1, name="John", age=30)session.add(my_data)session.commit()# 查询数据rows = session.query(MyTable).filter_by(name="John").all()for row in rows:print(row.id, row.name, row.age)# 关闭 Sessionsession.close()
在上面的代码中,将 my_username
、my_password
、my_host
、my_port
和 my_service_name
替换为要连接的用户名、密码、主机名、端口号和服务名。
接下来,使用 create_engine()
方法建立连接,该方法需要指定连接字符串。在连接字符串中,使用 Oracle 数据库的用户名、密码、主机名、端口号和服务名。
然后,使用 sessionmaker()
方法创建 Session,使用 Session()
方法创建一个 Session 对象。这里使用 SQLAlchemy 的 ORM 功能,定义一个模型 MyTable
,该模型对应一个名为 my_table
的表。
使用 Base.metadata.create_all()
方法创建表。在上面的示例中,使用 add()
方法插入数据,使用 query()
方法查询数据。
最后,使用 session.close()
方法关闭 Session。
Python 中连接 RabbitMQ
要在 Python 中连接 RabbitMQ,可以使用 pika 模块。以下是一个简单的示例:首先,需要安装 pika 模块。可以使用 pip 命令进行安装:
pip install pika
然后,可以使用以下代码连接到 RabbitMQ:
import pika# 建立连接credentials = pika.PlainCredentials("my_username", "my_password")connection = pika.BlockingConnection(pika.ConnectionParameters("my_host", 5672, "/", credentials))channel = connection.channel()# 声明队列channel.queue_declare(queue="my_queue")# 发送消息channel.basic_publish(exchange="", routing_key="my_queue", body="Hello, RabbitMQ!")# 接收消息def callback(ch, method, properties, body):print("Received message:", body)channel.basic_consume(queue="my_queue", on_message_callback=callback, auto_ack=True)channel.start_consuming()# 关闭连接channel.close()connection.close()
在上面的代码中,将 my_username
、my_password
、my_host
替换为要连接的用户名、密码和主机名。
接下来,使用 pika.BlockingConnection()
方法建立连接,该方法需要指定连接参数。在连接参数中,使用 RabbitMQ 的主机名、端口号、虚拟主机名和凭证。
然后,使用 channel.queue_declare()
方法声明队列,使用 channel.basic_publish()
方法发送消息。
使用 channel.basic_consume()
方法接收消息,需要定义一个回调函数 callback()
,接收消息时会调用该函数。在上面的示例中,定义的回调函数将收到的消息打印出来。
最后,使用 channel.close()
和 connection.close()
方法关闭连接。
除了以上的连接方法外,还可以使用 kombu 模块来连接 RabbitMQ。kombu 是一个 Python 的消息传递库,支持多种消息传递协议,包括 RabbitMQ。以下是一个使用 kombu 的示例:
from kombu import Connection, Exchange, Queue# 建立连接conn = Connection("amqp://my_username:my_password@my_host:5672//")channel = conn.channel()# 定义 Exchange 和 Queueexchange = Exchange("my_exchange", type="direct")queue = Queue("my_queue", exchange, routing_key="my_queue")# 发送消息producer = conn.Producer(serializer="json")producer.publish({"message": "Hello, RabbitMQ!"}, exchange=exchange, routing_key="my_queue")# 接收消息def callback(body, message):print("Received message:", body)message.ack()with conn.Consumer(queue, callbacks=[callback]) as consumer:while True:conn.drain_events()# 关闭连接channel.close()conn.close()
在上面的代码中,将 my_username
、my_password
、my_host
替换为要连接的用户名、密码和主机名。
接下来,使用 Connection()
方法建立连接,该方法需要指定连接字符串。在连接字符串中,使用 RabbitMQ 的用户名、密码、主机名和端口号。
然后,使用 Exchange()
和 Queue()
方法定义 Exchange 和 Queue,使用 Producer()
方法发送消息。
使用 Consumer()
方法接收消息,需要定义一个回调函数 callback()
,接收到消息时会调用该函数。在上面的示例中,定义的回调函数将收到的消息打印出来,并使用 ack()
方法确认消息已接收。
最后,使用 channel.close()
和 conn.close()
方法关闭连接。
关键词:
-
最资讯丨Python 中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,R
在Python中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,RabbitMQ等数据库 中间件的方式
来源: -
环球精选!.NET、.NET Framework 和 .NET Core
NETFramework NETFramework是最早的 NET实现,只能在Windows上运行,支持ASP NETWebForms、MVC和WebAPI等技术
来源: 最资讯丨Python 中连接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,R
世界新动态:秒杀面试题!JS中this指向的理解和运用
环球精选!.NET、.NET Framework 和 .NET Core
在Linux中如何注销其他 SSH 用户
资讯推荐:补贴9万后12万买C6 博主揭雪铁龙套路玩的深!低配比高配还贵
1TB存储影像机皇!小米13 Ultra或5月发布:同步小米平板6/小米手环8
焦点速看:洛谷 P1015 回文数
世界滚动:曾称花40万买燃油车很悲催!智己CEO:智己LS7近一半车主来自BBA
世界实时:《你好李焕英》后二次合作:贾玲第二部导演作品有张小斐
全球看热讯:EntityFramworkCore7笔记
【天天时快讯】董明珠谈“35岁职场危机”:不理解 人们要到60岁才退休
宏任务&微处理
主龙骨图片_主龙骨
一次看过瘾!《流浪地球》系列两部电影下周连映:时长5小时
焦点热门:读Java性能权威指南(第2版)笔记14_垃圾回收A
环球热门:全球第15!小米13 Pro DXO音频140分:险胜iPhone 13 Pro Max
今日最新!有六百万人 沉迷在B站上看“抓小偷”
天天报道:不退休不会卖股票!董明珠:格力没实现6000亿营收目标 有遗憾
怎么利用异步设计提升系统性能?
【天天新要闻】500km续航纯电MPV!李想首曝网约车D1 Plus:项目被叫停太遗憾
全球观焦点:Go 面向对象
全球快播:Vue——Vue初始化【三】
吕钱浩:苹果2026年可能会推真全面屏iPhone 那个时候中兴已是第7代了
焦点快报!博主阿秋准备坐地铁游香港:晒证件自证是90后
环球快资讯:手机换号伤不起!当代人换手机号的成本有多高?
百事通!iPhone 17 Pro将是最完美iPhone!果粉还要等两年时间
苦是一种享受!董明珠回应仍做手机:格力一些部件必靠进口 国产质量不达标
冷水江市气象局发布大风蓝色预警【Ⅳ级/一般】
自称从清华退学考北大博主删除视频:此前收获50万点赞 快速涨粉
世界热议:PMP项目变更管理及变更流程总结
利用CSS使博客园图片自动居中,而文字保持居左
天天热文:量化交易基础 - 012 - 检验中的假设条件
全球新资讯:2999元国产显卡抢疯了 Steam游戏实测能玩 老黄旧将打造
当前快看:实拍成都6-7级大风来袭:狂风呼啸树折腰 行人雨伞秒被吹翻
邹磊委员:推进“风光水火储”多能互补综合能源供给体系建设
Log4j 配置
每日速递:flink入门-流处理
全球消息!汉诺塔问题——分而治之(引入递归,解决重复子问题)
世界球精选!Java基础入门-数组练习
国内已超越GPS 北斗卫星今年再发三颗星:下一代已在路上
世界观点:称根据身体来划分性别比较好 女星桥本爱被LGBT攻击
【独家】女生月薪两万辞职考研八次失败:次次铩羽而归
全球新资讯:第128篇:浏览器存储(cookie、webStorage、 IndexedDB)
世界简讯:关于使用python脚本将同级的其他目录下的所有文件根据年份移动到当脚本位置的年份目录
环球今热点:SSD比机械硬盘更容易坏?实测来了:跟想象中不一样
全球观天下!2月轿车销量排名:两“逸”同病相怜、秦汉一马平川
通讯!姚劲波代表:高学历干家政可能会越发普遍
《庆余年2》冲上热搜榜:网曝郭麒麟演的角色范思辙换人了
资讯:shiro-550反序列化漏洞分析
资讯:64.异常
世界热文:[新媒体运营]新媒体运营概述
9名初中生花18元点18串里脊庆生 网友看哭:回不去的年华
今日报丨金钱豹回拜游客 动物园回应:没人教、第一次见
世界今日报丨隅田川进口胶囊咖啡液8杯到手10.9元:更鲜更好喝
有赞一面:还有任务没执行,线程池被关闭怎么办?
全球快看点丨注解与反射
java基础二-面向对象的三大特性
全球最资讯丨A卡有能力跟RTX 4090正面刚 AMD:不做是因为太贵、功耗高
微头条丨深山红烛 照亮希望
环球新消息丨Redis 深度学习
环球快资讯:前端设计模式——策略模式
新消息丨MySQL学习笔记-SQL实践1
每日快报!安全性不行 Win7系统真的别用了 又一个游戏《堡垒之夜》放弃支持
每日快播:童年回来了!《灌篮高手》发布流川枫角色海报
每日报道:使用web client对 vcenter 进行补丁升级
有监督学习——梯度下降
全球百事通!聪明的燕姿
当前视点!Oracle数据库中没有scott账户的方法
今日热闻!光速破发?iPhone 14黄色版还未开售便降价600元
华硕发布ROG Strix Impact III鼠标:双手通用、可更换微动插槽
真香!重庆购买HUAWEI问界M7直补3万:起售仅25.98万
当前简讯:滴滴快车预付车费什么时候退款_滴滴快车预付车费什么意思
世界通讯!网络安全(中职组)-B模块:Web安全应用-2
今日播报!客服回应疯狂小杨哥带货翻车:有巡查、违规会处罚
怕了吗?长城公布“1000万悬赏计划”:严厉打击网络水军
【世界新要闻】四位计数器testbench的设计
世界滚动:chatgpt 集成飞书实践指南
自以为是 与 思考
天天通讯!伊朗外长:伊沙恢复外交关系将为两国和地区发展注入巨大动能
世界快讯:日系车掀起买一送一热潮:买皓影插混送飞度、买日产楼兰送轩逸
天天热资讯!50万以内最舒适二排 理想L7正式交付:31.98万起售
环球新资讯:10年分红1000多亿!董明珠鼓励员工“砸锅卖铁”买格力股票
剪刀石头布的算法
资讯推荐:全球最强!传音发布260W有线、110无线快充:8分钟充满
世界观热点:美国科学家改变人类科技、终极能源即将实现?真相来了!
世界快讯:《原子之心》更新:添加FOV设置、删除种族主义动画
Shell命令-常用操作2
【质因数分解算法详解】C/Java/Go/Python/JS/Dart/Swift/Rust等不同语言实现
今亮点!霸道女总裁加盟《碟中谍8》
天天播报:00后男生每天下班后卖烤肠解压 50元投资日赚200元:厌恶刷视频、打游戏
【时快讯】网络安全(中职组)-B模块:Web安全渗透测试
环球新消息丨K8S 性能优化-K8S Node 参数调优
环球微速讯:比进口价格便宜!海南三亚榴莲今年6月将大规模上市
当废物挺好?委员称年轻人想躺平更多是调侃 奋斗的是大多数
天天亮点!中国足彩网竞彩11日推荐:曼城取胜无悬念
焦点短讯!使用SSM+Shiro+Layui框架,基于RBAC3模型开发的权限管理系统
snort入侵检测基础概述
当前播报:amusements
环球热议:6月上映!《变形金刚7》角色海报发布:擎天柱、猩猩队长亮相
【速看料】降价潮席卷全国 车企尽数参战是为何?乘联会解答:国六B要来了