1. 문자열(string) 


1
const A = "good";
cs


쌍따옴표(") 사이에 문자나 숫자, 이모티콘 등을 입력하면 문자열로 인식



2. 불리언(boolean)


1
const A = True;
cs


boolean은 True 또는 False 값을 가진다



3. 숫자형(number)


1) 실수(float) 


1
const A = 0.0002;
cs


소수점을 포함 숫자다.



2) 정수(integer)


1
2
3
const A = -5;
const B = 0;
const C = 5;
cs


양수, 0, 음수를 포함한 숫자다.

'코딩 연습 > Javascript' 카테고리의 다른 글

객체(object)를 이용해 데이터 다루기  (0) 2018.12.04
배열(array)  (0) 2018.12.04
카멜 표기법(camel case)  (0) 2018.12.04
주석처리하기  (0) 2018.12.04
var, let, const  (0) 2018.12.04
블로그 이미지

쵸잇

,


1
2
3
4
5
6
7
// const a = 1
 
/*
const b = 2
const c = 3
const d = 4
*/
cs



한 줄 주석처리는 //


범위에 따른 주석처리는 /* (범위) */

'코딩 연습 > Javascript' 카테고리의 다른 글

객체(object)를 이용해 데이터 다루기  (0) 2018.12.04
배열(array)  (0) 2018.12.04
카멜 표기법(camel case)  (0) 2018.12.04
자료형(data type)  (0) 2018.12.04
var, let, const  (0) 2018.12.04
블로그 이미지

쵸잇

,
1) var

1
2
3
var A = 1
var A = 2
var A = 5
cs




var A를 출력하면 마지막 값인 "5"만 출력된다.



2) let


1
2
let A = 1
let A = 2
cs


let A를 출력하면 A값 중복선언 오류가 발생한다.

처음에 선언한 값인 "1"만 허용된다.


1
2
let A = 1
= 2
cs


다음과 같은 상황에서 A를 출력하면 "2"가 출력된다.



3) const


1
2
const A = 1
const A = 2
cs


const A를 출력하면 A값 중복선언 오류가 발생

let과 마찬가지로 처음 값만 허용된다.


1
2
const A = 1
= 2
cs


A를 출력하면 상수 할당 오류가 발생한다.

상수로서 값을 "1"로 선언했기에 값이 바뀔 수 없다.

'코딩 연습 > Javascript' 카테고리의 다른 글

객체(object)를 이용해 데이터 다루기  (0) 2018.12.04
배열(array)  (0) 2018.12.04
카멜 표기법(camel case)  (0) 2018.12.04
자료형(data type)  (0) 2018.12.04
주석처리하기  (0) 2018.12.04
블로그 이미지

쵸잇

,

1. 셀 크기(열 너비) 자동조절 [Alt + H, O, I]


Alt를 먼저 누르고 H, O, I 순으로 누르면 된다.


'오피스 > 엑셀' 카테고리의 다른 글

고급필터 학습  (0) 2018.12.03
조건부서식용 함수 학습  (0) 2018.11.29
데이터 표시형식 바꾸기  (0) 2018.11.27
블로그 이미지

쵸잇

,



필터는 조건에 합당한 필드 값만 추출한다



1. 구매실적두 번째로 크거나 두 번째로 작은 데이터 표시


1-1) 두 번째로 큰 값LARGE 함수, 두 번째로 작은 값SMALL 함수를 사용한다.

=LARGE(범위,2) =SMALL(범위,2) 형태이고, OR조건이므로 다른 행에 입력해야하나 편하게 OR() 함수를 사용해도 좋다.

=OR(=LARGE(범위,2) =SMALL(범위,2))


1-2) 각 조건에 해당하는 값만 추출해야하므로 기준값을 정해 조건값비교하여 조건식을 작성해야한다. 

기준값이 없다면 해당 범위에 대한 조건은 항상 참이 되므로 올바른 결과를 내놓지 못한다.

따라서 가장 상단 값의 셀인 D4를 기준으로 해당 열의 모든 값조건값비교하여 참과 거짓으로 나눈다.

=D4=LARGE(범위,2) 와 같이 범위에서 첫번째 값을 기준 삼아 범위 안의 값들과 순차적으로 비교하여 조건에 부합하는 결과를 나타낸다. 

 (단, 범위는 변동이 생기지 않도록 절대참조로 할 것)


2) "복사 위치"에서 별도로 필드를 작성해 지정하지 않으면 조건에 부합하는 레코드의 전체 필드 값을 출력한다.

(필드를 지정하면 각 레코드의 해당 필드 값만 출력된다)





(*"실적" 필드가 조건값과 "구매실적" 열의 데이터와 비교한 값을 나타내며, 실제 필드는 아니고 가상필드로서 참고용이다)



2. '성명'이 김으로 시작하면서 '근속기간'이 15년 이상인 데이터 중 '퇴직금'이 50,000 이하인 조건은?


1) 김*

2) >=15

3) <=50000



'오피스 > 엑셀' 카테고리의 다른 글

엑셀 단축키 학습  (0) 2018.12.03
조건부서식용 함수 학습  (0) 2018.11.29
데이터 표시형식 바꾸기  (0) 2018.11.27
블로그 이미지

쵸잇

,

상황:

고객 메인페이지에는 업체 목록이 나열되어있다.

목록에서 운영 중업체나열한다.



해결:

업체 계정 활성화 여부에 따라 목록에 등록되도록 한다.



1
2
3
4
5
6
{% for partner in partner_list %}
<div class="col-sm-4">
  <h4>{{ partner.name }}</h4>
  <div>{{ partner.address }}</div>
</div>
{% endfor %}
cs



1
2
3
4
5
6
7
8
{% for partner in partner_list %}
<div class="col-sm-4">
  {% if partner.user.is_active is True %}
  <h4>{{ partner.name }}</h4>
  <div>{{ partner.address }}</div>
  {% endif %}
</div>
{% endfor %}
cs



장고에서 User 모델은 계정 활성화 상태를 나타내는 is_active 필드를 가지고 있다.

is_active 필드값은 Boolean으로 True 또는 False를 가진다. 

블로그 이미지

쵸잇

,

input 태그 안에 value 속성을 사용하면 된다.


1
<input type="name" name="name" value="{{ user.partner.name }}">
cs


속성 값으로는 이미 데이터베이스에 저장된 데이터를 지정한다.


블로그 이미지

쵸잇

,

Grid system웹페이지12개의 열로 나누어서 활용하게 만든다.



1
2
3
4
5
6
7
8
9
10
11
12
<div class="row">
  <div class="col-sm-6 col-sm-offset-3">
    <div class="row">
      {% for partner in partner_list %}
      <div class="col-sm-4">
        <h4>{{ partner.name }}</h4>
        <div>{{ partner.address }}</div>
      </div>
      {% endfor %}
    </div>
  </div>
</div>
cs



<div class="col-sm-6 col-sm-offset-3">에서

col-sm-offset-3은 3개 열을 상쇄시켜서 가운데 정렬을 할 수 있도록 한다.

양옆 3칸비워두고 가운데 6칸에서 데이터를 매핑하게 된다.



<div class="col-sm-4">는

12개 칸 중4칸을 사용해서 이름과 주소를 매핑하는데,

for문을 통해 순차적으로 다른 데이터도 매핑되므로 4칸씩 자리를 차지하게 된다.

3번 연속으로 4칸을 차지하면 12칸이 되므로 그 다음 데이터는 아랫줄로 이어서 출력하게 된다.

블로그 이미지

쵸잇

,

먼저 쿼리를 통해 가져온 객체를 변수에 담고,

이를 delete() 메소드를 사용하여, 리다이렉트만 해주면 간단히 끝난다.



1
2
3
4
def menu_delete(request, menu_id):
    menu = Menu.objects.get(id=menu_id)
    menu.delete()
    return redirect("/partner/menu/")
cs


블로그 이미지

쵸잇

,

목적은 

데이터를 입력할 때의 폼과 그 데이터를 수정할 때의 폼동일하게 쓰인다는 점에서,

1개의 폼 사용을 유지하고자 템플릿을 서로 만들지 않고 같은 템플릿을 사용하게 한다.


조건 2가지

1) url 경로와 view 함수는 서로 달라야한다. (기능이 다르므로)

2) 서로 다른 기능을 하는 것임을 표시할 수 있도록 조건에 따라 다르게 화면에 보여야한다.



1-1) url과 view 함수를 따로 만든다.


서로 다른 경로를 가지고, 서로 다른 기능을 유지하기에 고유의 url와 view 함수를 지닌다.



1-2) 매핑할 템플릿 페이지를 동일하게 지정한다.


(데이터 추가하는 add 함수)


1
2
3
4
def add(request):
    ctx = {}
    (생략)
    return render(request, "add.html", ctx)
cs


(데이터 수정하는 edit 함수)


1
2
3
4
def edit(request):
    ctx = { "replacement" : "수정" }
    (생략)
    return render(request, "add.html", ctx)
cs



2) 기존 템플릿에서 조건문을 추가한다.


(데이터 추가 텍스트만 보이는 템플릿)


1
2
3
4
5
6
추가하기
<form enctype="multipart/form-data" method="post" action="">
  {% csrf_token %}
  {{ form.as_p }}
  <button class="btn btn-default btn-block">추가</button>
</form>
cs



(조건문을 넣어서 사용하는 함수에 따라 다르게 보이는 템플릿)


1
2
3
4
5
6
{% if replacement %}{{ replacement }}{% else %}추가{% endif %}하기
<form enctype="multipart/form-data" method="post" action="">
  {% csrf_token %}
  {{ form.as_p }}
  <button class="btn btn-default btn-block">{% if replacement %}{{ replacement }}{% else %}추가{% endif %}</button>
</form>
cs


edit 함수를 매핑하는 url로 접속시 replacement호출하도록 조건을 내세워 "추가하기" 텍스트를 "수정하기" 형태로 바꾼다.

블로그 이미지

쵸잇

,