flask와 sqlite3 연결
3553 단어 Python3Flask파이썬sqlite3sqlalchemy
소개
Flask를 사용하여 1에서 응용 프로그램을 만들고 필요한 기술을 배울 수 있도록 정리하고 있습니다.
database에 액세스
데이터베이스 설치 및 설정
이번에는 SQLite를 사용합니다.
※ mac는 기본적으로 설치되어 있습니다.
※ windows의 분은 여기 에서 인스톨 해 주세요.
설정은 여기을 참조하십시오.
$ sqlite3 -version
3.28.0 ...
또한 이번에 사용할 ORM(Object Relational Mapper)을 설치합니다.
# mac
$ pip3 install Flask-SQLAlchemy
# windows
$ pip install Flask-SQLAlchemy
src/__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config["SECRET_KEY"] = b'_5#y2L"F4Q8z\n\xec]dasfe/'
app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///flask_blog.db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db = SQLAlchemy(app)
import src.views
모델 정의
이번 작성하는 것은 블로그이므로, 타이틀·본문이 있어, 투고 일시도 데이타베이스로 관리합니다.
새로 src 디렉토리에 "models"를 만들고 "entires.py"를 만듭니다.
src/models/entry.py
from src import db
from datetime import datetime
class Entry(db.Model):
__tablename__ = 'entries'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(50), unique=True)
text = db.Column(db.Text)
create_at = db.Column(db.DateTime)
def __init__(self, title=None, text=None):
self.title = title
self.text = text
self.create_at = datetime.now()
스크립트에서 공통 처리 실행
마지막으로 모델에 정의한 내용을 데이터베이스에 반영합니다.
데이터베이스에 대한 반응은 다음 두 가지가 있습니다.
* 콘솔에서 실행
* 스크립트에서 실행
이번에는 스크립트에서 실행을 소개합니다. (이쪽은 실수가 일어나기 어렵고 실제의 개발 환경에서 자주 사용되고 있습니다.)
먼저 스크립트를 실행하는 데 필요한 라이브러리를 설치합니다.
# mac
$ pip3 install Flask-Script
# windows
$ pip install Flask-Script
실제 스크립트는 다음과 같습니다.
manage.py
import sys
sys.dont_write_bytecode = True
from flask_script import Command
from flask_script import Manager
from src import app
from src import db
class InitDB(Command):
def run(self):
db.create_all()
if __name__ == '__main__':
m = Manager(app)
m.add_command('init_db', InitDB())
m.run()
작성한 스크립트 파일을 실행합니다.
# mac
$ python3 manage.py init_db
# windows
$ python manage.py init_db
실행 후 'src'디렉토리에 'flask_blog.db'라는 파일이 생성되었는지 확인할 수 있어야합니다.
Reference
이 문제에 관하여(flask와 sqlite3 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_yokozuka/items/7a6ced851081cc95aa7e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)