SqlAlchemy操作(二)
SQLALchemy初始化链接数据库
1. 数据库配置.
https://www.cnblogs.com/mengbin0546/p/10124560.html
2. python端操作.
一、 代码:
from django.shortcuts import render # Create your views here. from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column
from sqlalchemy.types import String,Integer
from sqlalchemy.ext.declarative import declarative_base #创建数据库连接,max_overflow 指定最大连接数.
engine =create_engine("mysql+pymysql://root:123456@132.232.55.209:3306/db1",) DBSession =sessionmaker(engine) #创建DBSession类型 session =DBSession()#创建session对象. BaseModel=declarative_base()#创建对象的基类. class User(BaseModel): #定义User对象
__tablename__ ="user1" #创建表,指定表名称.
#指定表结构
id = Column(String(10),primary_key=True)
username =Column(String(10),index=True) # class Session(BaseModel):
# __tablename__ ="session1"
# id =Column(String(10),primary_key=True)
# user =Column(String(10),index=True)
# ip =Column(String(10)) # 创建表,执行所有BaseModel类的子类create_all,进行创建表
# BaseModel.metadata.create_all(engine) # 删除表,执行drop_all 方法进行删除表.
BaseModel.metadata.drop_all(engine) session.commit() #提交
执行后在数据库中查看:
MariaDB [db1]> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| mengbin |
| session |
| users |
+---------------+
3 rows in set (0.00 sec)
二、数据库增删改查.
#1. 增加
# (方法一)
# user_obj =User(id =1,username ="wupeiqi")
# session.add(user_obj)
# session.commit() #(方法二)
# session.add_all([User(id =3,username="san"),
# User(id =4,username="si"),
# ])
# session.commit() #2.删除.
# session.query(User).filter(User.id >=3).delete()
# session.commit() #3.修改
session.query(User).filter(User.id ==1).update({"username" :"helloworld"})
session.commit() #4.查询.
obj = session.query(User).filter(User.id==1)
print("obj",obj)
obj1= session.query(User).filter(User.id>=1).all()
print("obj1",obj1)
for i in obj1:
print(i.username) 4.查询结果: obj SELECT user1.id AS user1_id, user1.username AS user1_username FROM user1 WHERE user1.id = %(id_1)s
obj1 [<__main__.User object at 0x00000065D55BC278>, <__main__.User object at 0x00000065D55BC2E8>, <__main__.User object at 0x00000065D55BC358>]
三、ORM操作数据库,通过delect执行sql语句.
from sqlalchemy import create_engine
#创建引擎
engine = create_engine("mysql+pymysql://root:dadmin01@127.0.0.1:3306/meng", max_overflow=5)
print(engine) # 打印结果: Engine(mysql+pymysql://root:***@127.0.0.1:3306/meng) #操作添加数据sql语句方法1
engine.execute("INSERT INTO bin (name) VALUES ('33')") #操作添加数据sql语句方法2
engine.execute("INSERT INTO bin (name) VALUES ( %s)",(( "v1",),( "v1",),)) #操作查询数据sql语句(有返回值)
result = engine.execute("select * from bin")
print(result) #(<sqlalchemy.engine.result.ResultProxy object at 0x00000097CF9B6E48>
res =result.fetchall() #查询所有结果;
print(res) #[('dd',), ('dd',), ('dd',), ('dd',), ('sdfs',), ('sdfs',), ('sdfs',), ('sdfs',),]

四、使用__repr__定义返回的数据
class TableTest(BaseModel):
__tablename__ ="tabletest"
nid = Column(Integer,primary_key=True,autoincrement=True)
name =Column(String(10),nullable=False)
role =Column(Integer) def __repr__(self):
output ="(%s,%s,)"%(self.nid,self.name)
return output #创建表,执行所有BaseModel类的子类,进行创建表
BaseModel.metadata.create_all(engine) res =session.query(TableTest).all() print("res",res)

SqlAlchemy操作(二)的更多相关文章
- flask 操作mysql的两种方式-sqlalchemy操作
flask 操作mysql的两种方式-sqlalchemy操作 二.ORM sqlalchemy操作 #coding=utf-8 # model.py from app import db class ...
- Python之Mysql及SQLAlchemy操作总结
一.Mysql命令总结 1.创建库 create database test1; 2.授权一个用户 grant all privileges on *.* to 'feng'@'%' identifi ...
- {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作
MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...
- Python3.x:SQLAlchemy操作数据库
Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...
- GIS基础软件及操作(二)
原文 GIS基础软件及操作(二) 练习二.管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 ...
- 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询
MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...
- PHP操作 二维数组模拟mysql函数
PHP操作 二维数组模拟mysql函数<pre>public function monimysqltest(){ $testarray=array( array('ss'=>'1', ...
- JNI操作二维数组
之前的文章讲解了有关JNI使用方法,这篇文章进阶一点,介绍下JNI操作二维数组的方法.有了之前文章的操作JNI的方法,这里直接上代码了. Java代码部分 package com.testjni; p ...
- SQLAlchemy(二):SQLAlchemy对数据的增删改查操作、属性常用数据类型详解
SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 目录 SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 1.用se ...
随机推荐
- mybatis框架入门程序:演示通过mybatis实现数据库的查询操作
我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html”这篇博文. 1.mybatis下载 mybatis的代码由githua ...
- 大乐透 Java随机码
package suijishu; import java.util.Random; // TODO Auto-generated method stub public class Xuanqi { ...
- cmake重新编译
删除文件夹下的文件 rm CMakeCache.txt 重新编译即可 安装g++ yum install gcc-c++
- laravel-excel文档翻译笔记
1.安装 1>composer 安装 "maatwebsite/excel": "~2.1.0" 2>app/config/ap ...
- ANT发送邮件需要的3个JAR包
ANT发送邮件需要的3个JAR包:activation.jar.mail.jar.commons-email-1.2.jar 将这三个jar包放到 $ANT_HOME/LIB 路径下即可 内网发送邮件 ...
- 并发编程(三)Promise, Future 和 Callback
并发编程(三)Promise, Future 和 Callback 异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这 ...
- OSGi 系列(十三)之 Configuration Admin Service
OSGi 系列(十三)之 Configuration Admin Service OSGi 的 CM 就是 Configuration Admin Service,是用于管理 Bundle 属性.并在 ...
- Python3 urllib库和requests库
1. Python3 使用urllib库请求网络 1.1 基于urllib库的GET请求 请求百度首页www.baidu.com ,不添加请求头信息: import urllib.requests d ...
- scrapy官方安装方法
安装依赖 sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libss ...
- IDEA SpringBoot Deprecated configuration property ‘server.servlet-path’
错误样式如图所示.说我这个版本中的这个标签是过时的. 解决: 出现这个问题后,这个标签被IDEA化成了黄线,同时,想使用server.servlet-path=*.html,配置servlet路径跳转 ...