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

品牌网站建设h5/搜索引擎的设计与实现

品牌网站建设h5,搜索引擎的设计与实现,万江东莞网站建设,购物系统顺序图DB-API模块属性:apilevel 字符串,表示本模块兼容的 API 版本号threadsafety 线程安全级别paramstyle SQL 语句参数风格connect() 连接数据库的函数,返回一个连接对象connect() 函数的参数包含 (user,password,host,database,dsn)…

DB-API

模块属性:

apilevel    字符串,表示本模块兼容的 API 版本号

threadsafety    线程安全级别

paramstyle    SQL 语句参数风格

connect()    连接数据库的函数,返回一个连接对象

connect() 函数的参数包含 (user,password,host,database,dsn),但并不是所有模块都完全按照这个规范实现。例如

MySQLdb.connect(hos='dbserver',db='inv',user='smith')

PgSQL.connect(database='sales')

sqlite3.connect('marketing/test')

模块异常:

Warning    警告异常基类

Error    错误异常基类

InterfaceError    数据库接口错误

DatabaseError    数据库错误

DataError    数据错误

OperationalError    命令执行错误

IntegrityError    数据完整性错误

InternalError    数据库内部错误

ProgrammingError    SQL 执行失败

NotSupportedError    数据库不支持该特性

连接对象的方法:

close()    关闭本连接

commit()    提交事务

rollback()    取消事务

cursor()    创建并返回一个游标或类游标对象

游标对象的属性:

arraysize    fetchmany()方法的默认参数

connection    创建此游标的连接对象(可选)

description    返回游标活动状态(包含7个元素的元组):(name, type_code, display_size, internal_size, precision, scale, null_ok)只有 name 和 type_cose 是必需的

lastrowid    最近更新过的行 id,若数据库不支持行 id,返回 None

rowcount    最近一次 execute() 创建或影响的行数

callproc(func[,args])    调用一个存储过程

close()    关闭本游标对象

execute(op[,args])    执行一个数据库命令

executemany(op,args)    类似 execute() 和 map() 的结合,为给定的每一个参数准备并执行一个数据库命令

fetchone()    取得结果集的下一行

fetchmany([size=cursor.arraysize])    取得结果集的下 arraysize 行

fetchall()    取得结果集剩下的所有行

__iter__()    创建一个可迭代对象(可选)

messages    游标执行后数据库返回的信息元组(可选)

next()    获取结果集的下一行(如果支持迭代的话)

nextset()    移到下一个结果集(如果支持的话)

rownumber    当前结果集中游标所在行的索引(起始行号为 0)

setinputsizes(sizes)    设置输入最大值(必须有,但具体实现是可选的)

setoutputsizes(sizes[,col])    设置大列 fetch 的最大缓冲区大小

数据类型与构造器:

Date(yr,mo,dy)    日期

Time(hr,min,sec)    时间

Timestamp(yr,mo,dy,hr,min,sec)    时间戳

DateFromTicks(ticks)    自 1970-01-01 00:00:01 utc 以来的 ticks 秒数得到的日期

TimeFromTicks(ticks)    同上

TimestampFromTicks(ticks)    同上

Binary(string)    二进制(长)字符串

STRING    字符串列,如 VARCHAR

BINARY    二进制长列,如 RAW、BLOB

NUMBER    数字列

DATETIME    日期时间列

ROWID    行号

sqlite3 示例:

>>>

import sqlite3

>>>

cxn

=

sqlite3.connect(

'

sqlite_test/test

'

)

>>>

cur

=

cxn.cursor()

>>>

cur.execute(

'

CREATE TABLE users(login VARCHAR(8),

userid INTEGER)

'

)

>>>

cur.execute(

'

INSERT INTO users VALUES("john", 100)

'

)

>>>

cur.execute(

'

INSERT INTO users VALUES("jane", 110)

'

)

>>>

cur.execute(

'

SELECT * FROM users

'

)

>>>

for

eachUser

in

cur.fetchall():

print(eachUser)

(

'

john

'

,

100

)

(

'

jane

'

,

110

)

>>>

cur.execute(

'

DROP TABLE users

'

)

<

sqlite3.Cursor

object

at

0x3d4320

>

>>>

cur.close()

>>>

cxn.commit()

>>>

cxn.close()

ORM - SQLAlchemy

SQLAlchemy 用于操作数据库的三个主要对象是 Table 表对象、engine 数据库引擎对象 和 Session 会话对象。这三个对象分别对应了 ORM 系统的三层(数据、连接、事务)。Table 和Session 对象都需要和 engine 绑定后才能用,定义 Table 和绑定过程有多种实现方式,下面仅就使用类定义直接映射表的方式做一个示例  Users-(id,name):

这里导入了一些示例中实际用不上的类,主要是为了展示 sqlalchemy 模块的几项基本内容。自定义的表 Users 从一个 Base 类继承:

from sqlalchemy import Table,Column,Integer,String,MetaData,ForeignKey,create_engine

from sqlalchemy.ext.declarative import declarative_base

dsn

=

'

sqlite:///:memory:

'

sample

=

((

100

,

'

Ada

'

),(

101

,

'

Mario

'

))

Base

=

declarative_base()

class

Users(Base):

__tablename__

=

'

users

'

user_name

=

Column(String(NAMELEN))

user_id

=

Column(Integer, primary_key

=

True)

下面是具体的 create、insert、update、delete、dump、drop 操作

>>>

eng

=

create_engine(dsn)

>>>

eng.connect()

<

sqlalchemy.engine.

base

.Connection

object

at

0x000000000BC304E0

>

>>>

Session

=

orm.sessionmaker(bind

=

eng)

>>>

ses

=

Session()

>>>

users

=

Users.__table__

>>>

users.metadata.bind

=

eng

>>>

users.create()

>>>

ses.add_all(Users(user_id

=

uid,user_name

=

name)

for

uid,name

in

sample)

>>>

ses.commit()

>>>

selected

=

ses.query(Users).filter_by(user_id

=

100

).all()

>>>

for

user

in

selected:

user.user_name

=

'

Maria

'

>>>

ses.commit()

>>>

selected

=

ses.query(Users).filter_by(user_name

=

'

Mario

'

).all()

>>>

for

user

in

selected:

ses.delete(user)

>>>

ses.commit()

>>>

selected

=

ses.query(Users).all()

>>>

for

user

in

selected:

print(

'

%s

'

%

(user.user_id,user.user_name))

<

100

>

Maria

>>>

ses.commit()

>>>

users.drop(checkfirst

=

True)

>>>

ses.connection().close()

这里在调用 eng.connect() 的时候并没有保存连接对象的引用,而是在最后通过 ses.connection() 重新获取

Table 对象也没有直接用构造器创建,而是在定义了 Users 类后通过其父类的 __table__ 属性来引用

MetaData 是实际包含表的对象,Table 的构造器需要两个参数,就是字符串的 'table_name' 和 一个 MetaData——Table('myTable',metadata,...)

Table 构造器只会创建唯一一个实例,使用相同参数重复调用的结果也总是返回最初的那一个实例

Matadata 的 bind 属性可以动态绑定。因此一般的做法都是先以非绑定的状态开始,随后在有了可用的 engine 对象后再实行绑定

更多内容请使用 help() 函数获取

http://www.lbrq.cn/news/1377487.html

相关文章:

  • 推销产品什么网站好/郑州百度网站快速优化
  • 代理注册公司网站模版/搜索引擎优化的方法和技巧
  • 三门峡网站建设/杭州云优化信息技术有限公司
  • 郑州 网站报价/软文文章
  • 滨海县建设局网站/搜索引擎优化的作用是什么
  • 建设英文网站的申请怎么写/长春百度seo公司
  • 郴州宜章疫情最新情况/谷歌seo是指什么意思
  • 无锡企业制作网站/企业查询软件
  • 帮客户做网站挣钱吗/信息流优化师培训机构
  • 网站开发感受/seo是怎么优化上去
  • 域名同时做邮箱和网站/发广告去哪个平台
  • 嘉兴专业做网站/优化推广服务
  • 广西做网站公司有哪些/百度关键词怎么设置
  • 关于 建设 旅游网站 建议/适合奖励自己的网站免费
  • 扬州鼎盛开发建设有限公司网站/个人如何在百度做广告
  • 宣传片拍摄技巧/如何优化网络连接
  • 做网站怎么兼职/竞价推广账户托管费用
  • 做网站的公司没有技术/百度指数查询工具
  • 网站管理系统哪个好/杭州seo网站优化
  • 网站运行费用/seo优化有哪些
  • 济南建设网站 概况/seo课堂
  • 营销型网站优化/程序员培训机构哪家好
  • 广西新增疫情最新消息今天封城了/china东莞seo
  • 手机网站制作公司/优质网站
  • 襄樊网站开发/怎么做推广让别人主动加我
  • 定做网站多少钱/环球资源外贸平台免费
  • 专做宝宝的用品网站/seo综合查询软件排名
  • dede 网站图标/长春网站seo哪家好
  • 老公做赌博网站推广/推广平台的方式有哪些
  • 网站建设专业/福州seo公司排名
  • Highly Compressed Tokenizer Can Generate Without Training
  • Git基础命令大全
  • 【科普】贝叶斯神经网络与分形神经网络
  • SpringBoot实战:高效Web开发
  • OmniParser:提升工作效率的视觉界面解析工具
  • 如何将word里面的英文引号改为中文引号?如何将Times New Roman字体的符号改为宋体?