uwsgi+Django 배치 전후단 웹 프로젝트 분리하지 않음
정적 파일 서버 없이 정적 파일을 따로 제공합니다. 백엔드 인터페이스 서버만 설정된 루트를 통해 정적 파일에 접근합니다.
개발 단계:django가 제공하는 개발 웹 서버.python manage.py runserverip: 포트 배치: uwsgi-> wsgi 프로토콜 웹 서버를 따릅니다.
Django 프로젝트에서 템플릿 상속에 적용하면 앞뒤 분리 모드로 상속 모드를 배치하면 계속 사용할 수 없습니다
디렉토리 구조
├── demo │ ├── db.sqlite3 │ ├── demo │ │ ├── init.py │ │ ├── pycache │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── ftest │ │ ├── admin.py │ │ ├── apps.py │ │ ├── init.py │ │ ├── migrations │ │ ├── models.py │ │ ├── pycache │ │ ├── tests.py │ │ ├── urls.py │ │ └── views.py │ ├── manage.py │ ├── uwsgi.ini │ ├── uwsgi.log │ └── uwsgi.pid └── front ├── children.html ├── css │ └── children.css ├── ftest.html ├── js │ ├── children.js │ └── jQuery2.0.js └── static ├── admin ├── css └── js
1. uwsgi 설치
pip install uwsgi
2. 프로젝트 디렉터리/demo에서 uwsgi 프로필 uwsgi를 만듭니다.ini
[uwsgi]
# nginx ,Django
;socket=127.0.0.1:8001
# web ,Django
http=127.0.0.1:8001
# (manage.py )
chdir=/home/python/Desktop/django/demo
# / , uWSGI
touch-reload = DJANGO_DIR
# wsgi.py , ( chdir )
wsgi-file=demo/wsgi.py
#
processes=4
#
threads=2
# uwsgi
master=True
#
pidfile=uwsgi.pid
# , uwsgi , 。 runserver ( uwsgi.ini )
daemonize=uwsgi.log
#
virtualenv=/home/python/.virtualenvs/ETL
3. django 프로필 수정
# debug False
DEBUG = False
# Django django.contrib.staticfiles , django.contrib.staticfiles INSTALLED_APPS。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', #
'ftest.apps.FtestConfig',
]
#
STATIC_URL = '/static/' # WEB static URL
#
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'front/static') # , , 。 collectstatic STATICFILES_DIRS , 。
# , front/css, front/js
STATICFILES_DIRS = (
('css',os.path.join(os.path.dirname(STATIC_ROOT),'css').replace('\\','/') ),
('css',os.path.join(os.path.dirname(STATIC_ROOT),'js').replace('\\','/') ),
)
# ,
4. 라우팅 데모/urls를 추가합니다.py
urls.py 파일 내용은 다음과 같습니다.
from django.views import static
from demo import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^ftest/', include('ftest.urls')),
url(r'^static/(?P.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'), #
]
존재할 수 있는 버그: from demo import settings 때, 처음에from demo로 쓰기demo import settings(BASE DIR에서 쓰기 시작), 오류 메시지가 실행되고 demo를 찾을 수 없습니다.demo, from demo import settings로 변경한 후 settings 단어에 빨간색 줄 긋기 프롬프트가 표시되므로 가장 바깥쪽 demo 파일을 Sources Root(pyCharm에서 작업)으로 설정하여 자원 파일을 설정할 수 없음
5. 템플릿 파일.html에서 css/js 경로 수정 인용
액세스 경로http://127.0.0.1:8001/ftest/ch/
# , front/css, front/js
#
'''
/static static
href="/static/css/children.css" url:http://127.0.0.1:8001/static/css/children.css
href="static/css/children.css" url:http://127.0.0.1:8001/ftest/ch/static/css/children.css
'''
6. 정적 파일 수집
django는 생산 환경에서 정적 파일을 직접 대외적으로 제공하지 않지만, 예를 들어admin,restfranework의 css, js 및 기타 등이기 때문에 정적 파일 수집 명령을 실행하여 수집
python manage.py collectstatic
7.uwsgi 서버 사용 및 정지#
uwsgi --ini uwsgi.ini
( )
#
uwsgi.log
uwsgi.pid
#
tail -f uwsgi.log
( )
#
uwsgi --stop uwsgi.pid
(uwsgi.pid )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.