100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자

Day 85 - python database 연동하기 (1) mysql

ksyke 2024. 11. 28. 12:45

데이터베이스 테이블 만들고 수정,삭제,읽기

import sqlite3
conn=sqlite3.connect('data01.db')

print(conn)
cur=conn.cursor()

cur.execute('drop table dept')
cur.execute('''create table dept(
                            deptno int primary key,
                            dname varchar(10),
                            loc varchar(10)
                            )''')
cur.execute("insert into dept values (1111,'test1','test')")

arr=[
    (2222,'test2','test'),
    (3333,'test3','test'),
    (4444,'test4','test'),
    (5555,'test5','test'),
]
for row in arr:
    cur.execute("insert into dept values ({},'{}','{}')".format(row[0],row[1],row[2]))

cur.execute("insert into dept values (?,?,?)",(6666,'test6','test'))

conn.commit()
cur.execute("update dept set loc='테스트 지역' where deptno=2222")
cur.execute("delete from dept where deptno=3333")
conn.commit() #conn.rollbac()

cur.execute('select * from dept')
result01=cur.fetchall()
print(result01)
cur.execute('select * from dept where deptno=2222')
result02=cur.fetchone()
print(result02)

conn.close()

데이터베이스 접속하기

import mysql.connector as mydb

conn=mydb.connect(
  host="localhost",
  user="scott",
  password="tiger"
)
cur=conn.cursor()
cur.execute('create database testdb2')
cur.execute('show databases')

for x in cur:
  print(x)

conn.close()
import mysql.connector as mydb

conn=mydb.connect(
  host="localhost",
  user="scott",
  password="tiger",
  database="xe"
)
cur=conn.cursor()

cur.execute('show tables')
for row in cur:
  print(row)
print('#'*50)

print(cur.rowcount)

# cur.execute("insert into dept values ({},'{}','{}')".format(51,'test','test'))
# cur.execute("insert into dept values (%(deptno)s,%(dname)s,%(loc)s)",{
#     'deptno':52,'dname':'test52','loc':'test'
# })
conn.commit()

cur.execute('select * from dept')
# for row in cur:
#   print(row)
result01=cur.fetchall()
print(result01)

conn.close()

Oracle database 사용하기 

가상환경 사용하기 

Pycharm 다운로드

https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows

 

PyCharm 다운로드: 데이터 과학 및 웹 개발을 위해 JetBrains가 만든 Python IDE

 

www.jetbrains.com

python으로 서버 만들기

from http.server import HTTPServer,BaseHTTPRequestHandler
import io

class MyRequestHandler(BaseHTTPRequestHandler):
    def __init__(self, request, client_address, server):
        super().__init__(request, client_address, server)

    def do_GET(self):
        # print(dir(self))
        print(self.requestline)
        self.send_response(200)
        self.end_headers()
        # idx=io.FileIO('index.html')
        # self.wfile.write(idx.readall())
        self.wfile.write(bytes('hello world',encoding='utf-8'))
        

def run(server_class=HTTPServer, handler_class=MyRequestHandler):
    server_address=('',8080)
    httpd=server_class(server_address,handler_class)
    httpd.serve_forever()

if __name__=='__main__':
    run()

fast api

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

import fastapi

app=fastapi.FastAPI()

@app.get('/')
def index():
    print('index call...')

decorator 사용하기

def func00(msg):
    def func01(f):
        def func02():
            print('before',msg)
            f()
            print('after')
        return func02
    return func01

# func01(lambda :print('test'))()

@func00('val')
def func03():
    print('func03 run')

func03()