归档

亲测资源

SQLite数据库:轻量级存储视频的首选 (sqlite数据库 视频)

随着视频技术的迅速发展以及移动互联网的不断普及,越来越多的人开始使用手机、平板等移动设备观看视频,而这样的设备又往往由于存储空间有限,需要一种轻量级的存储方式。在这类需求下,SQLite数据库成为了存储视频的首选。

1. SQLite数据库的简介

在介绍SQLite数据库在存储视频中的应用之前,我们需要先了解一下SQLite数据库的基本概念。SQLite是一种轻量级的关系型数据库,其数据库引擎实现在一个相对小的C库中,不需要与独立的服务器进行交互,可直接嵌入到应用程序中使用。因此,SQLite具有占用空间小、性能高、易于维护等诸多优点,特别适用于嵌入式系统或移动设备等有限空间的环境下。

2. SQLite数据库在存储视频中的应用

在移动设备中,存储空间通常比较有限,而且视频文件体积较大,因此传统的视频存储方式(如本地存储、储存在云端)不仅占用存储空间,同时还会影响用户观看视频的体验。相比之下,SQLlite数据库具有较小的占用空间,可以在存储大量视频的同时,减少占用存储空间的负担,提高存储效率。

另外,SQLite数据库支持多种数据类型(如BLOB、TEXT、INTEGER等),可实现对视频、图片、音频等多种格式的存储和操作。同时,SQLite也支持事务处理和数据备份等功能,保证数据的安全性和完整性,给用户提供更好的保障。

3. SQLite数据库在视频应用中的实践

实践证明,SQLite数据库已经被广泛应用于视频应用中。例如,在一些流媒体应用中,采用SQLite数据库存储视频信息和用户数据,便于实现多平台共享,同时可减少服务器成本和网络流量。又如,一些观看视频的应用,在使用SQLite数据库储存视频时,结合缓存、网络传输技术等技术手段,提高了用户观看视频的体验,降低了卡顿等问题。

SQLite数据库是一种轻量级的存储视频的首选。在实际的应用中,SQLite数据库不仅能够提高存储效率,保证数据完整性,还能够实现多种格式的存储和操作。对于移动设备和服务器开发人员,选择SQLite数据库作为视频存储方式,是一种明智而可行的选择。

相关问题拓展阅读:

后端编程Python3-数据库编程

对大多数软件开发者而言,术语数据库通常是指RDBMS(关系数据库管理系统), 这些系统使用表格(类似于电子表格的网格),其中行表示记录,列表示记录的字段。表格及其中存放的数据是使用SQL (结构化査询语言)编写的语句来创建并操纵的。Python提供了用于操纵SQL数据库的API(应用程序接口),通常与作为标准的SQLite 3数据库一起发布。

另一种数据库是DBM (数据库管理器),其中存放任意数量的键-值项。Python 的标准库提供了几种DBM的接口,包括某些特定于UNIX平台的。DBM的工作方式 与Python中的字典类似,区别在于DBM通常存放于磁盘上而不是内存中,并且其键与值总是bytes对象,并可能受到长度限制。本章之一节中讲解的shelve模块提供了方便的DBM接口,允许我们使用字符串作为键,使用任意(picklable)对象作为值。

如果可用的 DBM 与 SQLite 数据库不够充分,Python Package Index, pypi.python.org/pypi中提供了大量数据库相关的包,包括bsddb DBM (“Berkeley DB”),对象-关系映射器,比如SQLAlchemy (www.sqlalchemy.org),以及流行的客户端/服务器数据的接口,比如 DB2、Informix、Ingres、MySQL、ODBC 以及 PostgreSQL。

本章中,我们将实现某程序的两个版本,该程序用于维护一个DVD列表,并追踪每个DVD的标题、发行年份、时间长度以及发行者。该程序的之一版使用DBM (通过shelve模块)存放其数据,第二版则使用SQLite数据库。两个程序都可以加载与保存简单的XML格式,这使得从某个程序导出DVD数据并将其导入到其他程序成为可能。与DBM版相比,基于SQL的程序提供了更多一些的功能,并且其数据设计也稍干净一些。

12.1 DBM数据库

shelve模块为DBM提供了一个wrapper,借助于此,我们在与DBM交互时,可以将其看做一个字典,这里是假定我们只使用字符串键与picklable值,实际处理时, shelve模块会将键与值转换为bytes对象(或者反过来)。

由于shelve模块使用的是底层的DBM,因此,如果其他计算机上没有同样的DBM,那么在某台计算机上保存的DBM文件在其他机器上无法读取是可能的。为解决这一问题,常见的解决方案是对那些必须在机器之间可传输的文件提供XML导入与导出功能,这也是我们在本节的DVD程序dvds-dbm.py中所做的。

对键,我们使用DVD的标题;对值,则使用元组,其中存放发行者、发行年份以及时间。借助于shelve模块,我们不需要进行任何数据转换,并可以把DBM对象当做一个字典进行处理。

程序在结构上类似于我们前面看到的那种菜单驱动型的程序,因此,这里主要展示的是与DBM程序设计相关的那部分。下面给出的是程序main()函数中的一部分, 忽略了其中菜单处理的部分代码。

db = None

try:

db = shelve.open(filename, protocol=pickle.HIGHEST_PROTOCOL)

finally:

if db is not None:

db.dose()

这里我们已打开(如果不存在就创建)指定的DBM文件,以便于对其进行读写操作。每一项的值使用指定的pickle协议保存为一个pickle,现有的项可以被读取, 即便是使用更底层的协议保存的,因为Python可以计算出用于读取pickle的正确协议。最后,DBM被关闭——其作用是清除DBM的内部缓存,并确保磁盘文件可以反映出已作的任何改变,此外,文件也需要关闭。

该程序提供了用于添加、编辑、列出、移除、导入、导出DVD数据的相应选项。除添加外,我们将忽略大部分用户接口代码,同样是因为已经在其他上下文中进行了展示。

def add_dvd(db):

title = Console.get_string(“Title”, “title”)

if not title:

return

director = Console.get_string(“Director”, “director”)

if not director:

return

year = Console.get_integer(“Year”, “year”,minimum=1896,

maximum=datetime,date.today().year)

duration = Console.get_integer(“Duration (minutes)”, “minutes“, minimum=0, maximum=60*48)

db = (director, year, duration) </p> <p><p> db.sync() </p> <p> 像程序菜单调用的所有函数一样,这一函数也以DBM对象(db)作为其唯一参数。该函数的大部分工作都是获取DVD的详细资料,在倒数第二行,我们将键-值项存储在DBM文件中,DVD的标题作为键,发行者、年份以及时间(由shelve模块pickled在一起)作为值。 </p> <p> 为与Python通常的一致性同步,DBM提供了与字典一样的API,因此,除了 shelve.open() 函数(前面已展示)与shelve.Shelf.sync()方法(该方法用于清除shelve的内部缓存,并对磁盘上文件的数据与所做的改变进行同步——这里就是添加一个新项),我们不需要学习任何新语法。 </p> <p> def edit_dvd(db): </p> <p> old_title = find_dvd(db, “edit”) </p> <p> if old_title is None: </p> <p> return </p> <p> title = Console.get.string(“Title”, “title”, old_title) </p> <p> if not title: </p> <p> return </p> <p> director, year, duration = db </p> <p><p> … </p> <p> db<title>= (director, year, duration) </p> <p><p> if title != old_title: </p> <p> del db </p> <p><p> db.sync() </p> <p> 为对某个DVD进行编辑,用户必须首先选择要操作的DVD,也就是获取DVD 的标题,因为标题用作键,值则用于存放其他相关数据。由于必要的功能在其他场合 (比如移除DVD)也需要使用,因此我们将其实现在一个单独的find_dvd()函数中,稍后将査看该函数。如果找到了该DVD,我们就获取用户所做的改变,并使用现有值作为默认值,以便提高交互的速度。(对于这一函数,我们忽略了大部分用户接口代码, 因为其与添加DVD时几乎是相同的。)最后,我们保存数据,就像添加时所做的一样。如果标题未作改变,就重写相关联的值;如果标题已改变,就创建一个新的键-值对, 并且需要删除原始项。 </p> <p> def find_dvd(db, message): </p> <p> message = “(Start of) title to ” + message </p> <p> while True: </p> <p> matches = </p> <p> start = Console.get_string(message, “title”) </p> <p> if not start: </p> <p> return None </p> <p> for title in db: </p> <p> if title.lower().startswith(start.lower()): </p> <p> matches.append(title) </p> <p> if len(matches) == 0: </p> <p> print(“There are no dvds starting with”, start) </p> <p> continue </p> <p> elif len(matches) == 1: </p> <p> return matches </p> <p><p> elif len(matches) > DISPLAY_LIMIT: </p> <p> print(“Too many dvds start with {0}; try entering more of the title”.format(start) </p> <p> continue </p> <p> else: </p> <p> matches = sorted(matches, key=str.lower) </p> <p> for i, match in enumerate(matches): </p> <p> print(“{0}: {1}”.format(i+1, match)) </p> <p> which = Console.get_integer(“Number (or 0 to cancel)”, </p> <p> “number”, minimum=1, maximum=len(matches)) </p> <p> return matches if which != 0 else None </p> <p><p> 为尽可能快而容易地发现某个DVD,我们需要用户只输入其标题的一个或头几个字符。在具备了标题的起始字符后,我们在DBM中迭代并创建一个匹配列表。如果只有一个匹配项,就返回该项;如果有几个匹配项(但少于DISPLAY_LIMIT, 一个在程序中其他地方设置的整数),就以大小写不敏感的顺序展示所有这些匹配项,并为每一项设置一个编号,以便用户可以只输入编号就可以选择某个标题。(Console.get_integer()函数可以接受0,即便最小值大于0,以便0可以用作一个删除值。通过使用参数allow_zero=False, 可以禁止这种行为。我们不能使用Enter键,也就是说,没有什么意味着取消,因为什么也不输入意味着接受默认值。) </p> <p> def list_dvds(db): </p> <p> start =”” </p> <p> if len(db)> DISPLAY.LIMIT: </p> <p> start = Console.get_string(“List those starting with ”, “start”) </p> <p><p> print() </p> <p> for title in sorted(db, key=str.lower): </p> <p> if not start or title.Iower().startswith(start.lower()): </p> <p> director, year, duration = db<title> </p> <p><p> print(“{title} ({year}) {duration} minute{0}, by ” </p> <p> “{director}”.format(Util.s(duration),**locals())) </p> <p> 列出所有DVD (或者那些标题以某个子字符串引导)就是对DBM的所有项进行迭代。 </p> <p> Util.s()函数就是简单的s = lambda x: “” if x == 1 else “s”,因此,如果时间长度不是1分钟,就返回”s”。 </p> <p> def remove_dvd(db): </p> <p> title = find_dvd(db, “remove”) </p> <p> if title is None: </p> <p> return </p> <p> ans = Console.get_bool(“Remove {0}?”.format(title), “no”) </p> <p> if ans: </p> <p> del db<title> </p> <p><p> db.sync() </p> <p> 要移除一个DVD,首先需要找到用户要移除的DVD,并请求确认,获取后从DBM中删除该项即可。 </p> <p> 到这里,我们展示了如何使用shelve模块打开(或创建)一个DBM文件,以及如何向其中添加项、编辑项、对其项进行迭代以及移除某个项。 </p> <p> 遗憾的是,在我们的数据设计中存在一个瑕疵。发行者名称是重复的,这很容易导致不一致性,比如,发行者Danny DeVito可能被输入为”Danny De Vito”,用于 一个电影;也可以输入为“Danny deVito”,用于另一个。为解决这一问题,可以使用两个DBM文件,主DVD文件使用标题键与(年份,时间长度,发行者ID)值; 发行者文件使用发行者ID (整数)键与发行者名称值。下一节展示的SQL数据库 版程序将避免这一瑕疵,这是通过使用两个表格实现的,一个用于DVD,另一个用于发行者。 </p> <p> 12.2 SQL数据库 </p> <p> 大多数流行的SQL数据库的接口在第三方模块中是可用的,Python带有sqlite3 模块(以及SQLite 3数据库),因此,在Python中,可以直接开始数据库程序设计。SQLite是一个轻量级的SQL数据库,缺少很多诸如PostgreSQL这种数据库的功能, 但非常便于构造原型系统,并且在很多情况下也是够用的。 </p> <p> 为使后台数据库之间的切换尽可能容易,PEP 249 (Python Database API Specification v2.0)提供了称为DB-API 2.0的API规范。数据库接口应该遵循这一规范,比如sqlite3模块就遵循这一规范,但不是所有第三方模块都遵循。API规范中指定了两种主要的对象,即连接对象与游标对象。表12-1与表12-2中分别列出了这两种对象必须支持的API。在sqlite3模块中,除DB-API 2.0规范必需的之外,其连接对象与游标对象都提供了很多附加的属性与方法。 </p> <p> DVD程序的SQL版本为dvds.sql.py,该程序将发行者与DVD数据分开存储,以 避免重复,并提供一个新菜单,以供用户列出发行者。该程序使用的两个表格在图12-1 </p> </p> <p> def connect(filename): </p> <p> create= not os.path.exists(filename) </p> <p> db = sqlite3.connect(filename) </p> <p> if create: </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“CREATE TABLE directors (” </p> <p> “id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, ” </p> <p> “name TEXT UNIQUE NOT NULL)”) </p> <p> cursor.execute(“CREATE TABLE dvds (” </p> <p> “id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, ” </p> <p> “title TEXT NOT NULL, ” </p> <p> “year INTEGER NOT NULL,” </p> <p> “duration INTEGER NOT NULL, ” </p> <p> “director_id INTEGER NOT NULL, ” </p> <p> “FOREIGN KEY (director_id) REFERENCES directors)”) </p> <p> db.commit() </p> <p> return db </p> <p> sqlite3.connect()函数会返回一个数据库对象,并打开其指定的数据库文件。如果该文件不存在,就创建一个空的数据库文件。鉴于此,在调用sqlite3.connect()之前,我们要注意数据库是否是准备从头开始创建,如果是,就必须创建该程序要使用的表格。所有査询都是通过一个数据库游标完成的,可以从数据库对象的cursor()方法获取。 </p> <p> 注意,两个表格都是使用一个ID字段创建的,ID字段有一个AUTOINCREMENT 约束——这意味着SQLite会自动为ID字段赋予唯一性的数值,因此,在插入新记录时,我们可以将这些字段留给SQLite处理。 </p> <p> SQLite支持有限的数据类型——实际上就是布尔型、数值型与字符串——但使用数据’‘适配器”可以对其进行扩展,或者是扩展到预定义的数据类型(比如那些用于日期与datetimes的类型),或者是用于表示任意数据类型的自定义类型。DVD程序并不需要这一功能,如果需要,sqlite3模块的文档提供了很多详细解释。我们使用的外部键语法可能与用于其他数据库的语法不同,并且在任何情况下,只是记录我们的意图,因为SQLite不像很多其他数据库那样需要强制关系完整性,sqlite3另一点与众不同的地方在于其默认行为是支持隐式的事务处理,因此,没有提供显式的“开始事务” 方法。 </p> <p> def add_dvd(db): </p> <p> title = Console.get_string(“Title”, “title”) </p> <p> if not title: </p> <p> return </p> <p> director = Console.get_string(“Director”, “director”) </p> <p> if not director: </p> <p> return </p> <p> year = Console.get_integer(“Year”, “year”, minimum=1896, </p> <p> maximum=datetime.date.today().year) </p> <p> duration = Console.get_integer(“Duration (minutes)”, “minutes”, </p> <p> minimum=0,maximum=60*48) </p> <p> director_id = get_and_set_director(db, director) </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“INSERT INTO dvds ” </p> <p> “(title, year, duration, director_id)” </p> <p> “VALUES (?, ?, ?, ?)”, </p> <p> (title, year, duration, director_id)) </p> <p> db.commit() </p> <p> 这一函数的开始代码与dvds-dbm.py程序中的对应函数一样,但在完成数据的收集后,与原来的函数有很大的差别。用户输入的发行者可能在也可能不在directors表格中,因此,我们有一个get_and_set_director()函数,在数据库中尚无某个发行者时, 该函数就将其插入到其中,无论哪种情况都返回就绪的发行者ID,以便在需要的时候插入到dvds表。在所有数据都可用后,我们执行一条SQL INSERT语句。我们不需要指定记录ID,因为SQLite会自动为我们提供。 </p> <p> 在査询中,我们使用问号(?)作为占位符,每个?都由包含SQL语句的字符串后面的序列中的值替代。命名的占位符也可以使用,后面在编辑记录时我们将看到。尽管避免使用占位符(而只是简单地使用嵌入到其中的数据来格式化SQL字符串)也是可能的,我们建议总是使用占位符,并将数据项正确编码与转义的工作留给数据库模块来完成。使用占位符的另一个好处是可以提高安全性,因为这可以防止任意的SQL 被恶意地插入到一个査询中。 </p> <p> def get_and_set_director(db, director): </p> <p> director_id = get_director_id(db, director) </p> <p> if directorjd is not None: </p> <p> return director_id </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“lNSERT INTO directors (name) VALUES (?)”,(director,)) </p> <p> db.commit() </p> <p> return get_director_id(db, director) </p> <p> 这一函数返回给定发行者的ID,并在必要的时候插入新的发行者记录。如果某个记录入,我们首先尝试使用get_director_id()函数取回其ID。 </p> <p> def get_director_id(db, director): </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“SELECT id FROM directors WHERE name=?”,(director,)) </p> <p> fields = cursor.fetchone() </p> <p> return fields if fields is not None else None </p> <p><p> get_director_id()函数返回给定发行者的ID,如果数据库中没有指定的发行者,就返回None。我们使用fetchone()方法,因为或者有一个匹配的记录,或者没有。(我们知道,不会有重复的发行者,因为directors表格的名称字段有一个UNIQUE约束,在任何情况下,在添加一个新的发行者之前,我们总是先检査其是否存在。)这种取回方法总是返回一个字段序列(如果没有更多的记录,就返回None)。即便如此,这里我们只是请求返回一个单独的字段。 </p> <p> def edit_dvd(db): </p> <p> title, identity = find_dvd(db, “edit”) </p> <p> if title is None: </p> <p> return </p> <p> title = Console.get_string(“Title”,”title”, title) </p> <p> if not title: </p> <p> return </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“SELECT dvds.year, dvds.duration, directors.name” </p> <p> “FROM dvds, directors ” </p> <p> “WHERE dvds.director_id = directors.id AND ” </p> <p> “dvds.id=:id”, dict(id=identity)) </p> <p> year, duration, director = cursor.fetchone() </p> <p> director = Console.get_string(“Director”, “director”, director) </p> <p> if not director: </p> <p> return </p> <p> year = Console,get_integer(“Year”,”year”, year, 1896,datetime.date.today().year) </p> <p> duration = Console.get_integer(“Duration (minutes)”, “minutes”, </p> <p> duration, minimum=0, maximum=60*48) </p> <p> director_id = get_and_set_director(db, director) </p> <p> cursor.execute(“UPDATE dvds SET title=:title, year=:year,” </p> <p> “duration=:duration, director_id=:directorjd ” </p> <p> “WHERE id=:identity”, locals()) </p> <p> db.commit() </p> <p> 要编辑DVD记录,我们必须首先找到用户需要操纵的记录。如果找到了某个记录,我们就给用户修改其标题的机会,之后取回该记录的其他字段,以便将现有值作为默认值,将用户的输入工作最小化,用户只需要按Enter键就可以接受默认值。这里,我们使用了命名的占位符(形式为:name),并且必须使用映射来提供相应的值。对SELECT语句,我们使用一个新创建的字典;对UPDATE语句,我们使用的是由 locals()返回的字典。 </p> <p> 我们可以同时为这两个语句都使用新字典,这种情况下,对UPDATE语句,我们可以传递 dict(title=title, year=year, duration=duration, director_id=director_id, id=identity)),而非 locals()。 </p> <p> 在具备所有字段并且用户已经输入了需要做的改变之后,我们取回相应的发行者ID (如果必要就插入新的发行者记录),之后使用新数据对数据库进行更新。我们采用了一种简化的方法,对记录的所有字段进行更新,而不仅仅是那些做了修改的字段。 </p> <p> 在使用DBM文件时,DVD标题被用作键,因此,如果标题进行了修改,我们就需要创建一个新的键-值项,并删除原始项。不过,这里每个DVD记录都有一个唯一性的ID,该ID是记录初次插入时创建的,因此,我们只需要改变任何其他字段的值, 而不需要其他操作。 </p> <p> def find_dvd(db, message): </p> <p> message = “(Start of) title to ” + message </p> <p> cursor = db.cursor() </p> <p> while True: . </p> <p> start = Console.get_stnng(message, “title”) </p> <p> if not start: </p> <p> return (None, None) </p> <p> cursor.execute(“SELECT title, id FROM dvds ” </p> <p> “WHERE title LIKE ? ORDER BY title”, </p> <p> (start +”%”,)) </p> <p> records = cursor.fetchall() </p> <p> if len(records) == 0: </p> <p> print(“There are no dvds starting with”, start) </p> <p> continue </p> <p> elif len(records) == 1: </p> <p> return records </p> <p><p> elif len(records) > DISPLAY_LIMIT: </p> <p> print(“Too many dvds ({0}) start with {1}; try entering ” </p> <p> “more of the title”.format(len(records),start)) </p> <p> continue </p> <p> else: </p> <p> for i, record in enumerate(records): </p> <p> print(“{0}:{1}”.format(i + 1, record)) </p> <p><p> which = Console.get_integer(“Number (or 0 to cancel)”, </p> <p> “number”, minimum=1, maximum=len(records)) </p> <p> return records if which != 0 else (None, None) </p> <p><p> 这一函数的功能与dvdsdbm.py程序中的find_dvd()函数相同,并返回一个二元组 (DVD标题,DVD ID)或(None, None),具体依赖于是否找到了某个记录。这里并不需要在所有数据上进行迭代,而是使用SQL通配符(%),因此只取回相关的记录。 </p> <p> 由于我们希望匹配的记录数较小,因此我们一次性将其都取回到序列的序列中。如果有不止一个匹配的记录,但数量上又少到可以显示,我们就打印记录,并将每条记录附带一个数字编号,以便用户可以选择需要的记录,其方式与在dvds-dbm.py程序中所做的类似: </p> <p> def list_dvds(db): </p> <p> cursor = db.cursor() </p> <p> sql = (“SELECT dvds.title, dvds.year, dvds.duration, ” </p> <p> “directors.name FROM dvds, directors ” </p> <p> “WHERE dvds.director_id = directors.id”) </p> <p> start = None </p> <p> if dvd_count(db) > DISPLAY_LIMIT: </p> <p> start = Console.get_string(“List those starting with “, “start”) </p> <p><p> sql += ” AND dvds.title LIKE ?” </p> <p> sql += ” ORDER BY dvds.title” </p> <p> print() </p> <p> if start is None: </p> <p> cursor.execute(sql) </p> <p> else: </p> <p> cursor.execute(sql, (start +”%”,)) </p> <p> for record in cursor: </p> <p> print(“{0} ({0}) {0} minutes, by {0}”.format(record)) </p> <p><p> 要列出每个DVD的详细资料,我们执行一个SELECT査询。该査询连接两个表,如果记录(由dvd_count()函数返回)数量超过了显示限制值,就将第2个元素添加到WHERE 分支,之后执行该査询,并在结果上进行迭代。每个记录都是一个序列,其字段是与 SELECT査询相匹配的。 </p> <p> def dvd_count(db): </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“SELECT COUNT(*) FROM dvds”) </p> <p> return cursor.fetchone() </p> <p><p> 我们将这几行代码放置在一个单独的函数中,因为我们在几个不同的函数中都需要使用这几行代码。 </p> <p> 我们忽略了 list_directors()函数的代码,因为该函数在结构上与list_dvds()函数非常类似,只不过更简单一些,因为本函数只列出一个字段(name)。 </p> <p> def remove_dvd(db): </p> <p> title, identity = find_dvd(db, “remove”) </p> <p> if title is None: </p> <p> return </p> <p> ans = Console.get_bool(“Remove {0}?”.format(title), “no”) </p> <p> if ans: </p> <p> cursor = db.cursor() </p> <p> cursor.execute(“DELETE FROM dvds WHERE id=?”, (identity,)) </p> <p> db.commit() </p> <p> 在用户需要删除一个记录时,将调用本函数,并且本函数与dvds-dbm.py程序中 相应的函数是非常类似的。 </p> <p> 到此,我们完全查阅了 dvds-sql.py程序,并且了解了如何创建数据库表格、选取 记录、在选定的记录上进行迭代以及插入、更新与删除记录。使用execute()方法,我们可以执行底层数据库所支持的任意SQL语句。 </p> <p> SQLite提供了比我们这里使用的多得多的功能,包括自动提交模式(以及任意其他类型的事务控制),以及创建可以在SQL查询内执行的函数的能力。提供一个工厂函数并用于控制对每个取回的记录返回什么(比如,一个字典或自定义类型,而不是字段序列)也是可能的。此外,通过传递“:memory:”作为文件名,创建内存中的SQLite 数据库也是可能的。 </p> <p>sqlite数据库 视频的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sqlite数据库 视频,SQLite数据库:轻量级存储视频的首选,后端编程Python3-数据库编程的信息别忘了在本站进行查找喔。</p> <div class='yarpp yarpp-related yarpp-related-website yarpp-template-list'> <!-- YARPP List --> <h3>相关文章:</h3><ol> <li><a href="https://www.88531.cn/17014.html" rel="bookmark" title="SQLite数据库下载安装方法简介 (sqlite数据库 下载安装)">SQLite数据库下载安装方法简介 (sqlite数据库 下载安装)</a> <small>SQLite数据库是一种轻型的、自包容的、高性能的嵌入式关系型数据库管理系统。它的使用非常方便,目前逐渐被广泛使用。本文将介绍SQLite数据库的下载安装方法以及如何在Windows、Linux和Mac上安装SQLite数据库。...</small></li> </ol> </div> <div class="article-timeout"> <strong> <i class="fa fa-bell" aria-hidden="true"></i> 温馨提示: </strong>本文最后更新于<code>2023-09-02 02:15:25</code>,某些文章具有时效性,若有错误或已失效,请在下方 <a href="#comment">留言</a>或联系 <a target="_blank" title="www.88531.cn资享网" href="https://www.88531.cn"> <b>www.88531.cn资享网</b> </a>。 </div> <style> .article-timeout{position:relative; border-radius: 8px; position: relative; margin-bottom: 25px; padding: 10px; background-color: var(--body-bg-color);} </style> </div> <div class="em09 muted-3-color"><div><span>©</span> 版权声明</div><div class="posts-copyright">文章版权归作者所有,未经允许请勿转载。</div></div><div class="text-center theme-box muted-3-color box-body separator em09">THE END</div><div class="theme-box article-tags"><a class="but ml6 radius c-blue" title="查看更多分类文章" href="https://www.88531.cn/category/jsfx"><i class="fa fa-folder-open-o" aria-hidden="true"></i>技术分享</a><a class="but ml6 radius c-yellow" title="查看更多分类文章" href="https://www.88531.cn/category/jsfx/database"><i class="fa fa-folder-open-o" aria-hidden="true"></i>数据库</a><br></div> </div> <div class="text-center muted-3-color box-body em09">喜欢就支持一下吧</div><div class="text-center post-actions"><a href="javascript:;" data-action="like" class="action action-like" data-pid="13766"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-like"></use></svg><text>点赞</text><count>31</count></a><span class="hover-show dropup action action-share"> <svg class="icon" aria-hidden="true"><use xlink:href="#icon-share"></use></svg><text>分享</text><div class="zib-widget hover-show-con share-button dropdown-menu"><div><a class="share-btn qzone" target="_blank" title="QQ空间" href="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=https://www.88531.cn/13766.html&title=SQLite数据库:轻量级存储视频的首选 (sqlite数据库 视频)-www.88531.cn资享网&pics=&summary=随着视频技术的迅速发展以及移动互联网的不断普及,越来越多的人开始使用手机、平板等移动设备观看视频,而这样的设备又往往由于存储空间有限,需要一种轻量级的存储方式。在这类需求下,SQLite数据库成为了存储视频的首选。"><icon><svg class="icon" aria-hidden="true"><use xlink:href="#icon-qzone-color"></use></svg></icon><text>QQ空间<text></a><a class="share-btn weibo" target="_blank" title="微博" href="https://service.weibo.com/share/share.php?url=https://www.88531.cn/13766.html&title=SQLite数据库:轻量级存储视频的首选 (sqlite数据库 视频)-www.88531.cn资享网&pic=&searchPic=false"><icon><svg class="icon" aria-hidden="true"><use xlink:href="#icon-weibo-color"></use></svg></icon><text>微博<text></a><a class="share-btn qq" target="_blank" title="QQ好友" href="https://connect.qq.com/widget/shareqq/index.html?url=https://www.88531.cn/13766.html&title=SQLite数据库:轻量级存储视频的首选 (sqlite数据库 视频)-www.88531.cn资享网&pics=&desc=随着视频技术的迅速发展以及移动互联网的不断普及,越来越多的人开始使用手机、平板等移动设备观看视频,而这样的设备又往往由于存储空间有限,需要一种轻量级的存储方式。在这类需求下,SQLite数据库成为了存储视频的首选。"><icon><svg class="icon" aria-hidden="true"><use xlink:href="#icon-qq-color"></use></svg></icon><text>QQ好友<text></a><a class="share-btn poster" poster-share="13766" title="海报分享" href="javascript:;"><icon><svg class="icon" aria-hidden="true"><use xlink:href="#icon-poster-color"></use></svg></icon><text>海报分享<text></a><a class="share-btn copy" data-clipboard-text="https://www.88531.cn/13766.html" data-clipboard-tag="链接" title="复制链接" href="javascript:;"><icon><svg class="icon" aria-hidden="true"><use xlink:href="#icon-copy-color"></use></svg></icon><text>复制链接<text></a></div></div></span><a href="javascript:;" class="action action-favorite signin-loader" data-pid="13766"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-favorite"></use></svg><text>收藏</text><count></count></a></div> </article> <div class="theme-box" style="height:99px"> <nav class="article-nav"> <div class="main-bg box-body radius8 main-shadow"> <a href="https://www.88531.cn/16018.html"> <p class="muted-2-color"><i class="fa fa-angle-left em12"></i><i class="fa fa-angle-left em12 mr6"></i>上一篇</p> <div class="text-ellipsis-2"> 高效可靠!手机删除数据库请看这篇指南 (手机怎么彻底删除数据库) </div> </a> </div> <div class="main-bg box-body radius8 main-shadow"> <a href="https://www.88531.cn/11665.html"> <p class="muted-2-color">下一篇<i class="fa fa-angle-right em12 ml6"></i><i class="fa fa-angle-right em12"></i></p> <div class="text-ellipsis-2"> 最大排序MSSQL中轻松获取字母最大排序(mssql 获取字母) </div> </a> </div> </nav> </div> </div> </div> <div class="sidebar"> <div data-affix="true"></div><div class="mb20"><div class="user-card zib-widget widget"><div class="user-cover graphic" style="padding-bottom: 50%;"><img class="lazyload fit-cover user-cover user-cover-id-1" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-lg.svg" data-src="/wp-content/themes/zibll6.92/img/user_t.jpg" alt="用户封面"></div> <div class="card-content mt10 relative"> <div class="user-content"> <div class="user-avatar"><a href="https://www.88531.cn/author/1"><span class="avatar-img avatar-lg"><img alt="NO.1的头像-www.88531.cn资享网" src="/wp-content/themes/zibll6.92/img/avatar-default.png" data-src="/wp-content/themes/zibll6.92/img/avatar-default.png" class="lazyload avatar avatar-id-1"><img class="lazyload avatar-badge" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/vip-2.svg" data-toggle="tooltip" title="钻石会员" alt="钻石会员"></span></a></div> <div class="user-info mt20 mb10"> <div class="user-name flex jc"><name class="flex1 flex ac"><a class="display-name text-ellipsis " href="https://www.88531.cn/author/1">NO.1</a><img class="lazyload img-icon ml3" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-null.svg" data-src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/user-level-6.png" data-toggle="tooltip" title="LV6" alt="等级-LV6-www.88531.cn资享网"><a href="javascript:;" class="focus-color ml10 follow flex0 signin-loader" data-pid="1"><count><i class="fa fa-heart-o mr3" aria-hidden="true"></i>关注</count></a></name></div> <div class="author-tag mt10 mini-scrollbar"><a class="but c-blue tag-posts" data-toggle="tooltip" title="共1.4W+篇文章" href="https://www.88531.cn/author/1"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-post"></use></svg>1.4W+</a><a class="but c-green tag-comment" data-toggle="tooltip" title="共1条评论" href="https://www.88531.cn/author/1?tab=comment"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-comment"></use></svg>1</a><a class="but c-yellow tag-follow" data-toggle="tooltip" title="共2个粉丝" href="https://www.88531.cn/author/1?tab=follow"><i class="fa fa-heart em09"></i>2</a><span class="badg c-red tag-view" data-toggle="tooltip" title="人气值 177W+"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-hot"></use></svg>177W+</span></div> <div class="user-desc mt10 muted-2-color em09">一名从事IT行业的技术宅,主要研究C#编程,业余喜欢搞搞网络硬件</div> </div> </div> <div class="more-posts-mini"><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/38143.html">最新子比8.0绕授权开心破解版通用,小白详细教程包能用</a></div><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/37855.html">一键构建自己的海外VPS代理服务器shadowsocks</a></div><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/37887.html">MySQL全面瓦解27:主从复制(原理 + 实践)</a></div><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/38090.html">2步操作永久提升谷歌Chrome浏览器默认下载速度</a></div><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/38065.html">关于突破百度网盘限速软件PanDownload作者被捕</a></div><div class="item"><a class="icon-circle text-ellipsis" href="https://www.88531.cn/38046.html">微软网盘OneDrive申请注册5T空间容量的方法教程</a></div></div> </div> </div></div><div data-affix="true" class="posts-nav-box" data-title="文章目录"></div><div data-affix="true"><div class="box-body notop"><div class="title-theme">近一个月排行</div></div><div class="zib-widget hot-posts"><div class="relative"><a href="https://www.88531.cn/38046.html"><div class="graphic hover-zoom-img" style="padding-bottom: 60%!important;"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2025/01/38046thumb.png" alt="微软网盘OneDrive申请注册5T空间容量的方法教程-www.88531.cn资享网" class="lazyload fit-cover radius8"><div class="absolute linear-mask"></div><div class="abs-center left-bottom box-body"><div class="mb6"><span class="badg b-theme badg-sm">220人已阅读</span></div>微软网盘OneDrive申请注册5T空间容量的方法教程</div></div></a><badge class="img-badge left hot em12"><i>TOP1</i></badge></div><div class="flex mt15 relative hover-zoom-img"><a href="https://www.88531.cn/37776.html"><div class="graphic"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/12/37776thumb.png?v=1735178045" alt="新手NAS首选:高性价比Docker应用推荐一览-www.88531.cn资享网" class="lazyload fit-cover radius8"></div></a><div class="term-title ml10 flex xx flex1 jsb"><div class="text-ellipsis-2"><a class="" href="https://www.88531.cn/37776.html">新手NAS首选:高性价比Docker应用推荐一览</a></div><div class="px12 muted-3-color text-ellipsis flex jsb"><span><i class="fa fa-clock-o mr3" aria-hidden="true"></i>9天前</span><span>201人已阅读</span></div></div><badge class="img-badge left hot jb-red"><i>TOP2</i></badge></div><div class="flex mt15 relative hover-zoom-img"><a href="https://www.88531.cn/37861.html"><div class="graphic"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/12/37861thumb.png?v=1735295371" alt="史上最详细Docker部署Mysql主从复制,带每一步骤图!!!-www.88531.cn资享网" class="lazyload fit-cover radius8"></div></a><div class="term-title ml10 flex xx flex1 jsb"><div class="text-ellipsis-2"><a class="" href="https://www.88531.cn/37861.html">史上最详细Docker部署Mysql主从复制,带每一步骤图!!!</a></div><div class="px12 muted-3-color text-ellipsis flex jsb"><span><i class="fa fa-clock-o mr3" aria-hidden="true"></i>7天前</span><span>200人已阅读</span></div></div><badge class="img-badge left hot jb-yellow"><i>TOP3</i></badge></div><div class="flex mt15 relative hover-zoom-img"><a href="https://www.88531.cn/37843.html"><div class="graphic"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/12/37843thumb.png?v=1735182021" alt="终于找到了实现照片备份到 NAS 的终极免费方案-www.88531.cn资享网" class="lazyload fit-cover radius8"></div></a><div class="term-title ml10 flex xx flex1 jsb"><div class="text-ellipsis-2"><a class="" href="https://www.88531.cn/37843.html">终于找到了实现照片备份到 NAS 的终极免费方案</a></div><div class="px12 muted-3-color text-ellipsis flex jsb"><span><i class="fa fa-clock-o mr3" aria-hidden="true"></i>9天前</span><span>198人已阅读</span></div></div><badge class="img-badge left hot b-gray"><i>TOP4</i></badge></div><div class="flex mt15 relative hover-zoom-img"><a href="https://www.88531.cn/37887.html"><div class="graphic"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/12/37887thumb.png?v=1735361333" alt="MySQL全面瓦解27:主从复制(原理 + 实践)-www.88531.cn资享网" class="lazyload fit-cover radius8"></div></a><div class="term-title ml10 flex xx flex1 jsb"><div class="text-ellipsis-2"><a class="" href="https://www.88531.cn/37887.html">MySQL全面瓦解27:主从复制(原理 + 实践)</a></div><div class="px12 muted-3-color text-ellipsis flex jsb"><span><i class="fa fa-clock-o mr3" aria-hidden="true"></i>18小时前</span><span>196人已阅读</span></div></div><badge class="img-badge left hot b-gray"><i>TOP5</i></badge></div><div class="flex mt15 relative hover-zoom-img"><a href="https://www.88531.cn/37802.html"><div class="graphic"><img src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/thumbnail.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/12/37802thumb.png?v=1735179741" alt="一键搞定!LinkAndroid,你的手机全能管家-电脑操控手机-www.88531.cn资享网" class="lazyload fit-cover radius8"></div></a><div class="term-title ml10 flex xx flex1 jsb"><div class="text-ellipsis-2"><a class="" href="https://www.88531.cn/37802.html">一键搞定!LinkAndroid,你的手机全能管家-电脑操控手机</a></div><div class="px12 muted-3-color text-ellipsis flex jsb"><span><i class="fa fa-clock-o mr3" aria-hidden="true"></i>9天前</span><span>196人已阅读</span></div></div><badge class="img-badge left hot b-gray"><i>TOP6</i></badge></div></div></div></div> </main> <div class="container fluid-widget"></div><footer class="footer"> <div class="container-fluid container-footer"> <ul class="list-inline"><li class="hidden-xs" style="max-width: 300px;"><p><a class="footer-logo" href="https://www.88531.cn" title=""> <img src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-sm.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/08/diugai.com171276885347379-1.png" switch-src="https://www.88531.cn/wp-content/uploads/2024/08/diugai.com171276885347379-1.png" alt="www.88531.cn资享网" class="lazyload" style="height: 40px;"> </a></p><p class="title-h-left">特别声明</p><div class="footer-muted em09">本站所有资源均来源于互联网,如有侵权请联系站长(181050043#qq.com),将第一时间删除,源码仅供参考学习,请勿商用或其它非法用途,否则一切后果用户自负! </div></li><li style="max-width: 550px;"><p class="fcode-links"><a href="http://doc.88531.cn">在线文档</a> <a href="/privacy-policy">免责声明</a> <a href="#">广告合作</a> <a href="/topics/qzzy">亲测资源</a> <a href="https://www.88531.cn/wp-sitemap.xml" target="_blank">网站地图</a></p><div class="footer-muted em09">Copyright © 2023 · <a href="https://www.88531.cn">www.88531.cn资享网</a>  <a href="https://beian.miit.gov.cn/">陕ICP备2023008366号-4</a> </div><div class="footer-contact mt10"><a class="toggle-radius hover-show nowave" href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-d-wechat"></use></svg><div class="hover-show-con footer-wechat-img"><img style="box-shadow: 0 5px 10px rgba(0,0,0,.2); border-radius:4px;" height="100" class="lazyload" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-sm.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/08/wx-1.jpg" alt="扫一扫加微信-www.88531.cn资享网"></div></a><a class="toggle-radius" data-toggle="tooltip" target="_blank" title="QQ联系" href="http://wpa.qq.com/msgrd?v=3&uin=181050043&site=qq&menu=yes"><svg class="icon" aria-hidden="true" data-viewBox="-50 0 1100 1100" viewBox="-50 0 1100 1100"><use xlink:href="#icon-d-qq"></use></svg></a><a class="toggle-radius" data-toggle="tooltip" title="微博" href="https://weibo.com/"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-d-weibo"></use></svg></a><a class="toggle-radius" data-toggle="tooltip" title="发邮件" href="mailto:181050043@QQ.COM"><svg class="icon" aria-hidden="true" data-viewBox="-20 80 1024 1024" viewBox="-20 80 1024 1024"><use xlink:href="#icon-d-email"></use></svg></a></div></li><li><div class="footer-miniimg" data-toggle="tooltip" title="扫码加微信"> <p> <img class="lazyload" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-sm.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/08/wx-1.jpg" alt="扫码加微信-www.88531.cn资享网"> </p> <span class="opacity8 em09">扫码加微信</span> </div></li></ul> </div> </footer> <style> /*猫爪*/ .title-theme { padding: 0px 0px 0px 45px!important; background: url(https://www.vxras.com/wp-content/uploads/2023/12/cat.svg) 10px center no-repeat; background-size: 30px 20px; color: #566889; } .title-theme:before { display:none; } .wp-posts-content>h1.wp-block-heading{ padding: 0px 0px 0px 45px!important; background: url(https://www.vxras.com/wp-content/uploads/2023/12/cat.svg) 10px center no-repeat; background-size: 30px 20px; } .wp-posts-content>h2.wp-block-heading{ padding: 0px 0px 0px 45px!important; background: url(https://www.vxras.com/wp-content/uploads/2023/12/cat.svg) 10px center no-repeat; background-size: 30px 20px; } .wp-posts-content>h3.wp-block-heading{ padding: 0px 0px 0px 45px!important; background: url(https://www.vxras.com/wp-content/uploads/2023/12/cat.svg) 10px center no-repeat; background-size: 30px 20px; } .wp-posts-content>h4.wp-block-heading{ padding: 0px 0px 0px 45px!important; background: url(https://www.vxras.com/wp-content/uploads/2023/12/cat.svg) 10px center no-repeat; background-size: 30px 20px; } .wp-posts-content>h1.wp-block-heading:before{ display:none; } .wp-posts-content>h2.wp-block-heading:before{ display:none; } .wp-posts-content>h3.wp-block-heading:before{ display:none; } .wp-posts-content>h4.wp-block-heading:before{ display:none; } </style> <div class="dimmer"></div> <style> #landlord .landlord-close {opacity: 0;visibility: hidden;width: 20px;height: 20px;line-height: 20px;background: rgb(0, 0, 0);text-align: center;color: #fff;position: absolute;top: 3px;right: 0;border-radius: 50%;font-size: 10px;cursor: pointer;z-index: 1;transition: .2s;} #landlord {user-select: none;position: fixed;left: 30px;bottom: 150px;z-index: 10000;font-size: 0;transition: all .3s ease-in-out;} #landlord .message {opacity: 0;width: 172px;height: auto;margin: auto;padding: 7px;top: -200px;left: -20px;text-align: center;color: #fff;border-radius: 12px;background-color: #0005;box-shadow: 0 3px 15px 2px #eae6e6;font-size: 13px;font-weight: 400;text-overflow: ellipsis;text-transform: uppercase;overflow: hidden;position: absolute;} @media (max-width: 767px){ #landlord .message {display: none;}} </style> <div id="landlord" style="display: block;"> <span class="landlord-close iconfont icon-guanbi" onclick="$('#landlord').hide();$('#flost-landlord').show();"></span> <div class="message" style="opacity: 1;">欢迎访问本站<br>您的访问时本站的荣幸<br>希望您能在本站<br>找到您想要的资源</div> </div> <script type="text/javascript"> jQuery(function (){ var text; var now = (new Date()).getHours(); if (now > 24 || now <= 5) { text = '清风提示您 午夜骚年,快睡觉去,妹纸等你太久了会不耐烦的哦!'; } else if (now > 5 && now <= 10) { text = '早上好~今天又是元气满满的一天哦!先去尝尝鲜</a>~'; } else if (now > 10 && now <= 12) { text = '最难的任务适合在上午时段攻克哦,期待您的订单~'; } else if (now > 12 && now <= 14) { text = '中午拿什么填补我空虚的胃和心灵?<br />停下手中的工作,快去吃饭吧,晚了就没的吃了'; } else if (now > 14 && now <= 17) { text = '下午时段初一小盏正在优化细节,力求做一个人见人爱的“细节控”哦~'; } else if (now > 17 && now <= 19) { text = '快要下班了吧?休息会扒根烟喝杯茶~'; } else if (now > 19 && now <= 21) { text = '晚安~音乐、运动、阅读,睡前时间放松一下,灵感也许会悄悄到来!'; }else if (now > 21 && now <= 24) { text = '累了就早点休息~<br />晚间22:00-5:00是最佳睡眠时间哦'; } showMessage(text, 12000); }); function showMessage(text, timeout){ if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1]; //console.log('showMessage', text); $('.message').stop(); if(text != undefined){ $('.message').html(text).fadeTo(200, 1); } if (timeout === null) timeout = 6000; hideMessage(timeout); } function hideMessage(timeout){ $('.message').stop().css('opacity',1); if (timeout === null) timeout = 6000; $('.message').delay(timeout).fadeTo(200, 0); } </script> <style>.hover-zoom-img-sm:hover img,.hover-zoom-sm:hover,.posts-item.mult-thumb .thumb-items>span>img:hover,.posts-item:hover .item-thumbnail img,.posts-mini:hover img {transform: scale(1.2) rotate(5deg);}</style> <style>.wp-posts-content img {border-radius: 20px;}</style> <style> .navbar-search.show { background-image: url(https://www.88531.cn/wp-content/plugins/ACG/img/shading_red.png); } </style> <style> .sign-img+.sign::before { content: ''; position: absolute; top: -144px; left: 80px; width: 191px; height: 187px; background: url(https://www.88531.cn/wp-content/plugins/ACG/img/loginll.png) no-repeat center / 100%; } .sign-img { padding-right: 50%; } </style> <style>.navbar-brand{position:relative;overflow:hidden;margin:0px 0 0 0px}.navbar-brand:before{content:"";position:absolute;left:-665px;top:-460px;width:200px;height:15px;background-color:rgba(255,255,255,.5);-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:searchLights 10s ease-in 0s infinite;-o-animation:searchLights 6s ease-in 0s infinite;animation:searchLights 10s ease-in 0s infinite}@-moz-keyframes searchLights{50%{left:-120px;top:0}65%{left:350px;top:0px}}@keyframes searchLights{40%{left:-120px;top:0}60%{left:350px;top:0px}80%{left:-120px;top:0px}}</style> <style>.display-name { animation: animate 0.5s linear infinite; } @keyframes animate { 0%, 100% { text-shadow: -1.5px -1.5px 0 #0ff, 1.5px 1.5px 0 #f00; } 25% { text-shadow: 1.5px 1.5px 0 #0ff, -1.5px -1.5px 0 #f00; } 50% { text-shadow: 1.5px -1.5px 0 #0ff, 1.5px -1.5px 0 #f00; } 75% { text-shadow: -1.5px 1.5px 0 #0ff, -1.5px 1.5px 0 #f00; } }</style> <style> /*首页文章列表悬停可爱萝莉*/ @media screen and (min-width:980px) { .tab-content .posts-row>*:hover { transition:all 0.5s; content: " "; right: -50px; background-size: contain; background-position: center right; background-image: url(/wp-content/plugins/ACG/img/decorate1.png); background-repeat: no-repeat; } } </style> <style>/*小工具头像跳动*/ .user-avatar .avatar-img, .img-ip:hover, .w-a-info img { -webkit-animation: swing 3s .4s ease both; -moz-animation: swing 3s .4s ease both; } @-webkit-keyframes swing { 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin:top center } 20% { -webkit-transform:rotate(15deg) } 40% { -webkit-transform:rotate(-10deg) } 60% { -webkit-transform:rotate(5deg) } 80% { -webkit-transform:rotate(-5deg) } 100% { -webkit-transform:rotate(0deg) } } @-moz-keyframes swing { 20%, 40%, 60%, 80%, 100% { -moz-transform-origin:top center } 20% { -moz-transform:rotate(15deg) } 40% { -moz-transform:rotate(-10deg) } 60% { -moz-transform:rotate(5deg) } 80% { -moz-transform:rotate(-5deg) } 100% { -moz-transform:rotate(0deg) } }</style> <style> .display-name{ background-image: -webkit-linear-gradient(90deg, #07c160, #fb6bea 25%, #3aedff 50%, #fb6bea 75%, #28d079); -webkit-text-fill-color: transparent; -webkit-background-clip: text; background-size: 100% 600%; animation: wzw 10s linear infinite; } @keyframes wzw { 0% { background-position: 0 0; } 100% { background-position: 0 -300%; } } </style> <style>ul.nav {font-weight: 650;}</style> <style>.navbar-nav>li:first-child:before{width:30px;}.navbar-nav>li:before{width:60px;top:23px;background:rgba(0,0,0,0);height:4px;left:10px;border-radius:unset;}.navbar-top li.current-menu-item>a, .navbar-top li:hover>a {color: unset;}</style> <style> @media screen and (min-width: 801px) { body { background-image: url("/wp-content/plugins/ACG/img/pc2.jpg");/**这里改为你自己的图片地址**/ background-position-x: center; background-position-y: center; background-repeat: no-repeat; background-attachment: fixed; background-size: cover; }} </style> <style> @media screen and (max-width: 1000px){ body { background-image: url(/wp-content/plugins/ACG/img/pcd.png);/**这里改为你自己的图片地址**/ background-position-x: center; background-position-y: center; background-repeat: no-repeat; background-attachment: fixed; background-size: cover; }} </style> <style>::-webkit-scrollbar{width:6px;height:1px}::-webkit-scrollbar-thumb{background-color:#07e6f6;background-image:-webkit-linear-gradient(45deg,rgb(236,174,6)25%,transparent 25%,transparent 50%,rgb(10,77,246)50%,rgb(241,9,28)75%,transparent 75%,transparent)}::-webkit-scrollbar-track{background:white;border-radius:20px}</style> <style>#percentageCounter{position:fixed; left:0; top:0; height:3px; z-index:99999; background-image: linear-gradient(to right, #339933,#FF6666);border-radius:5px;}</style> <script>$('head').before('<div id="percentageCounter"></div>');$(window).scroll(function() {var a = $(window).scrollTop(),c = $(document).height(),b = $(window).height();scrollPercent = a / (c - b) * 100;scrollPercent = scrollPercent.toFixed(1);$("#percentageCounter").css({width: scrollPercent + "%"});}).trigger("scroll");</script> <style>.avatar{border-radius:50%;animation:light 4s ease-in-out infinite !important;transition:0.5s;@keyframes light{0%{box-shadow:0 0 4px#f00}25%{box-shadow:0 0 16px#0f0}50%{box-shadow:0 0 4px#00f}75%{box-shadow:0 0 16px#0f0}100%{box-shadow:0 0 4px#f00}}}.avatar:hover{transform:scale(1.15)rotate(720deg)}@keyframes light{0%{box-shadow:0 0 4px#f00}25%{box-shadow:0 0 16px#0f0}50%{box-shadow:0 0 4px#00f}75%{box-shadow:0 0 16px#0f0}100%{box-shadow:0 0 4px#f00}}</style> <style>.tab-content .posts-item:not(article){transition: all 0.3s;}.tab-content .posts-item:not(article):hover{transform: translateY(-10px); box-shadow: 0 8px 10px rgba(255,112,173,0.35);}</style> <style>.wp-posts-content img:hover {box-shadow:0px 0px 8px #63B8FF;}</style> <style>.article{border-radius:var(--main-radius);box-shadow: 1px 1px 3px 3px rgba(53, 231, 8, 0.35);-moz-box-shadow: 1px 1px 3px 3px rgba(53, 231, 8, 0.35);}.article:hover{box-shadow: 1px 1px 5px 5px rgba(53, 231, 8, 0.35); -moz-box-shadow: 1px 1px 5px 5px rgba(53, 231, 8, 0.35);} </style> <script src="/wp-content/plugins/ACG/js/xuehua.js"></script> <style> .theme-pagination .ajax-next a, .theme-pagination .order-ajax-next a{border-radius: 30px; padding: 15px 0; color: var(--muted-color); background-color:var(--main-bg-color);color: #FF0033;display: block;opacity: 1;font-weight:bold;}</style> <style>.article-tags{margin-bottom: 10px}.article-tags a{padding: 4px 10px;background-color: #19B5FE;color: white;font-size: 12px;line-height: 16px;font-weight: 400;margin: 0 5px 5px 0;border-radius: 2px;display: inline-block}.article-tags a:nth-child(5n){background-color: #4A4A4A;color: #FFF}.article-tags a:nth-child(5n+1){background-color: #ff5e5c;color: #FFF}.article-tags a:nth-child(5n+2){background-color: #ffbb50;color: #FFF}.article-tags a:nth-child(5n+3){background-color: #1ac756;color: #FFF}.article-tags a:nth-child(5n+4){background-color: #19B5FE;color: #FFF}.article-tags a:hover{background-color: #1B1B1B;color: #FFF}</style> <style>.navbar-logo{animation: hue 4s infinite;}@keyframes hue {from {filter: hue-rotate(0deg);}to {filter: hue-rotate(-360deg);}}</style> <style>.navbar-logo{filter:invert(1);}</style> <style>.navbar-logo{filter:drop-shadow(0 0 10px dodgerblue);}</style> <style>@media screen and (min-width: 1000px){.header-layout-1{position:relative;background-image:url("/wp-content/plugins/ACG/img/zhifeiji.gif");background-position:center right;background-size:100% 100%;}}</style> <style>body{cursor:url(/wp-content/plugins/ACG/img/arr11.png), default;} a:hover{cursor:url(/wp-content/plugins/ACG/img/arr12.png), pointer;}</style> <div id="bubble"><canvas width="1494" height="815" style="display: block; position: fixed; top: 0px; left: 0px; z-index: -2;"></canvas></div> <script src="/wp-content/plugins/ACG/js/control.js"></script> <link rel="stylesheet" href="/wp-content/plugins/ACG/css/yuansufuhao.css" /> <script>$('head').before('<div class="container1"><div class="inner-container1"><div class="shape"></div></div><div class="inner-container1"><div class="shape"></div></div></div>');</script> <script src="/wp-content/plugins/ACG/js/yuansufuhao.min.js"></script> <script>$(document).ready(function(){var html='';for(var i=1;i<=50;i++){html+='<div class="shape-container--'+i+' shape-animation"><div class="random-shape"></div></div>'}document.querySelector('.shape').innerHTML+=html});</script> <div class="mouse-cursor cursor-outer"></div><div class="mouse-cursor cursor-inner"></div> <script src="/wp-content/plugins/ACG/js/shubiao.js"></script> <style>.mouse-cursor{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;-webkit-transform:translateZ(0);transform:translateZ(0);visibility:hidden}.cursor-inner{margin-left:-3px;margin-top:-3px;width:6px;height:6px;z-index:10000001;background:transparent;-webkit-transition:width.3s ease-in-out,height.3s ease-in-out,margin.3s ease-in-out,opacity.3s ease-in-out;transition:width.3s ease-in-out,height.3s ease-in-out,margin.3s ease-in-out,opacity.3s ease-in-out}.cursor-inner.cursor-hover{margin-left:-18px;margin-top:-18px;width:36px;height:36px;background:transparent;opacity:.3}.cursor-outer{margin-left:-15px;margin-top:-15px;width:30px;height:30px;border:2px solid transparent;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:10000000;opacity:.5;-webkit-transition:all.08s ease-out;transition:all.08s ease-out}.cursor-outer.cursor-hover{opacity:0}.main-wrapper[data-magic-cursor=hide].mouse-cursor{display:none;opacity:0;visibility:hidden;position:absolute;z-index:-1111}</style><script src="/wp-content/plugins/ACG/js/lizi.js"></script> <style>body {background-image: url("/wp-content/plugins/ACG/img/jianyue.svg");background-position-x: center;background-position-y: center; background-repeat: no-repeat;background-attachment: fixed;background-size: cover;}</style> <style>@font-face{font-family: 'zti';src: url('https://cdn.jsdelivr.net/gh/maomaojiujiu/cdn@font/mjfont10.woff');}body{font-family:'zti' !important;}</style> <style>.zib-widget>h3:before,.wp-posts-content>h3.has-text-align-center:before, .wp-posts-content>h3:not([class]):before{content: '';position: absolute;top: 2px;left: 0;width: 20px!important;height: 20px!important;background: url(/wp-content/plugins/ACG/img/h3.gif) no-repeat center;box-shadow: none;background-size: 100% !important;}.zib-widget>h2:before,.wp-posts-content>h2.has-text-align-center:before, .wp-posts-content>h2:not([class]):before{content: '';position: absolute;top: 0;left: 0;width: 20px;height: 20px;background: url(/wp-content/plugins/ACG/img/h2.gif) no-repeat center;box-shadow: none;}.wp-posts-content h2:before{content: '';position: absolute;top: 0;left: 0;width: 20px;height: 20px;background: url(/wp-content/plugins/ACG/img/h2.gif) no-repeat center;box-shadow: none;}.wp-posts-content h3:before{content: '';position: absolute;top: 2px;left: 0;width: 20px!important;height: 20px!important;background: url(/wp-content/plugins/ACG/img/h3.gif) no-repeat center;box-shadow: none;background-size: 100% !important;}.wp-posts-content>h2.has-text-align-center, .wp-posts-content>h2:not([class]),.zib-widget>h2{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}.wp-posts-content h2{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}.wp-posts-content>h3.has-text-align-center, .wp-posts-content>h3:not([class]),.zib-widget>h3{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}.wp-posts-content h3{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}.h2:before{content: '';position: absolute;top: 0;left: 0;width: 20px;height: 20px;background: url(/wp-content/plugins/ACG/img/h2.gif) no-repeat center;box-shadow: none;},h2{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}.h2{color: var(--main);font-size: 18px;line-height: 24px;margin-bottom: 18px;position: relative;padding: 0 15px 0 28px;}</style> <script src="/wp-content/plugins/ACG/js/copyvue.js"></script> <script src="/wp-content/plugins/ACG/js/copyfour.js"></script> <link rel="stylesheet" href="/wp-content/plugins/ACG/css/copyfour.css"> <script>document.addEventListener("copy",function(e){ new Vue({data:function(){this.$notify({title:"复制成功!",message:"若要转载请保留原文链接!mua~",position: 'bottom-right', offset: 50,showClose: false,type:"success"});return{visible:false}}})})</script> <script type="text/javascript"> window._win = { views: '13766', www: 'https://www.88531.cn', uri: 'https://www.88531.cn/wp-content/themes/zibll6.92', ver: '6.9.2', imgbox: '1', imgbox_type: 'group', imgbox_thumbs: '1', imgbox_zoom: '1', imgbox_full: '1', imgbox_play: '1', imgbox_down: '1', sign_type: 'modal', signin_url: 'https://www.88531.cn/user-sign?tab=signin&redirect_to=https%3A%2F%2Fwww.88531.cn%2F13766.html', signup_url: 'https://www.88531.cn/user-sign?tab=signup&redirect_to=https%3A%2F%2Fwww.88531.cn%2F13766.html', ajax_url: 'https://www.88531.cn/wp-admin/admin-ajax.php', ajaxpager: '', ajax_trigger: '<i class="fa fa-angle-right"></i>加载更多', ajax_nomore: '没有更多内容了', qj_loading: '0', highlight_kg: '1', highlight_hh: '1', highlight_btn: '1', highlight_zt: 'enlighter', highlight_white_zt: 'enlighter', highlight_dark_zt: 'dracula', upload_img_size: '4', img_upload_multiple: '6', upload_video_size: '30', user_upload_nonce: '4646743812', comment_upload_img: '' } </script> <div class="float-right round position-bottom"><span style="--this-bg:rgba(255, 111, 6, 0.2);" class="float-btn more-btn hover-show nowave" data-placement="left" title="本站同款主题模板" href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-gift-color"></use></svg><div style="width:240px;" class="hover-show-con dropdown-menu"><a href="https://www.88531.cn/9084.html" target="_blank"> <div class="flex c-red"> <img class="flex0" alt="zibll子比主题" src="https://www.88531.cn/wp-content/themes/zibll_v7.3/img/favicon.png" height="30"> <div class="flex1 ml10"> <dt>本站同款主题模板</dt> <div class="px12 mt10 muted-color">zibll子比主题是一款漂亮优雅的网站主题模板,功能强大,配置简单。</div> <div class="but mt10 p2-10 c-blue btn-block px12">查看详情</div> </div> </div> </a></div></span><a style="--this-color:#f2c97d;--this-bg:rgba(62,62,67,0.9);" class="float-btn signin-loader" data-toggle="tooltip" data-placement="left" title="开通会员" href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-vip_1"></use></svg></a><a class="newadd-btns float-btn add-btn btn-newadd" href="https://www.88531.cn/newposts"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-add-ring"></use></svg></a><a class="float-btn service-qq" data-toggle="tooltip" data-placement="left" title="QQ联系" target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=181050043&site=qq&menu=yes"><i class="fa fa-qq"></i></a><a class="float-btn service-wechat hover-show nowave" title="扫码添加微信" href="javascript:;"><i class="fa fa-wechat"></i><div class="hover-show-con dropdown-menu"><img class="radius4 relative" width="100%" class="lazyload" src="https://www.88531.cn/wp-content/themes/zibll6.92/img/thumbnail-sm.svg" data-src="https://www.88531.cn/wp-content/uploads/2024/08/wx-1.jpg" alt="扫码添加微信-www.88531.cn资享网"></div></a><a class="float-btn toggle-theme hover-show" data-toggle="tooltip" data-placement="left" title="切换主题" href="javascript:;"><i class="fa fa-toggle-theme"></i> </a><span class="float-btn qrcode-btn hover-show service-wechat"><i class="fa fa-qrcode"></i><div class="hover-show-con dropdown-menu"><div class="qrcode" data-size="100"></div><div class="mt6 px12 muted-color">在手机上浏览此页面</div></div></span><a class="float-btn ontop fade" data-toggle="tooltip" data-placement="left" title="返回顶部" href="javascript:(scrollTo());"><i class="fa fa-angle-up em12"></i></a></div><div mini-touch="nav_search" touch-direction="top" class="main-search fixed-body main-bg box-body navbar-search nopw-sm"><div class="container"><div class="mb20"><button class="close" data-toggle-class data-target=".navbar-search" ><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button></div><div remote-box="https://www.88531.cn/wp-admin/admin-ajax.php?action=search_box" load-click><div class="search-input"><p><i class="placeholder s1 mr6"></i><i class="placeholder s1 mr6"></i><i class="placeholder s1 mr6"></i></p><p class="placeholder k2"></p> <p class="placeholder t1"></p><p><i class="placeholder s1 mr6"></i><i class="placeholder s1 mr6"></i><i class="placeholder s1 mr6"></i><i class="placeholder s1 mr6"></i></p><p class="placeholder k1"></p><p class="placeholder t1"></p><p></p> <p class="placeholder k1" style="height: 80px;"></p> </div></div></div></div> <div class="modal fade" id="u_sign" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="sign-content"> <div class="sign zib-widget blur-bg relative"> <button class="close" data-dismiss="modal"> <svg class="ic-close" aria-hidden="true" data-viewBox="0 0 1024 1024" viewBox="0 0 1024 1024"><use xlink:href="#icon-close"></use></svg> </button> <div class="tab-content"><div class="tab-pane fade active in" id="tab-sign-in"><div class="box-body"><div class="title-h-left fa-2x">登录</div><a class="muted-color px12" href="#tab-sign-up" data-toggle="tab">没有帐号?立即注册<i class="em12 ml3 fa fa-angle-right"></i></a></div><div id="sign-in"><form><div class="relative line-form mb10"><input type="text" name="username" class="line-form-input" tabindex="1" placeholder=""><i class="line-form-line"></i><div class="scale-placeholder">用户名/手机号/邮箱</div></div><div class="relative line-form mb10"><input type="password" name="password" class="line-form-input" tabindex="2" placeholder=""><div class="scale-placeholder">登录密码</div><div class="abs-right passw muted-2-color"><i class="fa-fw fa fa-eye"></i></div><i class="line-form-line"></i></div><input machine-verification="slider" type="hidden" name="captcha_mode" value="slider" slider-id=""><div class="relative line-form mb10 em09"><span class="muted-color form-checkbox"><input type="checkbox" id="remember" checked="checked" tabindex="4" name="remember" value="forever"><label for="remember" class="ml3">记住登录</label></span><span class="pull-right muted-2-color"><a class="muted-2-color" href="https://www.88531.cn/user-sign?tab=resetpassword&redirect_to=https%3A%2F%2Fwww.88531.cn%2F13766.html">找回密码</a></span></div><div class="box-body"><input type="hidden" name="action" value="user_signin"><button type="button" class="but radius jb-blue padding-lg signsubmit-loader btn-block"><i class="fa fa-sign-in mr10"></i>登录</button></div></form><p class="social-separator separator muted-3-color em09">社交帐号登录</p><div class="social_loginbar"><a title="微信登录" href="https://www.88531.cn/oauth/weixingzh?rurl=https%3A%2F%2Fwww.88531.cn%2F13766.html" class="social-login-item weixingzh button-lg qrcode-signin"><i class="fa fa-weixin" aria-hidden="true"></i>微信登录</a></div></div></div><div class="tab-pane fade" id="tab-sign-up"><div class="box-body"><div class="title-h-left fa-2x">注册</div><a class="muted-color px12" href="#tab-sign-in" data-toggle="tab">已有帐号,立即登录<i class="em12 ml3 fa fa-angle-right"></i></a></div><form id="sign-up"><div class="relative line-form mb10"><input type="text" name="name" class="line-form-input" tabindex="1" placeholder=""><i class="line-form-line"></i><div class="scale-placeholder">设置用户名</div></div><div class="relative line-form mb10"><input type="password" name="password2" class="line-form-input" tabindex="3" placeholder=""><div class="scale-placeholder">设置密码</div><div class="abs-right passw muted-2-color"><i class="fa-fw fa fa-eye"></i></div><i class="line-form-line"></i></div><div class="relative line-form mb10"><input type="password" name="repassword" class="line-form-input" tabindex="4" placeholder=""><div class="scale-placeholder">重复密码</div><div class="abs-right passw muted-2-color"><i class="fa-fw fa fa-eye"></i></div><i class="line-form-line"></i></div><input machine-verification="slider" type="hidden" name="captcha_mode" value="slider" slider-id=""><div class="box-body"><input type="hidden" name="action" value="user_signup"><button type="button" class="but radius jb-green padding-lg signsubmit-loader btn-block"><svg class="icon mr10" aria-hidden="true" data-viewBox="0 0 1024 1024" viewBox="0 0 1024 1024"><use xlink:href="#icon-signup"></use></svg>注册</button></div></form></div><div class="tab-pane fade" id="tab-qrcode-signin"><div class="box-body"><div class="title-h-left fa-2x">扫码登录</div><span class="muted-2-color px12">使用<a class="muted-color" href="#tab-sign-in" data-toggle="tab">其它方式登录</a>或<a class="muted-color" href="#tab-sign-up" data-toggle="tab">注册</a></span><a class="muted-color px12 hide" href="#tab-qrcode-signin" data-toggle="tab">扫码登录</a></div><div class="qrcode-signin-container box-body text-center"><p class="placeholder" style="height:180px;width:180px;margin:auto;"></p><p class="placeholder" style="height:27px;width:200px;margin:15px auto 0;"></p></div></div></div> </div> </div> </div> </div> <link rel='stylesheet' id='yarppRelatedCss-css' href='https://www.88531.cn/wp-content/plugins/yet-another-related-posts-plugin/style/related.css?ver=5.30.11' type='text/css' media='all' /> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/masonry.min.js?ver=4.2.2" id="masonry-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/betterdocs/assets/blocks/categorygrid/frontend.js?ver=a4a7e7ed1fd9a2aaf85a" id="betterdocs-categorygrid-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/betterdocs-pro/assets/public/js/extend-search-modal.js?ver=3.4.4" id="betterdocs-extend-search-modal-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/dist/vendor/react.min.js?ver=18.3.1" id="react-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1" id="react-dom-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" id="betterdocs-search-modal-js-extra"> /* <![CDATA[ */ var betterdocsSearchModalConfig = {"ajax_url":"https:\/\/www.88531.cn\/wp-admin\/admin-ajax.php","advance_search":"","child_category_exclude":"","popular_keyword_limit":"5","search_letter_limit":"3","search_placeholder":"\u641c\u7d22..","search_button_text":"\u641c\u7d22","search_not_found_text":"Sorry, no docs were found.","kb_based_search":""}; /* ]]> */ </script> <script type="text/javascript" id="betterdocs-search-modal-js-translations"> /* <![CDATA[ */ ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "betterdocs", {"translation-revision-date":"2024-12-10 10:18:35+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=1; plural=0;","lang":"zh_CN"},"FAQ":["\u5e38\u89c1\u95ee\u7b54"],"Docs":["\u6587\u6863"]}},"comment":{"reference":"assets\/shortcodes\/js\/search-modal.js"}} ); /* ]]> */ </script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/betterdocs/assets/shortcodes/js/search-modal.js?ver=bdf2e7264f82ed923d6c" id="betterdocs-search-modal-js"></script> <script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra"> /* <![CDATA[ */ var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":""}; /* ]]> */ </script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.71" id="ez-toc-scroll-scriptjs-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1" id="ez-toc-js-cookie-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2" id="ez-toc-jquery-sticky-kit-js"></script> <script type="text/javascript" id="ez-toc-js-js-extra"> /* <![CDATA[ */ var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>","chamomile_theme_is_on":""}; /* ]]> */ </script> <script type="text/javascript" src="https://www.88531.cn/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.71-1735896586" id="ez-toc-js-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/themes/zibll6.92/js/libs/bootstrap.min.js?ver=6.9.2" id="bootstrap-js"></script> <script type="text/javascript" src="https://www.88531.cn/wp-content/themes/zibll6.92/js/loader.js?ver=6.9.2" id="_loader-js"></script> <script type="text/javascript" src="https://www.vxras.com/wp-content/themes/vxras/js/svg-icon.js?ver=1" id="vxras-icon-js"></script> <!--FOOTER_CODE_START--> <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script>LA.init({id:"3FqUSqYgg4RRwunU",ck:"3FqUSqYgg4RRwunU"})</script> <!--FOOTER_CODE_END--> <script type="text/javascript">var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?225297bceab00c11f86be5cf7eefe4ca"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!--baidu_push_js--> <script type="text/javascript"> (function() { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> <!--baidu_push_js--> <script type="text/javascript"> console.log("数据库查询:109次 | 页面生成耗时:1618.87ms"); </script> </body> </html>