내배캠 20일차

·2022년 12월 3일
0

내일배움캠프

목록 보기
20/142
post-thumbnail

TODO
html/css/js 를 이용한 기본틀완성
DB연동(회원가입)

vsc에서 venv생성

python -m venv ./venv

터미널에 입력해주기

error 수정 팁

interpreter error

vs code로 app.py를 실행할때 sqlalchemy가 존재함에도 ModuleNotFoundError가 생겨서 구글링을 몇 번 하고 해결법을 찾았다!
'code runner' 확장프로그램을 설치하고 ctrl+shift+p로 인터프리터 설정에 들어간 후 글로벌 인터프리터로 뜨는 것을 설정하고 난 뒤 오류가 해결되었다!

글로벌 DB 사용 오류

내 로컬 DB가 아닌 조원이 공유한 DB를 사용하였더니 UTF8오류가 나타났다. 그래서 config.py에서 아래와 같이 수정하였더니 해결되었다.

DB_URL = f"mysql+mysqlconnector://{db['user']}:{db['password']}@{db['host']}:{db['port']}/{db['database']}?charset=utf8mb4&collation=utf8mb4_general_ci"

그리고 mysql workbench를 사용하였는데 왜인지 모르겠지만 project2b2 경로를 앞에 다음과같이 써주어야 오류없이 작동이 되더라....또 삭제할때도 백틱으로 감싸줘야 오류없이 작동이 됨.......dbeaver가 아니라서 그런건가....?
workbench라서 그런건지는 잘모르겠다.

#테이블조회
SELECT * FROM project2b2.user;
#데이터추가
INSERT INTO project2b2.user(email, password, name) VALUES('12', '123', '123');
#데이터 삭제
 DELETE FROM `project2b2`.`user` WHERE  `email`='1234';

뉴스피드

회원가입(app.py)

# 회원가입
@app.route('/user/register', methods=['POST'])
def save_user():
    userId = request.form['id']
    password = request.form['password']
    userName = request.form['name']
    email = request.form['email']

    sql = 'INSERT INTO project2b2.user(id, email, password, name) VALUES(%s, %s, %s, %s)'

    app.database.execute(sql, (userId, email, password, userName)).lastrowid #실행한 테이블의 마지막 행 아이디를 가져옴.

    return jsonify({'msg':'회원 가입 성공'})

회원가입(login.js)

// 회원가입한 유저정보 DB에 저장----------------------------
function save_user() {
  let userId = $("#joinid").val();
  let password = $("#joinpassword").val();
  let userName = $("#username").val();
  let email = $("#email").val();

  $.ajax({
    type: "POST",
    url: "/user/register",
    data: {
      id: userId,
      password: password,
      name: userName,
      email: email,
    },
    success: function (response) {
      alert(response["msg"]);
      window.location.reload();
    },
  });
}
profile
개발자 꿈나무

0개의 댓글