본문 바로가기

웹개발/flask

(8)
게시판(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_..
게시판(flask)-파일 업로드, 다운로드 파일 업로드, 다운로드 기능을 만들기 위해 먼저 필요한 라이브러리들을 import 한다.from werkzeug.utils import secure_filenameimport osfrom 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'] = UPLO..
게시판(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'] con..
게시판(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.cu..
게시판(flask)-회원가입, 로그인, 비밀번호 유효성 검사 이전에 nodejs로 만들었던 게시판의 기능을 flask로 다시 구현하였다.비밀글, 이메일 인증, 게시판 카테고리 나누기는 제외하고 나머지 기능들을 같은 구조로 만들었다. 이전에는 CRUD부터 만들고 회원가입, 로그인 기능을 만들었지만 수정과 삭제는 본인의 글만 하게 하기 위해서회원가입, 로그인 기능을 먼저 만들었다. from flask import Flask, render_template, session, url_for, request, redirect, flashimport pymysqlapp = Flask(__name__)app.secret_key = 'sample_secret'def connectsql(): conn = pymysql.connect(host='localhost', user =..
flask - mySQL 연동 pip install pymysql​flask에서 mySQL을 연동해서 사용하려면 pymysql이라는 모듈을 사용해야 한다. import pymysqldb = pymysql.connect(host='127.0.0.1', user='root', password='vkfksshdmf0207', db='flasksql', charset='utf8')cursor = db.cursor()sql = "select * from users"cursor.execute(sql)cursor.fetchall() #모든 행cursor.fetchone() # 하나의 행cursor.fetchmany(n) # n개의 데이터 db.commit()db.close()우선 pymysql의 connect 함수를 이용해 자신의 데이터베이스와 ..
flask flask는 파이썬 기반 웹 프레임워크이다.먼저 설치를 위해 cmd창에서pip install flask이 명령어를 쳐주면 준비는 끝이다. from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': app.run()기본적인 flask의 어플리케이션 구조이다.run()을 이용해 서버를 실행시키면, 코드가 변경 되었을 때 수동으로 재시작을 해줘야 반영이 된다.디버그 모드를 사용하면, 코드가 바뀌었을 때 서버가 알아서 재시작된다.app.debug = Trueapp.run()app.run(debug=True)두 방법 중 하나를 사용하면 된..