일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Django란
- string 함수
- getline
- correlation coefficient
- 시간복잡도
- 자료구조
- 장고란
- 매크로
- c++
- k-eta
- vscode
- string 메소드
- 입출력 패턴
- EOF
- 표준 입출력
- UI한글변경
- 연결요소
- scanf
- Django Nodejs 차이점
- 입/출력
- 프레임워크와 라이브러리의 차이
- 알고리즘 공부방법
- 구조체와 클래스의 공통점 및 차이점
- Django의 편의성
- 이분그래프
- double ended queue
- 엑셀
- 2557
- 백준
- iOS14
- Today
- Total
Storage Gonie
41. (app3) 킬로그램 앱 초기화 본문
1. Pycharm에서 'django_app3_kilogram' 이름으로 프로젝트 생성.
- 가상환경은 예전에 사용하던 것으로 사용.
2. 커맨드 창에서 가상환경 활성화
- "source activate 이름"
3. 커맨드 창에서 생성된 프로젝트 폴더 아래의 위치에서 프로젝트 생성
- "django-admin startproject mysite"
4. 커맨드 창에서 django_app3_kilogram/mysite/위치에서 앱 생성
- "python manage.py startapp kilogram"
5. settings.py에서 INSTALLED_APPS에 앱 이름 추가
- 이 때 주의할 점은 admin보다 위에 넣어줘야 됨.
- 여러가지 이유가 있으나 아직은 뭔 이유인지 모르겠음.
INSTALLED_APPS = [
'kilogram'
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
6. settings.py에서 LANGUAGE_CODE, TIME_ZONE 수정
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
7. settings.py에서 static파일 경로 추가
- 아마 collectstatic을 실행했을 때 폴더가 생기는 위치를 지정해주는거 같음.
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
8. 커맨드 창에서 migrate실행.
- "python manage.py migrate"
9. 커맨드 창에서 superuser생성
- "python manage.py createsuperuser"
- 아이디, 이메일, 패스워드 순으로 입력
10. kilogram폴더 밑에 urls.py새로 생성하기
- 이 방식이 바로 Including another URLconf 방식이고, 이 방식을 사용해야 다른 앱들과 합칠 때 쉬워진다.
- 원래 있던 파일을 그대로 복붙해와서 url을 아래와 같이 수정한다.
- namespace 입력
- views import
- FunctionView 방식대신에 GenericView를 사용하면 구현이 쉬우므로 여기서는 GenericView를 이용한 방법 사용.
from django.conf.urls import url
from django.contrib import admin
from . import views
app_name = 'kilogram'
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
]
11. mysite/urls.py도 수정
- include로 킬로그램의 urls연결.
- include 모듈 import
- 메인페이지를 킬로그램 앱의 index로 설정해줌.
- kilogram의 views 모듈 import
from django.conf.urls import url, include
from django.contrib import admin
from kilogram import views as kilogram_views
urlpatterns = [
url(r'^$', kilogram_views.IndexView.as_view(), name='root'),
url(r'^admin/', admin.site.urls),
url(r'^kilogram/', include('kilogram.urls')),
]
12. views에 IndexView클래스 작성.
- 아무기능 없이 템플릿만 보여주는 뷰를 만들 것이므로 generic의 TemplateView를 상속받아 만든다.
from django.shortcuts import render
from django.views.generic.base import TemplateView
# Create your views here.
class IndexView(TemplateView): # 제네릭의 TemplateView는 아무기능 없이 템플릿만 표시해 주는 뷰에서 사용
template_name = 'kilogram/index.html'
13. kilogram폴더 밑에 templates폴더 생성, 그 아래 kilogram폴더 생성.
13-1. templates/kilogram/base.html생성
- load static, load staticfiles의 차이는 무엇인가? 나중에 찾아보자.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Kilogram</title>
<!-- Bootstrap -->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'kilogram/style.css' %}" />
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default navbar-static-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{% url 'kilogram:index' %}"> <span class="glyphicon glyphicon-camera"> </span> Kilogram </a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#"> <span class="glyphicon glyphicon-user"></span> Login</a></li>
<li><a href="#">Logout</a></li>
<li><a href="{% url 'admin:index' %}">Admin</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div class="container">
<div>
{% block content %}
{% endblock %}
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>
13-2. templates/kilogram/index.html생성
{% extends 'kilogram/base.html' %}
{% block content %}
<h1>Kilogram Main Page</h1>
{% endblock %}
14. kilogram폴더 밑에 static폴더 생성, 그 아래 kilogram폴더 생성.
14-1. static/kilogram/style.css생성
a {
color: green;
text-decoration: none;
}
14-2. "python manage.py collectstatic", "yes" 수행
- 정적파일을 한군데 모아주는 건 알겠는데 이걸 꼭 해줘야하는 타이밍은 나중에 배움.
- 배포할 때 알아야 하는 지식이라서 지금은 패스.
15. 실행
- "python manage.py runserver"
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
43. (app3) Django id, pw만 입력받는 회원가입 구현 (2) | 2019.02.22 |
---|---|
42. (app3) Django 로그인과 로그아웃 구현하기 (0) | 2019.02.22 |
40. app1, app2 앱 통합하기 (0) | 2019.02.21 |
39. (app2) Django 템플릿 확장을 다른 모든 템플릿에 적용 (0) | 2019.02.20 |
38. (app2) 템플릿 확장을 이용한 admin 템플릿 수정 (0) | 2019.02.20 |