μΉ κ°λ° μ’ ν©λ°μμ λ°°μ°κ³ μ΅νλ μ§μμ λ°νμΌλ‘ μ μ¬ν μ¬μ΄νΈλ₯Ό νΌμ κΈ°νλΆν° μλ² λ°°ν¬ λ° λλ©μΈ μ°κ²°κΉμ§ μ±κ³΅μν€λ κ²μ΄ λͺ©νμλ€.
(1) λ¨Όμ λλ΅μ μΈ μ 체 λμμΈκ³Ό μ€μν κΈ°λ₯μ μ 리νκΈ° μν΄ draw.ioλ₯Ό μ¬μ©νκ³ μλ μ¬μ§κ³Ό κ°μ΄ μ νλ νΈλ ν¨κ» λ£μ΄μ κ°λ¨ν κΈ°ν ꡬμμ μ§ννλ€.
(2) κ·Έλ¦¬κ³ μμ±λ μ΅μ’ μ΄λ―Έμ§!
(3) AWSλ₯Ό μ΄μ©ν΄μ μλ² λ°°ν¬μ μ±κ³΅νκ³ κ°λΉμ μ¬μ΄νΈμμ λλ©μΈμ ꡬμ ν΄μ λλ©μΈ μ°κ²°κΉμ§ μ±κ³΅νλ€!
-> μ¬μ€ μ 체μ μΈ νμ μΉ κ°λ° μ’ ν©λ°μμ μ€μ΅νλ λ΄μ©λ€κ³Ό ν¬κ² λ€λ¦μ΄ μμ΄, μ΄λ €μμ λλΌμ§λ μμλλ° λ€λ₯Έ μΈμΈν κΈ°λ₯λ€μ ꡬννλ κ²μ μμ΄μλ μ²μμ΄λ€ 보λ λ§μ΄ ν€λ§€κΈ°λ νλ€.
cssμ μμ΄μ κ°μ₯ μ κ²½μ μΌλ λΆλΆμ λͺ¨λ°μΌ λ²μ κ³Ό λ°μ€ν¬ν λ²μ κ³Ό κ°μ΄ νλ©΄ ν¬κΈ°μ λ°λΌ νλ©΄ ꡬμ±μ λ¬λ¦¬νλ λΆλΆμ΄μλ€.
μΈλ―Έ(?) λ°μν μΉ κ΅¬νμ΄λΌκ³ λ§ν μ μμ κ² κ°λ€...γ
λ°μ€ν¬ν νλ©΄ λΉμ¨μμλ μμ μ¬μ§κ³Ό κ°μ΄ inputμ΄ ν(κ°λ‘)μΌλ‘ μ λ ¬μ΄ λμ΄ μλ€λ©΄ λͺ¨λ°μΌ λ²μ νλ©΄ λΉμ¨μμλ inputμ μ΄(μΈλ‘)λ‘ μ λ ¬μ νκ³ μΆμλ€.
μ²μμ μ΄λ»κ² ꡬνμ νλ©΄ μ’μκΉ μκ°μ νλ€κ°... λ―Έλμ΄μΏΌλ¦¬λ₯Ό μ΄μ©ν΄μ max-widthλ₯Ό μ€μ νκ³ flex λ°©ν₯λ§ λ°κΎΈλ©΄ λκ² λ€λ μκ°μ νλ€.
κ·Έ κ²°κ³Ό...!
μ΄λ κ² μ±κ³΅!!
λμμΈμ μΌλ‘λ ν¬κ² μ°¨μ΄κ° μμ§λ§ μΌλ¨ λ―Έλμ΄μΏΌλ¦¬λ₯Ό νμ©νλ€λ μ μμ λΏλ―νλ€...!
μμ±ν μ½λ(λ―Έλμ΄μΏΌλ¦¬)
@media screen and (max-width: 1060px) {
.myinput {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
/* μΈλ‘ μ λ ¬λ‘ λ³κ²½ */
width: 85%;
margin: 50px auto 0px auto;
}
.input-box {
margin-bottom: 20px;
width: 100%;
}
.mydate {
margin-top: 30px;
}
}
cssμμ μκ°μ§λ λͺ»ν λκ΄μ... λ°λ‘ λΆνΈμ€νΈλ© λ³κ²½ λ°©λ²μ΄μλ€.
input λ°μ€λ buttonμ κ²½μ° λΆνΈμ€νΈλ©μμ κ°μ ΈμκΈ° λλ¬Έμ μμμ μ§μ λ³κ²½ν΄μΌλ§ νλ€. κ·Όλ° μ νμλ‘ classλ₯Ό λΆλ¬μλ λ¨Ήνμ§ μλ κ±°... γ γ γ γ γ
κ·Έλ λ€κ³ !importantμ μ¬μ©ν μλ μμλ€(!importantλ μ΅λν μ¬μ©νμ§ μλ κ² μ’λ€κ³ ν΄μ)
κ·Έλμ μ΄λ»κ² ν΄μΌ νλ λ§ κ΅¬κΈλ§μ νλ μ€μ cssμ μ°μ μμλ₯Ό κΉ¨λ«κ² λκ³ classκ° μλ id κ°μ μ€μ μ νμλ‘ κ°μ Έμ€λ©΄ λκ² κ΅¬λ! μΆμλ€.
cssμμλ classλ³΄λ€ idλ₯Ό λ μ°μ μΌλ‘ νλ¨νκΈ° λλ¬Έμ id κ°μ λΆλ¬μμ cssλ₯Ό λ³κ²½νλ©΄ κ·Έλλ‘ λ°μμ΄ λλ κ²μ΄μλ€.
μμ ν κΈ°λ³Έ μ§μμ΄μλλ°... λ§μ νμν λλ μμ μκ°λ μ λ¬λ€.
μ΄μ°μ΄μ° λΆνΈμ€νΈλ© λ³κ²½ λ°©λ²λ ν΄κ²°νκ³ μμ‘°λ‘κ² μ½λλ₯Ό μμ±νκ³ μλ μμ€μ μλ² μ€λ₯κ° λ°μ...
flaskλ‘ μλ²μ ν΄λΌλ₯Ό μ°κ²°νκ³ μλ λμ€μ κ°μκΈ° input λ°μ€μμ μ
λ ₯λ κ°μ΄ DBλ‘ λ€μ΄κ°μ§ λͺ»νκ³ μμλ€.
(μλ²μμ μ€λ₯ μκΈΈ λλ§λ€ μ¬μ₯μ΄ μ² λ νλ€;;)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'work_give'
Bad Requestλ μλͺ»λ urlμ μ°κ²°μν€κ±°λ νΈμ€νΈ μ΄λ¦μ μ λλ‘ μ
λ ₯νμ§ μλ€κ±°λ λ±λ±μ μ΄μ λ‘ μλͺ»λ μμ²μ΄ λ€μ΄μλ€λ 건λ°..
μ°¨κ·Όμ°¨κ·Ό μ½λλ€μ μ΄ν΄λ΄€λλ° url μ°κ²°λ μ λμκ³ νλΌλ―Έν°μλ μ€ν μμ΄ μ λ€μ΄κ° μμλ€.
λ체 λ¬΄μ¨ μ΄μ μΈκ° μ΄μ¬ν ꡬκΈλ§νκ³ λ ꡬκΈλ§νκ³ λ ꡬκΈλ§νλλ° ν΄κ²°λμ§ μκ³ λκ°μλ€.
κ²°κ΅, λ΅λ΅ν λ§μμ λ©ν λκ» λμμ μμ²νλλ° μ€λ₯ μμΈμ΄ λ무 μ΄μ΄κ° μμλ€ γ
γ
γ
γ
γ
γ
γ
γ
γ
γ
γ
μ€νλλ€...
function save_work(){
let work = $('#work').val()
$.ajax({
type: "POST",
url: "/work",
date: {work_give: work}, // μ΄ λΆλΆμμ data κ° date λ‘ μ€νκ° λ κ² κ°μ΅λλ€!
success: function (response){
alert(response['msg'])
}
});
}
dataλ₯Ό dateλ‘ μλͺ» μ
λ ₯νκ³ λκ° νλ Έλμ§ λͺ¨λ₯΄κ³ μμλ€ π€£
μ΄λ° νμ ν μ€λ₯λ‘ λμμ μμ²ν λ©ν λκ»λ λ무 μ£μ‘νκ³ μ΄λ° μ¬μν μ€ν νλ μ λλ‘ νμΈλ μν λ μμ μκ² νλ λ¬λ€...
κ·Έλλ μ§κΈ νλ² λ€μ κΉ¨λ«κ² λ κ² μ΄λκ° μΆκΈ°λ νλ€.
λλΆμ ꡬκΈλ§λ μ€μ»· ν΄λ³΄κ³ μλ¬λ©μμ§λ₯Ό μ μ½κ³ νλ¨νλ λ²λ μ΄λ μ λ λ°°μ΄ κ² κ°μμ μ΅λν κΈμ μ μΌλ‘ μκ°νκ³ μλ€.
=> νλ‘ μ¬μ΄νΈλ₯Ό λ§λ€μ΄λ³΄λ©΄μ λκΌλ κ²μ μμ§ κΈ°λ³ΈκΈ°κ° μμ£Ό λ§μ΄ λ§μ΄ λ§μ΄ λΆμ‘±νλ€λ κ²!
μ¬μ€ λ무 λΉμ°ν κ±°λ€.. νμμλ μκ°νκ³ μμλ λΆλΆμ΄λΌ λ³Έ κ³Όμ μ κΉμ§ μ°¨κ·Όμ°¨κ·Ό κΈ°λ³ΈκΈ°λ₯Ό μ€λΉν΄μΌκ² λ€κ³ μκ°λ νλ€.
λ νλλ μ΅λν λ§μ μλ¬λ₯Ό λ§λκ³ μΆλ€λ κ²!
νμ€ν νλ² μλ¬λ‘ κ³ μμ ν΄λ³΄λκΉ μ€νλ € μ»κ² λλ κ²λ λ§κ³ ꡬκΈλ§μ νλ©΄μ μκ² λλ μ§μλ€λ μκ³ κ°μ₯ μ€μν 건 ν΄κ²°νμ λμ ν¬μ΄κ°..??
μλ¬λ©μμ§λ₯Ό λ§λλ©΄ κ²λ¨Ήμ§ λ§κ³ μ°¨κ·Όμ°¨κ·Ό ν΄κ²°ν΄λκ°λ νλλ₯Ό κ°μ ΈμΌκ² λ€κ³ λ€μ λ€μ§ν μ μλ κΈ°νμλ€.
κ²°λ‘ μ... μΉ κ°λ° μ’ ν©λ° λμ€μ 2νλ λ ν΄μΌκ² λ€ :)