기본 콘텐츠로 건너뛰기

Python Flask SQL 연동하기


설치
!pip install flask_sqlalchemy
!pip install cx_Oracle

예제
%%writefile crud.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask import request
from flask import jsonify

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
oracle ='oracle+cx_oracle://scott:TIGER@localhost:1521/?service_name=XE'
app.config['SQLALCHEMY_DATABASE_URI'] = oracle

db = SQLAlchemy(app)

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80),nullable=False)
    content = db.Column(db.Text,nullable=False)
    
    def to_json(self):
        return {
            'id':self.id,'title':self.title,'content':self.content
        }

@app.route('/add',methods=['POST'])
def add_post():
    jsdata = request.get_json()
    post = Post(id=jsdata['id'],title=jsdata['title'],content=jsdata['content'])
    db.session.add(post)
    db.session.commit()
    print('데이터베이스에 저장성공')
    return jsonify(post.to_json())

@app.route('/read/<int:num>')
def read_post(num):
    post = Post.query.get(num)
    return jsonify(post.to_json())

@app.route('/read/<title>')
def read_post_byTitle(title):
    post = Post.query.filter(Post.title==title).first()
    return jsonify(post.to_json())

@app.route('/list')
def list_post():
    posts = Post.query.all()
    return jsonify([post.to_json() for post in posts])

@app.route('/update/<int:num>/<content>')
def update_post(num,content):
    post = Post.query.get(num)
    post.content = content
    db.session.commit()
    print('업데이트 성공')
    return jsonify(post.to_json())

@app.route('/delete/<int:num>')
def delete_post(num):
    post = Post.query.get(num)
    db.session.delete(post)
    db.session.commit()
    print('삭제 성공')
    return jsonify(post.to_json())

app.run(host='0.0.0.0',debug=True,port=7777)

이 블로그의 인기 게시물

Python 인공신경망 추천 시스템(회귀)

예제 # 인공신경망을 이용한 추천 시스템 # - 순차형(Sequential) 신경망 생성법 # - 함수형(Functional) 신경망 생성법 # - 지금까지 나온 추천 방식 중에서 가장 좋은 성능 # - Regression 방식으로 분석가능 # - 영화의 평점 정보(userid, movieid, rating) # - 이용자는 영화에 대한 취향이 모두 다르다 # - 영화는 다양한 장르가 혼합되어 있다 # - 이용자는 자신의 취향에 맞는 영화에 높은 rating을 제시함 # - 어떤 이용자에게 어떤 장르의 영화를 추천할 것인가? # __call__() 함수를 가진 클래스는 파이썬 함수 callable(클래스)를 사용하면 True를 반환한다 from tensorflow.keras.models import Sequential, Model from tensorflow.keras.layers import Dense, Embedding, Input input = Input(shape=(1,)) # 함수형 신경망 생성법 hidden1 = Dense(2, activation='relu')(input) # Dense(2, activation='relu')__call__() hidden2 = Dense(2, activation='relu')(hidden1) # callable.object callable(Dense) # __call__ 함수가 있으면 True, 없으면 False # Using Functional API from keras.models import Sequential from keras.layers import * model = Sequential() model.add(Input(shape=(3,))) # Input tensor model.add(Dense(4)) # hidden layer 1 model.add(Dense(units=4)) # hidden layer 2 model.add(Dense(units=1)) # ou...

Blogger

코드 하이라이트 사이트 http://hilite.me/ 코드 <!-- 나만의 공간 --> <style id='daru_css' type='text/css'> .code {      overflow: auto;      height: 200px;      background-color: rgb(239,239,239);      border-radius: 10px;      padding: 5px 10px; } .code::-webkit-scrollbar-thumb {      background-color: grey;      border: 1px solid transparent;      border-radius: 10px;      background-clip: padding-box;   } .code::-webkit-scrollbar {      width: 15px; } </style> <!-- 나만의 공간 -->

Javascript on 함수

엔터키 감지하기 <input type="password" onkeypress="func(event)" /> function func(event) {      if(event.keyCode == 13) { // keyCode 13은 엔터이다           alert("엔터를 입력했습니다.");     }     if (event.tartget.value == 13) {          alert("엔터를 입력했습니다.");     } }