반응형

장고 - Django 1.7 Custom Lookups


참고 : https://docs.djangoproject.com/en/1.7/howto/custom-lookups/




https://docs.djangoproject.com/en/1.7/ref/models/lookups/


A lookup expression consists of three parts:


Fields part (e.g. Book.objects.filter(author__best_friends__first_name...);

Transforms part (생략가능) (e.g. __lower__first3chars__reversed);

A lookup (e.g. __icontains) that, if omitted, defaults to __exact.


==> 필드명__(트랜스폼)__lookup 형태를 가진다. 




https://docs.djangoproject.com/en/1.7/howto/custom-lookups/


A simple lookup example

Author.objects.filter(name__ne='Jack')

--> "author"."name" <> 'Jack'




A simple transformer example

https://docs.djangoproject.com/en/1.7/howto/custom-lookups/#a-simple-transformer-example

Experiment.objects.filter(change__abs=27)

-->  SELECT ... WHERE ABS("experiments"."change") = 27


Experiment.objects.filter(change__abs__lt=27)

--> SELECT ... WHERE ABS("experiments"."change") < 27




반응형
Posted by 자유프로그램
,
반응형

장고 - Django 1.7 에서 database table 이름 짓는 방법


참고 : https://docs.djangoproject.com/en/1.7/ref/models/options/#table-names



- 장고는 app 이름과 model class 이름을 가지고 자동적으로 database table name 을 만든다.

   --> 'app name' + '_' + 'model class name ( lowercase )'


- 예 

  >>>manage.py startapp bookstore

  상기 명령어로 bookstore 란 app 을 만들고,  class Book 를 model.py 에서 정의했다면 

  --> 이때 생성되는 database table 이름은  bookstore_book

 




반응형
Posted by 자유프로그램
,
반응형

장고 - Django 1.7 field lookup -- db field 검색 방식 이름짓기


참고 : https://docs.djangoproject.com/en/1.7/ref/models/querysets/

         https://docs.djangoproject.com/en/1.7/topics/db/queries/#field-lookups



 Field lookups   

-- https://docs.djangoproject.com/en/1.7/topics/db/queries/#field-lookups

- SQL where 절을 어떻게 처리할것인가 문제임.

- QuerySet methods - filter(), exclude() , get() - 의 keyword arguments.


- 기본적인 lookups 키워드 인수 형태 ( double-underscore 사용)

     field__lookuptype = value


- 예 

>>> Entry.objects.filter(pub_date__lte='2006-01-01')

---> SQL 문으로 변환하면 

       SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01';



** lookup 에서 사용되는 field 는 model field 이름이여야 하지만, ForeignKey 의 경우는 

     field name + '_id

     를 사용한다. 

      예 ) 

           >>> Entry.objects.filter(blog_id=4)

            --> Entry 가 Blog 모델의 primary key (id) 에 대한 ForeignKey 가지고 있는 경우



** 장고 내장 lookups 들 


exact

iexact

contains

icontains

in

gt

gte

lt

lte

startswith

istartswith

endswith

iendswith

range

year

month

day

week_day

hour

minute

second

isnull

search

regex

iregex


-- lookup type 이 생략된경우는 exact 라고 여기면 된다. 

-- 사용자가 필요하면 custom lookup 을 만들수있다.





반응형
Posted by 자유프로그램
,
반응형

nitrous.io 에서 django 서비스 하기



https://www.nitrous.io/



** 장고 프로젝트 서버 실행시키기.


nitrous.io 의 console 창에서 아래처럼 입력하면됨.


$ python manage.py runserver 0.0.0.0:8080






** 클라이언트에서 장고 프로젝트 웹페이지 접속하기.


방법 1.  Preview 메뉴에서 해당 포트 선택하면 브라우저 새창 생김.





방법 2.  Boxes 화면에서 Preview URI 를 복사하여,  browser 주소창에 넣으면 된다. (포트는 설정포트로 바꾸고)


http://sturdy-kings-landing-django-81-104224.apne1.nitrousbox.com:<port 1024-9999>

--> http://sturdy-kings-landing-django-81-104224.apne1.nitrousbox.com:8080  를 주소창에 입력하면 실행됨





< 실행 화면 >












반응형
Posted by 자유프로그램
,
반응형
cloud.biopython.net 에서 Django 서비스 실행하기


putty 로 서버접속하기




** virtualenv 실행하기 ; virtualenv 설치 안한 경우는 이 부분 건너뛰기 !!!
$ source ./.venv/bio/bin/activate


--> virtualenv 실행되면, prompt 앞에  (bio)  추가됨.



** 장고 웹서버 실행하기
-- 해당 장고 프로젝트 디렉토리(mysite) 이동하여 서버 실행시키면 ok!
     ; 포트번호 (60906) 는 자기 사용중인 포트번호로 바꾸기 바람.

(bio)jayu108@biomaster:~/.venv/mysite$ python manage.py runserver 0.0.0.0:60906




** 다른 컴퓨터 웹브라우저 접속시 입력 사항

  ; 포트번호 (60906) 는 자기 사용중인 포트번호로 바꾸기 바람.


http://cloud.biopython.net:60906/

--> 장고 work ! 화면 나옴






반응형
Posted by 자유프로그램
,