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操作(二)的更多相关文章

  1. flask 操作mysql的两种方式-sqlalchemy操作

    flask 操作mysql的两种方式-sqlalchemy操作 二.ORM sqlalchemy操作 #coding=utf-8 # model.py from app import db class ...

  2. Python之Mysql及SQLAlchemy操作总结

    一.Mysql命令总结 1.创建库 create database test1; 2.授权一个用户 grant all privileges on *.* to 'feng'@'%' identifi ...

  3. {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作

    MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...

  4. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

  5. GIS基础软件及操作(二)

    原文 GIS基础软件及操作(二) 练习二.管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 ...

  6. 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询

    MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...

  7. PHP操作 二维数组模拟mysql函数

    PHP操作 二维数组模拟mysql函数<pre>public function monimysqltest(){ $testarray=array( array('ss'=>'1', ...

  8. JNI操作二维数组

    之前的文章讲解了有关JNI使用方法,这篇文章进阶一点,介绍下JNI操作二维数组的方法.有了之前文章的操作JNI的方法,这里直接上代码了. Java代码部分 package com.testjni; p ...

  9. SQLAlchemy(二):SQLAlchemy对数据的增删改查操作、属性常用数据类型详解

    SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 目录 SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 1.用se ...

随机推荐

  1. mybatis框架入门程序:演示通过mybatis实现数据库的查询操作

    我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html”这篇博文. 1.mybatis下载 mybatis的代码由githua ...

  2. 大乐透 Java随机码

    package suijishu; import java.util.Random; // TODO Auto-generated method stub public class Xuanqi { ...

  3. cmake重新编译

    删除文件夹下的文件 rm CMakeCache.txt 重新编译即可 安装g++ yum install gcc-c++

  4. laravel-excel文档翻译笔记

    1.安装      1>composer 安装 "maatwebsite/excel": "~2.1.0"      2>app/config/ap ...

  5. ANT发送邮件需要的3个JAR包

    ANT发送邮件需要的3个JAR包:activation.jar.mail.jar.commons-email-1.2.jar 将这三个jar包放到 $ANT_HOME/LIB 路径下即可 内网发送邮件 ...

  6. 并发编程(三)Promise, Future 和 Callback

    并发编程(三)Promise, Future 和 Callback 异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这 ...

  7. OSGi 系列(十三)之 Configuration Admin Service

    OSGi 系列(十三)之 Configuration Admin Service OSGi 的 CM 就是 Configuration Admin Service,是用于管理 Bundle 属性.并在 ...

  8. Python3 urllib库和requests库

    1. Python3 使用urllib库请求网络 1.1 基于urllib库的GET请求 请求百度首页www.baidu.com ,不添加请求头信息: import urllib.requests d ...

  9. scrapy官方安装方法

    安装依赖 sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libss ...

  10. IDEA SpringBoot Deprecated configuration property ‘server.servlet-path’

    错误样式如图所示.说我这个版本中的这个标签是过时的. 解决: 出现这个问题后,这个标签被IDEA化成了黄线,同时,想使用server.servlet-path=*.html,配置servlet路径跳转 ...