0
3

More than 3 years have passed since last update.

【SQLAlchemy】Flask+PythonでのDB連携にはSQLAlchemyがめっちゃ便利だった【Flask】

Last updated at Posted at 2019-11-29

結論

インストールするもの

pip install flask SQLAlchemy flask-sqlalchemy PyMySQL

次にPythonコード

dbcreate.py
# coding:utf-8
from flask import Flask, request, abort
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

#データベースの設定
sql_type, username, password, host, dbname = "", "", "", "", ""#ここは各自で埋めてください。
url = sql_type+"://"+username+":"+password+"@"+host+"/"+dbname
app.config["SQLALCHEMY_DATABASE_URI"] = url
db = SQLAlchemy(app)


class user(db.Model):#一般ユーザー用データベース
    __tablename__ = "user"
    user_id = db.Column(db.String(80), primary_key=True)
    username = db.Column(db.String(255))
    usermessage = db.Column(db.String(255))
    step = db.Column(db.Integer)
    status = db.Column(db.String(255))
    retention = db.Column(db.String(255))
    requested_at = db.Column(db.String(255))

    def __init__(self, user_id, step, retention, requested_at):
        self.user_id = user_id
        self.step = step
        self.retention = retention
        self.requested_at = requested_at

    def __repr__(self):
        return '<user %r>' % self.user_id

ここから、ターミナルで作業します。

python
>>from dbcreate import db
>>db.create_all()
>>exit()

操作:一斉にコミット

reg = user(user_id, None, None, None, 0, "start", None, None)
db.session.add(reg)
db.session.commit()

操作:プライマリーキーを使って一部のみ編集

user = db.session.query(user).filter_by(user_id=user_id).first()
user.step = 100
user.status = "ok"
db.session.add(user)
db.session.commit()

こんな感じ

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3