python réptil
Este artigo leva cerca de dez minutos para assistir
Python como o presente, a linguagem mais popular para rastreamento e análise de rede de dados em massa, python melhor.
interface de banco de dados padrão do Python para o Python DB-API, Python DB-API fornece um aplicativo de banco de dados interface de programação para desenvolvedores. Aqui eu principalmente introduzir python operação MySQL, executar instruções SQL, obter conjuntos de resultados, percorrer o conjunto de resultados, procurando obter um campo, obter o nome do campo de tabela, inserir a imagem em uma variedade de banco de dados de código de exemplo, e executar transações e outros detalhes.
1, banco de dados conhecido
# 连接数据库
from sqlalchemy import create_engine
engine = create_engine(
"mysql+pymysql://root:1990@localhost:3306/test?charset=utf8",
echo=True)
# 创建数据表方法一
from sqlalchemy import Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class mytable(Base):
# 表名
__tablename__ = 'mytable'
# 字段,属性
id = Column(Integer, primary_key=True)
name = Column(String(50), unique=True)
age = Column(Integer)
birth = Column(DateTime)
class_name = Column(String(50))
Base.metadata.create_all(engine)
# 创建数据表方法二
from sqlalchemy import Column, MetaData, ForeignKey, Table
from sqlalchemy.dialects.mysql import (INTEGER, CHAR)
meta = MetaData()
myclass = Table('myclass', meta,
Column('id', INTEGER, primary_key=True),
Column('name', CHAR(50), ForeignKey(mytable.name)),
Column('class_name', CHAR(50))
)
myclass.create(bind=engine)
# 删除数据表
#myclass.drop(bind=engine)
#Base.metadata.drop_all(engine)
###########
get_data = session.query(mytable).filter_by(id=1).first()
get_data.class_name = '三年级三班'
session.commit()
session.close()
# 查询myclass全部数据
get_data = session.query(myclass).all()
for i in get_data:
print('我的名字是:' + i.name)
print('我的班级是:' + i.class_name)
session.close()
#################################
get_data = session.query(myclass.name, myclass.class_name).all()
for i in get_data:
print('我的名字是:' + i.name)
print('我的班级是:' + i.class_name)
session.close()
#################################
# 根据条件查询某条数据
# 筛选方法一:
# get_data = session.query(myclass).filter(myclass.id==1).all()
# 筛选方法二:
get_data = session.query(myclass).filter_by(id=1).all()
print('数据类型是:' + str(type(get_data)))
for i in get_data:
print('我的名字是:' + i.name)
print('我的班级是:' + i.class_name)
#################################
get_data = session.query(myclass).filter_by(id=1).first()
print('数据类型是:' + str(type(get_data)))
print('我的名字是:' + get_data.name)
print('我的班级是:' + get_data.class_name)
#################################
get_data = session.query(mytable).filter(mytable.id >= 2,
mytable.class_name == '三年级二班').first()
print('数据类型是:' + str(type(get_data)))
print('我的名字是:' + get_data.name)
print('我的班级是:' + get_data.class_name)
#################################
# 内连接
get_data = session.query(mytable).join(myclass).filter(mytable.class_name == '三年级二班').all()
print('数据类型是:' + str(type(get_data)))
for i in get_data:
print('我的名字是:' + i.name)
print('我的班级是:' + i.class_name)
# 外连接
get_data = session.query(mytable).outerjoin(
myclass).filter(mytable.class_name == '三年级二班').all()
#################################
sql = 'select * from mytable '
session.execute(sql)
# 如果涉及更新,添加数据,需要session.commit()
session.commit()
2, ligado a um banco de dados local
import pymongo
# 创建对象,连接本地数据库。
# 方法一:
client = pymongo.MongoClient()
# 方法二:
client = pymongo.MongoClient('localhost', 27017)
# 方法三:
client = MongoClient('mongodb://localhost:27017/')
# 连接DB数据库
db = client['DB']
# 连接集合user,集合类似关系数据库的数据表
# 如果集合不存在,会新建集合user
user_collection = db.user
# 设置文档格式(文档即我们常说的数据)
3, a autenticação do utilizador
import pymongo
# 用户验证方法一
client = pymongo.MongoClient()
db_auth = client.admin
db_auth.authenticate(username, password)
# 连接DB数据库
db = client['DB']
# 用户验证方法二
client = MongoClient('mongodb://username:password@localhost:27017/')
# 连接DB数据库
db = client['DB']
4, leitura banco de dados e gravação
import pymongo
import datetime
import re
# 创建对象
client = pymongo.MongoClient()
# 连接DB数据库
db = client['DB']
# 连接集合user,集合类似关系数据库的数据表
# 如果集合不存在,会新建集合user
user_collection = db.user
# 设置文档格式(文档即我们常说的数据)
user_info = {
"_id": 100,
"author": "小黄",
"text": "Python爬虫开发",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()}
# 使用insert_one单条添加文档,inserted_id获取写入后id
# 添加文档时,如果文档尚未包含"_id"键,则会自动添加"_id"。 "_id"的值在集合中必须是唯一。
# inserted_id是获取添加后的id,若不需要可去掉。
user_id = user_collection.insert_one(user_info).inserted_id
print ("user id is ", user_id)
#批量添加
user_infos = [{
"_id": 101,
"author": "小黄",
"text": "Python爬虫开发",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()},
{
"_id": 102,
"author": "小黄_A",
"text": "Python爬虫开发_A",
"tags": {"db":"Mongodb", "lan":"Python", "modle":"Pymongo"},
"date": datetime.datetime.utcnow()},
]
# inserted_ids是获取添加后的id,若不需要可直接去掉。
user_id = user_collection.insert_many(user_infos).inserted_ids
print ("user id is ", user_id)