首页
学习
活动
专区
圈层
工具
发布

用python编写一个本地论文管理器

实现 实现这里不想讲太多,主要是设计程序的思路,源代码在文末给出,都有注释。 首先是图形化界面和命令行的选择,最终选择了命令行,开发速度更快,使用起来更直接。...命令行的实现使用python自带的cmd模块实现。...数据存储选择sqlite,因为有数据的查询/插入/删除/更新操作,用数据库比文件要方便很多;而且sqlite是python自己支持的,不用再安装其他软件,属于轻量级的文件数据库,最适合这个任务。...如果输错了,可以把user_set.pkl删掉,重新启动程序即可。我这里程序已经保存路径,所以跳过。...输入新paper的数据 每次启动程序后,程序都会去扫描paper的目录(以及子目录),有扫描到新paper就会提示录入新paper的数据。 ?

1.5K90

python操作sqlite

SQLite是一种轻量级的关系型数据库管理系统,它在Python中的应用非常广泛。本文将介绍如何使用Python操作SQLite数据库,希望能够帮助大家提高数据处理能力。...1.SQLite3简介 SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置。SQLite3支持SQL语句,对数据库的操作简单高效。...上面的代码分配了两个变量,第一个变量db调用了sqlite3.connect,它会连接到文件,这里在括号内告诉Python我们想要命名数据库。...这对数据库来说是必需的,以便为每个条目分配唯一的ID,SQLite会自动增加每个新条目,每次添加新条目时SQLite都会自动将每个条目递增1。(在创建其他表之间的关系时,也需要使用此功能)。..., ('Alice',)) conn.commit() 上述代码分别将学生Alice的年龄更新为26岁,并从表格中删除了名为Alice的记录 总结 SQLite是一种轻量级的嵌入式数据库引擎,适用于各种应用程序

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    抛弃Python,写脚本请使用Rust

    于是,他做了一个所有程序员都会做的事:写一个Python脚本来生成数据库。 然而,很不幸的是,这个脚本非 常 慢。...于是,他又做了一个所有程序员都会做的事:进一步学习关于SQLite、Python以及不知道为什么还有Rust的知识。...SQLite优化 作者认为自己写的代码已经很简练了,并没有什么可以优化的空间。 于是他将下一个目标转到了数据库的优化。 根据各种关于SQLite优化的建议,作者做了一些改进。...莫非是在Python的循环上耗费了太多时间?于是作者删除了SQL指令之后再次跑了一遍代码: 批处理版本在CPython中用时5.5分钟。...IO时间 SQLite论坛上的网友提出了一个有趣的想法:测量内存数据库所需的时间。 于是作者又跑了一遍代码,将数据库的位置设定为「:memory:」,rust版本完成的时间少了两秒(29秒)。

    1.7K20

    新手实战指南:Django 项目结构与启动管理

    在第一次接触 Django 时,很多同学都会被它的“重量感”劝退:明明只是想写个接口,为什么要先创建一整套项目结构?但这恰恰是 Django 的优势所在。...项目创建完成后,第一件事一定是:把服务跑起来,确认环境没问题。...already in use不要慌,这个问题本质只有两种原因:上一次 Django 服务没有正常关闭该端口被其他程序占用解决思路固定不变:用 lsof -i :端口号 查找 LISTEN 状态kill 掉进程重新启动服务五...、Django 项目整体结构一览创建完成后的 Django 项目,结构大致如下:myset/├── manage.py├── db.sqlite3└── myset/    ├── __init__.py...2、 db.sqlite3 —— 默认数据库文件新建项目时不存在第一次 runserver 时自动生成Django 默认数据库在实际项目中,后续通常会替换为 MySQL 或 PostgreSQL。

    34610

    30分钟入门Python操作MySQL

    create database python; 接下来运行上面程序,程序运行结束后将可以看到python数据库中多了2个数据表。如图1所示。 ?...图1 创建数据表 上面程序中①、②、③、④、⑤步的步骤就是Python连接数据库的固定步骤,几乎连接所有数据库大致都是这样几步,程序在第③步执行了2次,每次分别执行一条create语句,因此该程序执行完成后将会看到当前数据库中包含...需要指出的是,此处程序使用execute()方法执行的create语句与前面操作SQLite数据库所使用的create语句略有差异,但这个差异是两个数据库本身所引起的,与Python程序并没有任何关系。...执行DML语句 与使用SQLite数据库模块类似,MySQL数据库模块同样可使用游标的execute()方法也可执行DML语句的insert、update、delete语句,这样即可向数据库插入、修改和删除数据...需要说明是,MySQL数据库模块的连接对象有一个autocommit属性,如果将该属性设为True,那意味着关闭该连接的事务支持,程序每次执行DML语句之后都会自动提交,这样程序就无需调用连接对象的commit

    1.5K20

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    它是一个用模块级别变量表示Django配置的普通Python模块。 Django的默认数据库是SQLite。如果你是数据库初学者,或者你只是想要试用一下Django,SQLite是最简单的选择。...您将在Python代码中使用此值,您的数据库将使用它作为列名称。 您可以使用字段的可选第一个位置参数来指定一个更通俗的名称。这在Django的一些内省部分中使用,它也可以作为文档。...有了这些代码,Django就能够: 为该应用创建数据库表(CREATE TABLE 语句); 为Question对象和Choice对象创建一个访问数据库的python API。...就是使你的数据库模式和你改动后的模型进行同步。 迁移功能非常强大,可以让你在开发过程中不断修改你的模型而不用删除数据库或者表然后再重新生成一个新的 —— 它专注于升级你的数据库且不丢失数据。...如果你不了解Python中时区的处理方法,你可以在时区支持的文档中了解更多的知识 保存修改后,我们重新启动一个新的python shell python manage.py shell,再来看看其他的API

    3.7K60

    小白的发实战心得:踩坑、排错与技术复盘

    三、数据库开发:表结构、迁移与数据目录避坑本项目使用SQLite轻量数据库,搭配better-sqlite3做本地数据持久化,在数据库环节主要遇到两大问题:表结构字段缺失和数据目录混淆。...一开始我习惯性删除数据目录重置数据库,但即便清空旧库、使用全新空库,报错依然存在。排查后发现问题根源:新增字段后,不仅要在数据迁移脚本中添加新增字段语句,初始建表语句也必须同步补充对应字段。...由此总结出数据库迭代规则:每新增、修改数据表字段,必须同时修改两处代码——初始建表语句+数据迁移脚本。如果仅改其一,新旧数据库都会出现兼容问题。第二是数据目录混淆的低级失误。...这里区分两个极易弄混的目录:Electron运行缓存目录:属于程序运行临时缓存,删除后程序可自动重建,不会影响业务数据,但贸然删除会导致启动异常;业务数据目录:存放SQLite数据库文件、附件、正式业务数据...按照这套流程操作后,打包依赖缺失的问题顺利解决。也建议大家养成习惯:每次正式打包前,先清理旧输出文件,保证打包环境干净。

    17010

    Galaxy 生信平台(二):生产环境部署

    原因 默认情况下的 Galaxy 会启用下面的服务: 使用 SQLite (无服务器数据库),因此您无需为快速或基本开发运行/配置额外的数据库服务器。...但是,虽然SQLite 支持并发访问(concurrent access),但它不支持多个并发写入,这会降低系统吞吐量。 使用基于 Python 编写的内置 HTTP 服务器。...如果从 SQLite 开始,然后意识到需要数据库服务器,则需要迁移数据库或重新开始。...安装后,创建一个新用户和该新用户所属的新数据库。无需进一步设置,因为 Galaxy 会管理自己的架构。...这意味着如果重新启动服务器,则会失去与这些作业的联系,并且必须重新启动它们。但是在群集上,如果 Galaxy 服务器重新启动,作业将继续运行并完成。

    2.5K20

    Flutter开发 - 数据持久化

    比如,用户的账号登录信息需要保存,用于每次与 Web 服务验证身份;又比如,下载后的图片需要缓存,避免每次都要重新加载,浪费用户流量。...文档目录则是只有在删除应用程序时才会被清除的目录,通常被用来存放应用产生的重要数据文件。...如果我们需要持久化大量格式化后的数据,并且这些数据还会以较高的频率更新,为了考虑进一步的扩展性,我们通常会选用 sqlite 数据库来应对这样的场景。...SQLite 简介 本教程帮助您了解什么是 SQLite,它与 SQL 之间的不同,为什么需要它,以及它的应用程序数据库处理方式。...SQLite 源代码不受版权限制。 什么是 SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。

    2.2K40

    Build Your Own 智匠系列:第 10 篇 | 数据工作台 — 6 引擎统一抽象与 Python 安全沙箱

    问题:为什么不用DBeaver?DBeaver是优秀的数据库管理工具,但有几个痛点:太重:启动慢、占用高。很多时候你只想对CSV文件跑一条SELECT。...隔离性:子进程崩溃不影响主服务进程超时控制:wait_for(timeout)可以强制终止资源限制:子进程在独立的工作目录中,无法访问服务代码清理简单:shutil.rmtree删除临时目录即可4.3双模式沙箱...每次请求打开连接→执行→关闭,简单可靠。连接池的额外复杂度(健康检查、连接回收、最大连接数)在当前场景下没有收益。踩过的坑坑1:SQLite相对路径解析用户输入的dbPath可能是相对路径(....坑2:Python子进程stdout缓冲区print()的输出默认有缓冲区。如果用户代码print("hello")后立即exit(),输出可能还在缓冲区里,子进程退出时丢失。...CSV/JSON文件DuckDB-WASM浏览器端,零配置本地应用数据库SQLite单文件,零运维生产数据库查询PostgreSQL功能最全日志/事件分析ClickHouse列式存储,聚合快数据分析+可视化

    7810

    Python小白的数据库入门

    前言 SQL数据库 数据库SQL语言入门 SQL简介 SQL 的作用 SQL语句分类 SQLite 数据库 SQLite 中的数据类型 DDL语句 创建表 删除表 修改表 DML语句 添加 删除 修改...查询 Python中的SQLite 操作SQLite 游标对象 Sqlite防注入 数据库可视化 归纳总结 前言 可以毫不夸张的说,不懂数据库,不是真正的程序员。...要注意,我们通常需要在列中指定数据的类型,在行中添加数据,即我们每次添加一条记录,就添加一行,而不是添加一列。对数据库的操作可以概括为就是向数据库中添加、删除、修改和查询数据,其中查询功能最为复杂。...primary key autoincrement, 3 name text not null, 4 number text); 如上所示,在建表语句中增加了一个if not exists的判断,每次运行都会先判断...Python中的SQLite 操作SQLite 操作该数据库的大致步骤就是连接数据库,然后对数据库进行增删改查等操作即可。

    2.8K30

    如何在CentOS 7上使用PostgreSQL和Django应用程序

    介绍 Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。...通过我们的新配置更改,我们需要重新启动服务。...这将加速数据库操作,以便每次建立连接时都不必查询和设置正确的值。 我们将默认编码设置为UTF-8,这是Django所期望的。...这当前配置为使用SQLite作为数据库。我们需要更改它,以便使用我们的PostgreSQL数据库。 首先,更改引擎,使其指向postgresql_psycopg2后端而不是sqlite3后端。...由于我们还没有任何实际数据,这只是设置初始数据库结构: cd ~/myproject python manage.py makemigrations python manage.py migrate 创建数据库结构后

    4.8K00

    android开发之使用SQLite数据库存储

    许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。...@Override public void onCreate(SQLiteDatabase db) { // TODO 创建数据库后...SQLite 会自动为主键列创建索引。 通常情况下,第一次创建数据库时创建了表和索引。如果你不需要改变表的 schema,不需要删除表和索引 ....删除表和索引,需要使用 execSQL() 方法调用 DROP INDEX 和 DROP TABLE 语句。 给表添加数据 上面的代码,已经创建了数据库和表,现在需要给表添加数据。...,parms, null, null, null); 使用游标 不管你如何执行查询,都会返回一个 Cursor,这是 Android 的 SQLite 数据库游标,使用游标,你可以: 通过使用 getCount

    3.7K20

    像对象一样对待数据

    成熟的解决方案就是使用数据库。 估计每个刚刚使用数据库的人都会被坑得遍体鳞伤。对于一个刚刚学会 Python 不久的开发新手来说,使用数据库的 SQL 语句几乎相当于再学一种新的语言。...() people.db 是 SQLite 的数据库文件,如果不存在会自己新建。...peewee.MySQLDatabase('people', host='127.0.0.1', user='root', passwd='', charset='utf8', port=3306) 特别要记住的一点是,代码进行完所有数据库操作后...> 删除数据对象 bob.delete_instance() 顺便说句,一般不建议在数据库里删除数据,因为数据删了就不好找回来了,而且可能还会引发关联数据的报错。...以 SQLite 为例: python -m pwiz -e sqlite people.db > db.py 在你的数据库文件所在路径下执行这条命令,就可以在 db.py 中自动生成代码。 ?

    1.2K20

    #小手一抬学Python# Python 与数据库那点事儿

    Python 操作 SQLite 数据库 认识 SQLite 数据库 ------------------ SQLite 数据库在安装 Python 之后会自动安装到你的电脑上,通过它可以将数据持久的存储在本地电脑中...说真的很多时候不用问为什么的,先上手,后面在补充这些概念类的东西,用数据库在某些场景下是比用文件好的,当然只是在某些场景。 在 Python 中通过 import sqlite3 导入模块。...查询数据库中的表数据 查询语句的 SQL 格式为: select * from 表名 查询 students 表中的数据代码如下: import sqlite3 # 连接到 my_data.db 数据库...conn.close() 使用上述代码即可将数据库中指定表的数据全部读取出来。...`如果你不想删库跑路,那记住一点,当对数据库中任意表执行更新或者删除操作的时候,一定都要写上 where 条件` 这篇博客的总结 ------------ 本篇博客如果是第一次学习 Python 的朋友打开

    1.4K30

    Django model 层之Models与Mysql数据库小结

    Django model 层之Models与Mysql数据库小结 by:授客 QQ:1033553122 测试环境: Python版本:python-3.4.0.amd64 下载地址:https://www.python.org...如果使用SQLite,数据库文件将存放在电脑上,这种情况下,NAME应该为绝对路径,包含数据库文件的文件名。默认值如下,把数据库文件存放在项目根目录下。...TimeField 以python datetime.time实例表示的时间 可选参数: DateField.auto_now 每次存储对象(仅针对调用save方法)时,自动设置该field的值为当前日期...如果是可调用对象,每次创建对象,都会被调用 help_text 同表单组件一起展示的帮助说明 primary_key 如果设置primary_key=True,那么该field将是model的主键 主键...Album代码之前,那么执行以上代码时将报错,因为那会还没有定义Musician,如果不调整代码顺序,即定义表的先后顺序,那怎么办呢?

    3.4K20
    领券