
1. 생김새를 먼저 만들기 - HTML+CSS
2. 만들어야 할 기능을 파악하기 (포스팅 API, 리스팅 API 두개!)
3. 서버 - 클라이언트 연결 코드 만들기
4. 포스팅 API 만들기 (꿀팁!! 보통 저장하는 것을 먼저 만들 때가 더 편하다!!)
5. 리스팅 API 만들기
파일 업로드의 프론트엔드 코드 작성
HTML,CSS 카드에 이미지 넣기
<img src="../static/monet.jpg" class="card-img-top">
<img src="../static/monet.jpg" class="card-img-top">
<div class="card-body">
<h5 class="card-title">모네의 그림</h5>
<p class="card-text">그림을 보면 마음이 안정된다.</p>
</div>
</div>
HTML,CSS 폼 부분에 파일 업로드 넣기
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
- CSS 조정해주기 코드
.posting-box > .custom-file {
margin-bottom: 20px;}
//파일 업로드 라이브러리
<script src="https://cdn.jsdelivr.net/npm/bs-custom-file-input/dist/bs-custom-file-input.js"></script>
//파일 업로드 코드
bsCustomFileInput.init()
file = request.files["file_give"]
save_to = 'static/mypicture.jpg'
file.save(save_to)
function posting() {
let title = $('#title').val()
let content = $("#content").val()
let file = $('#file')[0].files[0]
let form_data = new FormData()
form_data.append("file_give", file)
form_data.append("title_give", title)
form_data.append("content_give", content)
$.ajax({
type: "POST",
url: "/diary",
data: form_data,
cache: false,
contentType: false,
processData: false,
success: function (response) {
alert(response["msg"])
window.location.reload()
}
});
}
myname = '홍길동'
text = f'내 이름은 {myname}입니다.'
: 더 많은 사용법을 원한다면 구글에 python datetime 사용법 이라고 검색해보자!
//임포트하기
from datetime import datetime
//자주 쓰는 문법 1: 지금 날짜 시간 표시하기
now = datetime.now()
print(now)
//자주 쓰는 문법 2: 날짜 시간을 원하는 형태로 변환하기
date_time = now.strftime("%Y-%m-%d-%H-%M-%S")
print(date_time)
//먼저, 확장자를 빼내기
extension = file.filename.split('.')[-1]
//새로운 이름 만들어 주기
today = datetime.now()
mytime = today.strftime('%Y-%m-%d-%H-%M-%S')
filename = f'file-{mytime}'
//새로운 이름으로 저장하기
save_to = f'static/{filename}.{extension}'
file.save(save_to)
//변경된 파일 이름을 db에도 저장하기
doc = {
'title':title_receive,
'content':content_receive,
'file':f'{filename}.{extension}',
}
db.diary.insert_one(doc)