Flask 를 사용 하여 my sql 의 기본 동작 을 실현 합 니 다.
4162 단어 Python
데이터베이스 작업 을 간소화 하기 위해 서 저 희 는 SQLAlchemy 데이터베이스 도구(ORM,즉 대상 관계 맵)를 사용 할 것 입 니 다.SQLAlchemy 를 통 해 데이터베이스 에 있 는 표(클래스 속성 표시 표 의 필드/열)를 Python 클래스 로 정의 할 수 있 습 니 다.이 클래스 에 대해 서 는 SQL 문 구 를 쓰 는 대신 여러 가지 조작 을 할 수 있 습 니 다.이 열 을 우 리 는 모델 류 라 고 부 릅 니 다.클래스 의 속성 을 필드 라 고 부 릅 니 다.
Flask 는 대량의 제3자 확장 이 있 는데 이런 확장 은 제3자 라 이브 러 리 와 의 통합 작업 을 간소화 할 수 있다.
우선 우 리 는 조작 을 초기 화해 야 한다.확장 클래스 가 져 오기,예시 화 및 Flask 프로그램 인 스 턴 스 전송:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app=Flask(__name__)
db=SQLAlchemy(app)
설정 매개 변수
class Config(object):
""" """
#sqlalchemy
SQLALCHEMY_DATABASE_URI="mysql://root:[email protected]:3306/db_python04"
# sqlalchemy
SQLALCHEMY_TRACK_MODIFICATIONS=True
app.config.from_object(Config)
SQLALCHEMY_DATABASE_URL 구성:데이터베이스 형식 이름://데이터베이스 사용자 이름:비밀번호@주소:포트/데이터베이스 이름
데이터베이스 연결 주소 알려 주기
데이터베이스 모델 만 들 기
class Role(db.Model):
""" / """
__tablename__="tbl_roles"
id=db.Column(db.Integer,primary_key=True)
name=db.Column(db.String(32),unique=True)
users=db.relationship("User",backref="role")
class User(db.Model):
""" """
__tablename__="tbl_users" #
id=db.Column(db.Integer,primary_key=True) #
name=db.Column(db.String(64),unique=True) #
email=db.Column(db.String(128),unique=True)
password=db.Column(db.String(128))
role_id=db.Column(db.Integer,db.ForeignKey("tbl_roles.id")) #
모델 클래스 의 작성 제한:
db.Column()
필드 를 설정 할 수 있 는 추가 옵션(인자)을 추가 합 니 다.예 를 들 어,primary_key
현재 필드 를 주 키 로 설정 합 니 다.이외에 도 자주 사용 하 는 옵션 이 있 습 니 다. nullable
(불 값,빈 값 으로 허용 되 는 지 여부),index
(불 값,색인 설정 여부),unique
(불 값,중복 값 허용 여부),default
(기본 값 설정)등.자주 사용 하 는 필드 형식 은 다음 과 같 습 니 다.
# drop_all
db.drop_all()
#
db.create_all()
db.drop_all()이전에 만 든 모든 데 이 터 를 삭제 합 니 다.
db.create_all()모든 테이블 만 들 기
창설
role1=Role(name="admin")
#session
db.session.add(role1)
#
db.session.commit()
마지막 줄
db.session.commit()
중요 합 니 다.이 줄 을 호출 해야만 진정 으로 기록 을 데이터베이스 에 제출 할 수 있 습 니 다.앞의 것 입 니 다. db.session.add()
호출 은 변경 사항 을 데이터베이스 세 션(임시 영역)에 추가 합 니 다. 읽 기
모델 류 의 query 속성 을 선택 할 수 있 는 여과 방법 으로 호출 하면 하나의 기록 이나 여러 개의 기록 을 얻 을 수 있 습 니 다(모델 류 의 인 스 턴 스 로 기록 합 니 다).검색 어 는 다음 과 같 습 니 다.
.query..
다음은 자주 사용 하 는 필터 방법 입 니 다.
업데이트
user=User.query.get(1)
user.name="li"
user.email="[email protected]"
db.session.commit()
User 표 의 메 인 키 가 1 인 데 이 터 를 업데이트 합 니 다.이름 은 li 로 바 꾸 고 email 은 1 로 바 꿉 니 다[email protected]
삭제
user=User.query.get(1)
db.session.delete(user)
db.session.commit()
홈 키 가 1 인 데이터 삭제
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.