내배캠 23일차

·2022년 12월 6일
0

내일배움캠프

목록 보기
24/142
post-thumbnail

TODO

기본api에 있는 요소는 다 적용완료
login

  • 칸을 채우지않으면 로그인/회원가입불가
  • 이메일 유효성체크와 중복체크

post

  • tiny editor와 연결
  • 게시판분야 추가
  • 제목을 입력하지 않아도 db에 저장됨, 수정필
  • 파일올리는건 따로 설정해야한다는데 아직 잘 모르겠음(내일)

추가한 코드 중 몇개를 써두자면

// 시간설정(POST.JS)
var Target = document.getElementById("clock");
function clock() {
  var time = new Date();

  var year = time.getFullYear();
  var month = time.getMonth();
  var date = time.getDate();

  var hours = time.getHours();
  var minutes = time.getMinutes();
  var seconds = time.getSeconds();

  Target.innerText =
    `${year}${month + 1}${date}` +
    `${hours < 10 ? `0${hours}` : hours}:${
      minutes < 10 ? `0${minutes}` : minutes
    }:${seconds < 10 ? `0${seconds}` : seconds}`;
}
clock();
setInterval(clock, 1000);
# 게시글 등록하기(app.py)
@app.route('/write', methods=['POST'])
def post_board():
    db = pymysql.connect(
        user='',
        password='',
        host='',
        port=3306,
        database='project2b2',
        charset='utf8'
    )
    curs = db.cursor()

    selectPost = request.form['category-id']
    postTitle = request.form['post-title']
    postContent = request.form['post-content']
    userId = session['id']
    # postFile = request.form['data']
    # userName = request.form['name']
    # print(selectPost, postTitle, postContent, userId)

    sql1 = f'INSERT INTO project2b2.board(title,content,created_at,category_id,user_id) VALUES (%s, %s, NOW(), %s, %s)'
    # sql2 = f'INSERT INTO project2b2.board(data) VALUES(LOAD_FILE("{postFile}"))'
    
    curs.execute(sql1,(postTitle,postContent,selectPost,userId)) # 데이터베이스에 넣어주기 위함
    # curs.execute(sql2)
    db.commit() #삽입,삭제,수정할때, 최종적으로 데이터베이스를 만져줄때만
    db.close()

    return redirect('/')

몇시간동안 붙잡고 있었던 이메일 유효성검사와 중복체크

어이없게도 curs = db.cursor()를 제대로 써주지 않아 실행이 되지않았다.......
이런 멍청한 실수때문에 같이 고생해주신 많은 분들께 감사를.....

# 회원가입
@app.route('/user/register', methods=['POST'])
def save_user():
    db = pymysql.connect(
        user='',
        password='',
        host='',
        port=3306,
        database='project2b2',
        charset='utf8'
    )
    curs = db.cursor()

    userId = request.form['id']
    password = request.form['password']
    userName = request.form['name']
    email = request.form['email']

    sql_check = f'select id,email,name from `user`'
    
    curs.execute(sql_check)
    result = curs.fetchall()
    db.close() 

    list_result = list(result)

    for i in range(len(list_result)):
        if list_result[i][1] != email:
            if '@' not in email:
                return jsonify({'msg':'이메일 형식이 아닙니다.'})

        else:
            if list_result[i][0] == userId:
                return jsonify({'msg':'동일한 아이디가 있습니다.'})
            elif list_result[i][1] == email:
                return jsonify({'msg':'동일한 이메일이 있습니다.'})
            elif list_result[i][2] == userName:
                return jsonify({'msg':'동일한 닉네임이 있습니다.'})


    db = pymysql.connect(
        user='',
        password='',
        host='',
        port=3306,
        database='project2b2',
        charset='utf8'
    )
    curs = db.cursor()

    userId = request.form['id']
    password = request.form['password']
    userName = request.form['name']
    email = request.form['email']

    print(userId,password,userName,email)
    sql = f'INSERT INTO `user` (id, password, name, email) VALUES("{userId}", "{password}", "{userName}", "{email}");'
    
    curs.execute(sql) # 데이터베이스에 넣어주기 위함
    db.commit() #삽입,삭제,수정할때, 최종적으로 데이터베이스를 만져줄때만
    db.close()

    return jsonify({'msg':'회원 가입 성공'})
profile
개발자 꿈나무

0개의 댓글