데이터 모델 조작(1)

4741 단어
Django 운영 데이터베이스 -----데이터 모델 MVT:모델 데이터 모델 부분
1. Django 연결 데이터베이스
web                  ,         ,  Django              

프로젝트의 설정 파일 settings를 수정합니다.py
DATABASES    
DATABASES = {
        "default":{
                #          
               'ENGINE':'django.db.backends.mysql'
               #                
               'NAME': 'pydb',        
               #                 
               'USER': 'root',       
               #                  
              'PASSWORD': 'root'
    }
}

python 새 버전 연결 데이터베이스에서는pymysql 모듈 django 베이스 연결 데이터베이스 작업에서 mysqldb를 사용합니다 (새 버전의python과 mysql는 지원하지 않습니다)
일반적인 경우, mysql 대신 pymysqldb를 사용합니다
import pymysql
pymysql.install_as_mysqldb()

2, Django가 데이터베이스를 자동으로 동기화
일반적인 상황에서 프로젝트 개발 과정에서 데이터베이스에 있는 표의 창설과 관련된다.그러나 데이터 테이블을 만드는 데는 사실 모든 웹 프로젝트가 겪는 문제이며 SQL 문장을 반복적으로 작성하여 프로젝트에 대응하는 데이터 테이블을 만든다.작업이 비교적 절차화되었기 때문에 Django는 데이터 테이블을 만드는 과정을 봉인했다!
일반적으로 세 가지 절차를 수행하여 데이터베이스 테이블의 생성을 완성하고 다음과 같은 명령을 집행한다
python manage.py makemigrations         sql  
python manage.py sqlmigrate app_name no   sql  
python manage.py migrate     sql  ,        

3. Django의 데이터 모델 정의 및 동기화
프로젝트 중의 사용자 정의 데이터 유형은 프로젝트 중의 핵심적인 처리 데이터 [유형 창설 대상]이다. 데이터 처리에 있어 통상적으로 네 가지 조작 방식이 있는데 그것이 바로 증가, 삭제, 수정, 조회이다.
데이터 정의와 데이터베이스 중의 데이터베이스 간의 관련, 데이터 대상의 조작은 모두 고정된 절차이다
특수한 프로그래밍 사고방식이 나타났다. ORM 처리 방식이다.
ORM: (Object Relation Mapping 객체 관계 매핑)은 프로그래밍 조작 방식이고 MVC와 같은 프로그래밍 사상이다. 일반적인 조작 방식을 처리 절차를 고정시킨 후에 봉인을 간소화하고 프로젝트에 실행 가능한 데이터베이스 간의 상호작용을 편리하고 신속하게 제공할 수 있다.
Django는 성숙한 프레임워크로서 ORM에 매우 우호적인 지원을 제공합니다!Django는 창설된 유형과 대상을 편리하게 관리하기 위해 사용자 정의 형식이 Django에서 만든 유형을 계승해야 합니다:django.db.models.Model은 또한 편리한 관리 유형의 각 속성을 위해 Django는 각종 데이터를 만드는 함수를 제공합니다.\
django.db.models.AutoField()       
django.db.models.CharField()        
django.db.models.TextField()        
django.db.models.IntegerField()       

속성을 만드는 동시에 속성에 각종 제한 조건을 추가할 수 있습니다. 기본값, 최대 길이, 메인 키, 비어 있는지 등 조건입니다.
실제 운영 프로세스:
모델스에서.py 데이터 모델 모듈에서 자신의 데이터 모델 사용자 정의 데이터 형식을 정의하고django를 계승해야 합니다.db.models.모델 데이터 형식의 속성은 Django에 내장된 함수를 통해 생성하면 데이터 동기화 작업을 할 수 있습니다!
python manage.py makemigrations   sql  
python manage.py migrate   sql  

프로젝트 작업 과정에서 일반적인 상황에서 각종 데이터 유형을 만들어야 하는 여러 데이터 유형 사이에 관련 관계가 존재할 수 있다. 예를 들어 블로그 프로젝트에서 작가, 글,저자 유형->문장 유형: 일대다 |다대일의 관계django.db.models.ForeignKey () 예: 사용자 정보 관리 프로젝트 - 현재 사용자, 배우자 -> 남편 - 아내: 일대일 관계 django.db.models.OneToOneField(): 학교 과정 관리 시스템-학생, 과정->학생-과정: 다대다의 관계django.db.models.ManyToManyField()
데이터베이스: 저자-문장: 일대다 관계: 저자[Author]-문장[Article(author 키)]
Django 프로젝트 | - 루트 프로젝트 [보기] | - 하위 프로젝트 [모형, 보기] 보기 맵 -> url-> 메인 루트 -> 하위 루트 모델 관리 -> 루트 프로젝트 -> 하위 프로젝트 [모형] -> settings.py [INSTALLED_APPS]
4. Django에서 데이터의 첨삭 수정 작업
a. 유형 방법 조작 [보면 잊어버리기] b. 대상 관리자 조작 [익히고 익히기-대상을 향한 조작 방식] c. 대상이 속한 유형의 조작 [익히고 익히기-과정을 향한 조작 방식]
첫 번째 데이터 증가 조작 방식: 정적 방법으로 대상을 만들고, 조작 대상: 이해하면 된다.
모형 모듈 모델스.py의 코드
class Author(models.Model):
  id = models.AutoField(primary_key=True)
  name = models.CharField(max_length=50)
  
  @classmethod
  def create(cls, name):
      author = cls(name=name)
      return author

보기 모듈views.py에서 호출
from . import models
def index(req):
     #    
     author = models.Author.create(‘tom’)
     author.save()

두 번째 조작 방식: 대상을 향한 조작 방식
대상을 향한 이해에서 대상과 대상의 조작은 서로 다른 모듈 처리 대상이 단독으로 존재해야 한다고 볼 수 있다.대상의 관리자는 단독으로 존재한다.관리자 관리 대상 모형 모듈 모델을 통해py에서 다음과 같은 코드가 나타났다
class AuthorManager(models.Manager):
     def create_object(self, name):
         author= self.create(name=name)
         return author
class Author(models.Model):
     id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=50)
     author_manager = AuthorManager()

보기 모듈views.py에서 이렇게 호출할 수 있습니다
from . import models
def index(req):
  #               
  author = models.Author.author_manager.create_object(‘shuke’)

####### 두 번째 조작 방식: 과정에 대한 조작 방식: 대상->창설->조작 이런 조작 방식은 사실 가장 간결한 혼합 개발 모델 모듈 모델이다.py에서는 원래 간단한 유형
class Author(models.Model):
  id = models.AutoField(primary_key=True)
  name = models.CharField(max_length=50)

보기 모듈views.py에서 호출 실행
def index(req):
  #     
  author = models.Author(name=’jerry’)
  author.save()

확장: 대상의 수정, 삭제, 어떻게 해야 합니까!
5, Django 셸 테스트:
cd에서 하위 프로젝트python 관리자.py shell   fom blog import models   m = models.Author.objects   a.all()

좋은 웹페이지 즐겨찾기