✔️ Django 웹 개발
이번엔 미리 작성해둔 CSS 파일을 이용해서 조금 더 이쁘게 글쓰기 페이지를 꾸며보겠다.
그러면 post_form.html 에서 위쪽에 CSS 파일의 이름을 바꿔주도록 하겠다.
바뀌기 전...
바뀐 후
다음으로 이 post_form.css 파일을 static 디렉토리 안에 posts 안에 CSS 이 폴도 안에 넣어주도록 해준다.
h1,h2,h3,p,a,ul,li{
margin: 0;
padding: 0;
font-family : 'NanumMyeongjo';
font-weight: 200;
list-style: none;
text-decoration: none;
outline: none;
color: black;
}
a:hover,a:active,button:hover {
text-decoration: none;
}
html{
position: relative;
min-height: 100%;
margin: 0;
}
body {
min-height: 100%;
margin: 0;
padding: 0;
background: #2b2a2e;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: auto;
}
img {
margin: 0;
padding: 0;
border: 0;
}
#nav{
height: 60px;
}
#header{
margin: 20px 0 20px;
}
#content{
margin-bottom: 300px;
}
#footer{
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 75px;
background: rgba(41, 41, 44, 0.7);
}
.container{
width: 800px;
margin: 0 auto;
}
.logo{
width: 65%;
min-width: 899px;
margin: 0 auto;
padding-top: 17px;
}
.logo img{
width: 88px;
}
h1{
text-align: center;
font-size: 32px;
letter-spacing: -2px;
color: #fff;
}
.error{
text-align: right;
color: red;
padding-right: 20px;
padding-bottom: 20px;
}
.submit{
margin-bottom: 27px;
text-align: right;
}
input[type="submit"]{
padding: 10px 43px 11px 19px;
font-size: 15px;
font-family : 'NanumMyeongjo';
color: #fff;
border: 1px solid #5b595f;
border-radius: 1px;
letter-spacing: -0.35px;
background: url(../images/pen.svg)no-repeat 89px 11px/16px;
cursor: pointer;
}
input[type="submit"]:hover{
color: #ccc;
transition: all 0.2s;
}
.editor{
background: #f9f9f9;
}
input[type="text"]{
display: block;
width: 100%;
padding: 35px 33px 0 30px;
border: none;
font-size: 19px;
font-family : 'NanumMyeongjo';
background-color: transparent;
box-sizing: border-box;
}
textarea{
width: 100%;
height: 500px;
padding: 33px 33px 30px 30px;
border: none;
font-size: 15px;
line-height: 1.73;
font-family : 'NanumMyeongjo';
background-color: transparent;
resize: none;
box-sizing: border-box;
}
textarea,input:focus{
outline: none;
}
textarea::placeholder{
color: #a9abb7;
letter-spacing: -0.44px;
}
input::placeholder{
color: #a9abb7;
letter-spacing: -0.44px;
}
.btn_back a{
display: inline-block;
margin-top: 30px;
padding: 10px 19px 11px;
color: #e38917;
font-size: 15px;
border: 1px solid #e38917;
}
.btn_back a:hover{
color: #f2ad56;
transition: all .2s;
}
.footer{
width: 65%;
min-width: 899px;
margin: 0 auto;
}
.footer p{
text-align: right;
font-size: 20px;
line-height: 75px;
font-weight: 800;
letter-spacing: -0.85px;
color: #53534f;
}
위의 코드를 참고해서 CSS 파일을 생성해준다.
다시 post_form.html 로 돌아가서 윗부분에 block 을 만들어주고...
이 블록 같은 경우에는 div 태그 안에 h1 태그로 글쓰기를 해볼 것이다.
우선 다음과 같이 코드를 작성해준다.
그 다음에 작성된 폼 컴포넌트 전체를 div 태그로 묶어주겠다.
묶어주면...
그리고 제목과 내용는 지워주도록 해준다.
그리고 밑에 코드에서 하이라이트 된 input 태그를 윗부분에 옮겨준다.
옮기기 전...
옮긴 후...
그리고 또 바뀐게 있는데 값이 전송이 아니라 작성완료로 바뀌었다.
그리고 그 input 태그를 div 태그로 감싸준다.
그럼 다 끝났으니 서버를 실행해서 바뀐 웹 페이즈를 확인해보겠다.
http://127.0.0.1:8000/posts/new/
가보면...
이렇게 글쓰기 페이지가 예쁘게 바뀐 것을 알 수 있다.
그런데 확인해보면 돌아가기 버튼이 없어서 하나 구현해주겠다.
다시 post_form.html 로 돌아가서...
endblock content 블록 위에다가 div 태그를 만들어주고 그 안에다가 a 태그를 만든다.
전에도 말했듯이 URL 은 하드코딩 형태는 최대한 피해주고 위에처럼 템플릿 태그 URL 을 이용해서 처리하는게 좋다.
그럼 다시 글쓰기 페이지로 가서 새로고침을 해주면...
이렇게 돌아가기 버튼이 이쁘게 잘 나타난다.
그럼 이제 글을 하나 작성해본다.
중복된 이름과 ValidationError 를 확인하기 위해서 다음과 같이 작성해준다.
그리고 작성완료 버튼을 누르면...
이렇게 에러 메시지가 뜨게 된다.
끝으로 :