python-Flask_SQLAlchemy(1)
2712 ワード
データベースSQLAlchemy
[TOC]
SQLAlchemy紹介 flashk_sqlalchemyはORMフレームです. ORM(Object Relationsip Mapping):モデル関係マップ、リレーショナルデータベースのテーブル構造をオブジェクトにマッピングする ORMの利点: データアクセスの詳細を隠し、開発効率を高める 構造データ構造が簡単になりました.
ORMの欠点: 実行効率を低下させ、学習コストを増加させる. 複雑なクエリができませんでした.
接続と初期化の設定 config.pyファイルにプロファイル情報を追加する 導入用flashk_sqlalchemyのSQLAlchemyを初期化し、プロファイル を導入する.
config.py
[TOC]
SQLAlchemy紹介
#
# dialect+driver://username:password@host:port/database
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'Jyang'
PASSWORD = 'yj19930621+-*/'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'jsql'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(
DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False #
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config) #
db = SQLAlchemy(app) #
db.create_all() # ( , , )
実例config.py
# encoding: utf-8
DEBUG = True
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'Jyang'
PASSWORD = 'yj19930621+-*/'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'jsql'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(
DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
main.pyfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__) #
app.config.from_object(config)
db = SQLAlchemy(app)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key= True, autoincrement = True)
username = db.Column(db.String(100), nullable = False)
#
class Article(db.Model): # db.Model
#db.Column ,primary_key ,autoincrement ,nullable ( True)
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key= True, autoincrement = True)
title = db.Column(db.String(100),nullable = False)
content = db.Column(db.Text, nullable = False)
author_id = db.Column(db.Integer,db.ForeignKey('user.id'))# user id
# ,'User'
author = db.relationship('User',backref=db.backref('article'))
db.create_all()
@app.route('/')
def hello_world():
return "hello world"
if __name__ == '__main__':
app.run()