django 상용 orm 조작 상세 설명
1 Django 프로젝트 생 성:django-admin startproject project name
2 생 성 응용 프로그램::python manage.py startapp appname
3 컨트롤 러(urls.py)에서 url 과 보기 함수 의 매 핑 관 계 를 만 듭 니 다(일일이 대응)
4 보기 함수 만 들 기,논리 코드 완성
5 데이터베이스 에서 집합 대상 꺼 내기
5.데이터베이스 변 수 를 템 플 릿 에 삽입 하여 렌 더 링(render 방법)
6.렌 더 링 된 html 페이지 를 클 라 이언 트 에 게 되 돌려 줍 니 다.
URL:프로 토 콜+도 메 인+포트+경로
프로 토 콜:http
도 메 인 이름:www.cnblogs.com
포트:80
경로:yuanchenqi/articles/6811632.html
데이터:a=1
URL 설정 의 정규 표현 식 은 url 경로 부분 과 일치 합 니 다.
TEMPALTE(템 플 릿):HTML 코드+논리 제어 코드
논리 제어 문법:{{}렌 더 링 변수 filter:{var|방법:매개 변수}}
{%}렌 더 링 태그
{% if %}
{% for %}
{% url %}
{% url %}
사용자 정의 filter 와 simpletag:
(1)app 에서 templatetags 모듈 만 들 기(필수)
(2)임의의.py 파일 을 만 듭 니 다.예 를 들 어:mytags.py
from django import template
register = template.Library()
@register.filter
def filter_multi(v1,v2):
return v1 * v2
(3)임의의.py 파일 을 만 듭 니 다.예 를 들 어:mytags.py
사용자 정의 simple 사용 중tag 와 filter 의 html 파일 에서 이전에 만 든 my 가 져 오기tags.py :{% load my_tags %}
(4)simple 사용tag 와 filter:
{%load xxx%}\#첫 줄
# num=12
{{ num|filter_multi:2 }} #24
요약:
filter:하나의 인자 만 받 아들 일 수 있 지만 if 등 문 구 를 사용 할 수 있 습 니 다.
simpletag:여러 개의 인 자 를 받 아들 일 수 있 지만 if 등 문 구 를 사용 할 수 없습니다.
ORM:
표 의 표 사이 의 관계:
한 쌍 의 다 중 키 필드 는 반드시 하위 표(한 쌍 이 많은 표)에서 Foreign KEY 입 니 다.
여러 쌍 은 세 번 째 표 에서 이 루어 지고 두 개의 Foreign KEY 를 통 해 이 루어 집 니 다.
1 대 1 은 외부 키 필드 를 바탕 으로 유일한 제약 을 추가 합 니 다.
my sql 방법 사용 하기
1 설정 파일 db 설정 변경
2 변경init__파일 의 드라이버 설정
ORM sql 설정
settings 안에 로그 인 설정
표.object.filter():집합 대상 을 얻 었 습 니 다.예 를 들 어[object 1,object 2]
표.object.get():model 대상 을 얻 었 습 니 다.
한 쌍 이상 의 추가 기록:
\#방법 1:
# Book.objects.create(id=1,title="python",publication_date="2017-03-04",price=88.8,publisher_id=1)
\#방법 2
p1=Publisher.objects.get(name="인민 대표 대회 출판사")
Book.objects.create(id=2,title="python",publication_date="2017-05-04",price=98.8,publisher=p1)
models.py 파일 에 다 중 관 계 를 만 듭 니 다.
authors=models.ManyToManyField("Author")\#여러 쌍 이 많 습 니 다.표 가 아래 에 있 으 면 따옴표 가 필요 합 니 다.
다 중 추가
Many ToMany 는 하나의 추가 방법 만 있 습 니 다.
book.authors.add(*[author1,author2])
book.authors.remove(*[author1,author2])
주의:북 이해obj.publisher
book_obj.authors
세 번 째 표를 작성 하 다.
class Book2Author(models.Model):
author=models.ForeignKey("Author")
Book= models.ForeignKey("Book")
\#그러면 또 하나의 방법 이 있다.
author_obj=models.Author.objects.filter(id=2)[0]
book_obj =models.Book.objects.filter(id=3)[0]
s=models.Book2Author.objects.create(author_id=1,Book_id=2)
s.save()
s=models.Book2Author(author=author_obj,Book_id=1)
s.save()
.value 와.value목록 작업 도서 목록
\#value 의 사용 결 과 는 대상 이 아니 라 대상 의 한 필드 나 속성 결과 도 query Set 입 니 다.
ret1=Book.objects.values('title')
ret1_list = Book.objects.values_list('title')
print('ret 1 is:',ret 1)\#결 과 는:ret 1 is:
print(ret1_list)\#결 과 는 query Set 의 목록
수정 작업 update 와 save 의 차이 점:
update 는 set 가 지정 한 필드 save set 모든 필드 이기 때문에 update 효율 이 높 습 니 다.
조회:
확장 내용
\#관련 API 조회:
\#<1>filter(**kwargs):주어진 선별 조건 과 일치 하 는 대상 을 포함 합 니 다.
\#<2>all():모든 결 과 를 조회 합 니 다.
\#<3>get(**kwargs):주어진 필터 조건 과 일치 하 는 대상 을 되 돌려 줍 니 다.결과 가 있 고 하나 밖 에 없습니다.필터 조건 에 맞 는 대상 이 하나 이상 이거 나 없 으 면 오류 가 발생 합 니 다.
\#------아래 의 방법 은 모두 조회 결 과 를 다시 처리 하 는 것 이다.예 를 들 어 objects.filter.values()-----
\#<4>values(*field):Value Query Set―특수 한 Query Set 을 되 돌려 줍 니 다.실행 후 얻 은 것 은 일련의 model 의 예화 대상 이 아니 라 교체 가능 한 사전 시퀀스 입 니 다.
\#<5>exclude(**kwargs):선택 한 조건 과 일치 하지 않 는 대상 을 포함 합 니 다.
# <6>order_by(*field):검색 결과 정렬
\#<7>reverse():검색 결과 에 대한 역방향 정렬
\#<8>distinct():반환 결과 에서 중복 기록 제거
# <9>values_list(*field):values()와 매우 비슷 합 니 다.이것 은 원 그룹 서열 을 되 돌려 줍 니 다.values 는 사전 서열 을 되 돌려 줍 니 다.
\#<10>count():데이터베이스 에 일치 하 는 쿼 리(QuerySet)의 대상 수 를 되 돌려 줍 니 다.
\#<11>first():첫 번 째 기록 을 되 돌려 줍 니 다.
\#<12>last():마지막 기록 을 되 돌려 줍 니 다.
\#<13>exists():QuerySet 에 데이터 가 포함 되 어 있 으 면 True 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.
이상 django 에서 자주 사용 하 는 orm 작업 에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.