python:运用sqlalchemy连接postgres数据库

2023-10-26

python:运用sqlalchemy连接postgres数据库

sqlalchemy是一个数据库框架,具体作用可以百度
简介:SQLAlchemy 是一个Python 的SQL 工具包以及数据库对象映射框架。它包含整套企业级持久化模式,专门为高效和高性能的数据库访问。
ORM操作是所有完整软件中后端处理最重要的一部分,主要完成了后端程序和数据库之间的数据同步和持久化的操作。

注意的地方:postgres中:char varchar text 三个字段类型的区别
更详细的介绍三者区别

名字 描述
char 定长,不足补空白
vatchar 变长,有长度限制
text 变长,无长度限制

这里推荐都用变长,定长如果你没填满的话,你按关键字搜索会搜索不到的,因为会补空格,导致你的关键字可能会添加空格

注意区分数据库和表的区别
还要注意的是创建表的对象的时候,如果该数据库没有这个表,他就会自动帮你建立,如果有这个表则就使用这个表就行。

from sqlalchemy import Column, String, create_engine, Integer, Text
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import time

# 创建对象的基类:
Base = declarative_base()

"""
如果数据库没有表,会帮你建好的
"""
# 定义User对象:
class User(Base):
    # 表的名字:
    __tablename__ = 'id_info'

    # 表的结构:
    id = Column(Integer, autoincrement=True, primary_key=True, unique=True, nullable=False)
    name = Column(String(50), nullable=False)
    sex = Column(String(4), nullable=False)
    nation = Column(String(20), nullable=False)
    birth = Column(String(8), nullable=False)
    address = Column(Text, nullable=False)
    id_number = Column(String(18), nullable=False)
    creater = Column(String(32))
    create_time = Column(String(20), nullable=False)
    updater = Column(String(32))
    update_time = Column(String(20), nullable=False, default=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
                         onupdate=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    image_path = Column(String(200))
    comment = Column(String(200))


# 初始化数据库连接:
engine = create_engine('postgres+psycopg2://postgres:123@192.168.0.104:5432/postgres')  # 用户名:密码@localhost:端口/数据库名
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)
# 创建表
Base.metadata.create_all(engine)


"""
#插入操作
#创建会话
"""
session = DBSession()
# 创建新User对象:
local_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
new_user = User(name='hsh4', sex='男', nation='汉', birth='19991012', address='广州大学', id_number='441242142142',
                image_path='C:\新建文件夹\Bin\QQScLauncher.exe',
                create_time=local_time)
# 添加到session:
session.add(new_user)
# 提交即保存到数据库:
session.commit()
# 关闭session:
session.close()


# 查询操作
# # 创建Session
# session = DBSession()
# # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:
# user = session.query(User).filter(User.id == '1').one()
# print('name:', user.name)
# print('id_address:', user.id_address)
# session.close()  # 关闭Session


# # 更新操作
# session = DBSession()  # 创建会话
# users = session.query(User).filter_by(name="hsh4").first()  # 查询条件
# users.id_number = "fegegegg"  # 更新操作
# session.add(users)  # 添加到会话
# session.commit()  # 提交即保存到数据库
# session.close()  # 关闭会话
#
# # 删除操作
# session = DBSession()  # 创建会话
# delete_users = session.query(User).filter(User.name == "hsh4").first()
# if delete_users:
#     session.delete(delete_users)
#     session.commit()
# session.close()  # 关闭会话

了解更多orm可以看ORM介绍

本文仅供参考,希望对大家有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python:运用sqlalchemy连接postgres数据库 的相关文章

  • 为什么 urllib2 出现 urllib2.HTTPError 而 urllib 没有错误?

    我有以下简单的代码 import urllib2 import sys sys path append BeautifulSoup BeautifulSoup 3 1 0 1 from BeautifulSoup import page h
  • 理解Python中的元类和继承[重复]

    这个问题在这里已经有答案了 我对元类有一些困惑 具有继承性 class AttributeInitType object def init self kwargs for name value in kwargs items setattr
  • 缺少 python 配置

    我正在安装一个程序 需要安装 python config 唯一的问题是我目前没有 python config 而且我似乎不知道如何获取它 经过搜索后 我应该可以通过以下方式安装它 yum install python devel 然而 这样
  • 以类似字典的方式将新项目添加到某些结构化数组中

    我想扩展 numpy 中的结构化数组对象 以便我可以轻松添加新元素 例如 对于一个简单的结构化数组 gt gt gt import numpy as np gt gt gt x np ndarray 2 dtype names A B fo
  • 箱线图与箱线图有何不同?

    我想知道当我们在海生图书馆中有箱线图时为什么会有箱线图 我知道一件事是箱线图优化了表示数据的方式 特别是对于大型数据集 但我不知道为什么 除此之外 我没有任何充分的理由使用箱线图 箱线图将中位数显示为中心线 第 50 个百分位数 然后将第
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • Python:如何删除圆括号内的文本?

    我试过了 但没用 return re sub myResultStats text 建议 thanks 尝试这个 return re sub myResultStats text 括号表示捕获组 因此您必须转义它们
  • 使用 asyncore 读取网站

    我想异步阅读一个网站 据我所知 这是不可能的 urllib 现在我尝试使用普通套接字进行阅读 但是 HTTP 给我带来了麻烦 我遇到了各种时髦的编码 例如传输编码 分块 必须手动解析所有这些东西 我现在想编码 C 而不是 python 难道
  • 使用python同时播放两个正弦音

    我正在使用 python 来播放正弦音 音调基于计算机的内部时间 以分钟为单位 但我想根据秒同时播放一个音调 以获得和谐或双重的声音 这就是我到目前为止所拥有的 有人能指出我正确的方向吗 from struct import pack fr
  • 从文件中读取单词并放入列表中

    本质上 我有一个巨大的文件 所有文件包含每行多个单词 每个单词用空格分隔 有点像这样 WORD WORD WORD WORD ANOTHER WORD SCRABBLE BLAH YES NO 我想要做的是将文件中的所有单词放入一个巨大的列
  • __subclasses__ 没有显示任何内容

    我正在实现一个从适当的子类返回对象的函数 如果我搬家SubClass from base py 没有出现子类 subclasses 它们必须在同一个文件中吗 也许我从来没有直接导入subclass py对Python隐藏子类 我能做些什么
  • 在 Python 中将 int 转换为 ASCII 并返回

    我正在为我的网站制作一个 URL 缩短器 我当前的计划 我愿意接受建议 是使用节点 ID 来生成缩短的 URL 因此 理论上 节点 26 可能是short com z 节点 1 可能是short com a 节点 52 可能是short c
  • 如何从列表中删除“\xe2”

    我是 python 新手 正在使用它在我的项目中使用 nltk 对从网页获得的原始数据进行单词标记后 我得到了一个包含 xe2 xe3 x98 等的列表 但是我不需要这些并想删除它们 我只是尝试过 if x in a and if a st
  • NumPy 数组不可 JSON 序列化

    创建 NumPy 数组并将其保存为 Django 上下文变量后 加载网页时收到以下错误 array 0 239 479 717 952 1192 1432 1667 dtype int64 is not JSON serializable
  • Windows 10 上的 Tensorflow 安装问题

    我正在尝试在 Win 10 计算机上安装 Tensorflow 我成功安装了Python 3 7 然后尝试按照tensorflow org上的安装说明进行操作 执行时 pip install tensorflow 我收到以下错误消息 错误
  • 如何在特定时间启动Tornado周期性回调?

    目前在我的 Tornado 应用程序中 我正在使用定期调用回调PeriodicCallback每隔一小时 像这样 import tornado ioloop from tornado ioloop import PeriodicCallba
  • 使用 PuLP 进行线性优化,变量附加条件

    我必须用 Pull 解决 Python 中的整数线性优化问题 我解决了基本问题 现在我必须添加额外的约束 有人可以帮助我用逻辑指示器添加条件吗 逻辑限制是 如果 A gt 20 则 B gt 5 这是我的代码 from pulp impor
  • 继承自 NumPy 数组的类如何更改其自身的值?

    我有一个继承自 NumPy n 维数组的简单类 我想要该类的两个方法可以更改该类实例的数组值 其中一种方法应将类实例的数组设置为类实例的列表数据属性的值 另一种方法应将一些列表值附加到类实例的数组中 我不确定如何实现这一点 但我的尝试如下
  • 应用程序的外观 - Py2exe / wxPython

    所以我的问题是我的应用程序的外观和感觉 因为它看起来像一个旧的外观应用程序 它是一个 wxPython 应用程序 在 python 上它运行良好并且看起来不错 但是当我使用 py2exe 将其转换为 exe 时 外观很糟糕 现在我知道如果你
  • 如何访问模板缓存? - 姜戈

    I am 缓存 HTML在几个模板内 例如 cache 900 stats stats endcache 我可以使用以下方式访问缓存吗低级图书馆 例如 html cache get stats 我确实需要对模板缓存进行一些细粒度的控制 有任

随机推荐

  • 高德离线地图vue-amap的api文档(2):创建地图,撒点等等

    前言 高德离线地图的使用场景还是很多的 但是他的api在国外 想参考api对网络差的朋友来说不是一件容易的事 对我来说一样 在这里整理下他的api内容 注 本文是将官网api挪动出来 网好的童鞋想看原版的请点击官网入口 目录 十七 搜索框
  • UE4 实现拖尾和车辆轨迹效果

    本文主要讲解如何实现类似车辆拖尾以及车辆轨迹的效果 1 创建蓝图BP Spline 2 创建材质和两个材质实例 3 创建蓝图BP Car Timeline设置 SplineMesh设置 4 将BP Car丢到世界场景内进行测试 并在关卡蓝图
  • 公司使用了 6 年的Spring Boot 项目部署方案,打包 + Shell 脚本部署详解,稳的一批

    本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署 重点在分享一个shell 程序启动工具 希望能便利工作 profiles指定不同环境的配置 maven assembly plugin打发布压缩包 分享she
  • 三层交换机静态路由配置实现两网互通

    一 目标 两个交换机上属于不同网络 现通过静态路由配置 实现两网互通 二 网络示意图 三 配置流程 1 对两个交换机进行vlan划分 分别加入vlan100 2 分别将两交换机的1 4接口划分到vlan100 3 分别给两交换机的4个vla
  • mingw离线安装以及配置pacman源

    前提 win10 64 vs至少16 由于网络原因 mingw无法下载国内或者国外任何源 显示timeout 在经过一番倒腾之后 mingw工具本质可以当作一个虚拟的archlinux环境用 从官网下载mingw http www msys
  • SQL注入之联合查询和报错注入

    联合查询 联合查询就是利用SQL 语句union select union select 会把两条SQL 语句的查询结果拼接起来 形成一张虚拟的表 联合查询会实现跨库跨表查询 会极大减少SQL 注入的成本 联合查询有两个限制条件 两条SQL
  • 云媒易:提高小红书推广效果的3大核心玩法

    做小红书的产品投放 相信大家考虑的都是用更低的成本去取得最大的效果 那么我们在小红书做推广时 应该怎么掌握投放效果呢 想要掌握小红书的投放效果 掌握它的核心玩法是关键 小红书推广投放三大核心 KOL 内容 节奏 一 KOL 很多人觉得 种草
  • 【golang/go语言】Go语言之反射

    本文参考了李文周的博客 Go语言基础之反射 一 反射初识 1 什么是反射 在计算机科学中 反射是指计算机程序在运行时 run time 可以访问 检测和修改它本身状态和行为的一种能力 用比喻来说 反射就是程序在运行的时候能够观察并修改自己的
  • 修改apache服务器默认的端口号,关于apache:Apache修改默认端口

    Apache批改默认端口 1 批改配置文件 1 批改 etc apache2 ports conf 将 NameVirtualHost 80 Listen 80 改为本人须要的端口 NameVirtualHost 9000 Listen 9
  • 基于深度学习的岩石样本智能识别研究——第九届“泰迪杯”挑战赛B题优秀作品

    1 前言 1 1 研究背景 岩石是现代建筑业和制造业的重要原材料 除了作为原材料使用以外 还可以对其进行勘探开发挖掘岩油气藏 若能智能且准确地识别岩石岩性 计算岩石含油量 这将会是一笔巨大的社会财富 天然岩石有多种来源和用途 根据其不同的特
  • keil安装GD32 pack包安装不上 不显示 没有了

    今天移植STM32F4的代码到GD32F4上 发现pack包安装不上去 下图列表中 找不到GigaDevice 而是一堆其它厂家芯片 解决方法 找到GD32F4xx AddOn V2 2 0 rar 安装其中的文件即可 可根据GD型号自行下
  • 信号完整性分析基础知识之传输线和反射(七):带负载传输线、感性不连续引起的反射

    带负载传输线 如果在传输线上有一个小的容性负载 信号会出现失真 上升时间也会降低 每个分立电容都会降低信号在其附近看到的阻抗 如果传输线上分布有多个容性负载 例如一个总线上每隔1 2inch有一个2pF的连接器残桩 或者一个内存总线上每隔0
  • 08Nginx源码分析之单向链表结构(ngx_list.c)

    一 单向链表结构 Nginx的list单向链表的结构和Nginx的数组结构Array有点类似 总体来说 数据结构也是非常简单清晰的 1 ngx list t 链表结构 ngx list t是管理链表的结构 包含以下成员 链表结构 typed
  • 创建型模式1——单例模式

    学习完C 的静态成员的相关知识 我们先来了解设计模式中最简单的一种 单例模式 单例模式的动机 对于一个软件系统的某些类而言 我们没有必要创建多个实例化对象 就比如Windows系统的任务管理器或回收站 我们无论点击多少次都只会弹出一个窗口
  • Linux服务使用宝塔面板搭建网站,并发布公网访问

    文章目录 前言 1 环境安装 2 安装cpolar内网穿透 3 内网穿透 4 固定http地址 5 配置二级子域名 6 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板 它支持Linux Windows系统 我们可用它来一键
  • matlab的零极点分布图,matlab零极点分布图

    Matlab中绘制零极点 数学 自然科学 专业资料 ZPLANE Z plane 由连续时间系统和 离散时间系统系统函数求频率响应 绘制零极点图并使用零极点 图判断系统稳定性 感受到了使用 matlab 分析这些内容的简便 进一步掌握了 m
  • C++ 多线程

    多线程是多任务处理的一种特殊形式 多任务处理允许让电脑同时运行两个或两个以上的程序 一般情况下两种类型的多任务处理 基于进程和基于线程 基于进程的多任务处理是程序的并发执行 基于线程的多任务处理是同一程序的片段的并发执行 多线程程序包含可以
  • 组合问题1

    给出1到n的n个数 返回k个数组合 输入n 4 k 2 输出 1 2 1 3 1 4 2 3 2 4 3 4 include
  • 分布式锁的应用

    package com itheima utils import org slf4j Logger import org slf4j LoggerFactory import org springframework dao DataAcce
  • python:运用sqlalchemy连接postgres数据库

    python 运用sqlalchemy连接postgres数据库 sqlalchemy是一个数据库框架 具体作用可以百度 简介 SQLAlchemy 是一个Python 的SQL 工具包以及数据库对象映射框架 它包含整套企业级持久化模式 专