본문 바로가기

웹개발

(27)
게시판(flask)-관리자 글 삭제 권한 관리자 권한은 아주 간단하게 구현했는데, read링크에 isadmin = session['username'] == 'admin' 이렇게 isadmin 변수를 추가하고 read.html파일로 보내준다. {% if iswriter or isadmin %} 삭제 {% endif %} {if iswriter %} 수정 {% endif %} 그리고 이런식으로 구조를 바꾸면 관리자일 때는 삭제 버튼이 활성화된다. 회원가입할 때 이메일뿐만 아니라 username도 중복체크를 하기 때문에 username이 admin일 때 관리자로 판단한다. 그리고 delete링크 처리 부분에서도 isadmin = session['username'] == 'admin' if username in data or isadmin: 이런 코드..
게시판(flask)-제목, 내용 기준 검색 제목 내용 검색 검색을 위해서 board.html 에 검색 form을 추가하였다. @app.route('/search') def search(): search_type = request.args.get('search_type') query = request.args.get('query') conn = connectsql() cursor = conn.cursor(pymysql.cursors.DictCursor) if search_type == 'title': cursor.execute("SELECT * FROM posts WHERE title LIKE %s", ('%' + query + '%',)) elif search_type == 'content': cursor.execute("SELECT * FROM..
게시판(flask)-파일 업로드, 다운로드 파일 업로드, 다운로드 기능을 만들기 위해 먼저 필요한 라이브러리들을 import 한다. from werkzeug.utils import secure_filename import os from flask import send_from_directory 그리고 mysql에서 posts 테이블에 filename이라는 속성을 만든다. mysql> ALTER TABLE posts ADD COLUMN filename VARCHAR(255) NULL; UPLOAD_FOLDER = 'uploads' ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'pptx', 'hwp', 'hwpx', 'docx'} app.config['UPLOAD_FOLDER']..
게시판(flask)-댓글, 추천 댓글을 저장하기 위한 테이블부터 만들어야 한다. mysql> CREATE TABLE comments ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> post_id INT, -> username VARCHAR(255), -> content TEXT -> ); mysql에서 CREATE TABLE로 comments 테이블을 만들었다. @app.route('/comment/', methods=['POST']) def comment(id): if 'username' not in session: return redirect(url_for('login')) username = session['username'] content = request.form.get('content') conn..
게시판(flask)-CRUD 우선 글을 저장하기 위한 테이블을 mysql에서 만들어줘야 한다. mysql> CREATE TABLE posts ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> title VARCHAR(255), -> content TEXT -> ); 이렇게 만들었었는데 글을 쓴 username도 있어야 한다는 사실을 뒤늦게 깨달아서 ALTER TABLE posts ADD COLUMN username VARCHAR(255); 이걸로 username 속성까지 추가해 주었다. CRUD 기능을 만들기 전에 먼저 @app.route('/board') def board(): conn = connectsql() cursor = conn.cursor(pymysql.cursors.DictCursor) qu..
게시판(flask)-회원가입, 로그인, 비밀번호 유효성 검사 이전에 nodejs로 만들었던 게시판의 기능을 flask로 다시 구현하였다. 비밀글, 이메일 인증, 게시판 카테고리 나누기는 제외하고 나머지 기능들을 같은 구조로 만들었다. 이전에는 CRUD부터 만들고 회원가입, 로그인 기능을 만들었지만 수정과 삭제는 본인의 글만 하게 하기 위해서 회원가입, 로그인 기능을 먼저 만들었다. from flask import Flask, render_template, session, url_for, request, redirect, flash import pymysql app = Flask(__name__) app.secret_key = 'sample_secret' def connectsql(): conn = pymysql.connect(host='localhost', use..
게시판-비밀번호 유효성 검사, 관리자 글 삭제 권한 기능 추가 const digit = /\d/; if(password.length 글 수정 글 삭제 이렇게 isadnin이 참일 때는 글 삭제 버튼만 이용할 수 있게 만들었다.
게시판-파일 업로드, 다운로드 파일 업로드, 다운로드를 하기 위해서 multer를 사용했다. npm install multer multer를 먼저 다운받아주고, ... 파일: write.ejs 파일에 파일 업로드 부분을 추가하고 form에서 enctype을 설정해주었다. filePath: { type: DataTypes.STRING, allowNull: true, }, fileName: { type: DataTypes.STRING, allowNull: true } posts 테이블에 설정도 바꿔주고 let filePath = null; let fileName = null; if (req.file) { filePath = req.file.path; fileName = req.file.originalname; } const hashedP..