본문 바로가기

기초공부

[Flask]빠르게 보여주기 - 정적 파일 # 자바스크립트 파일 function sayHello(){ alert("hello world!"); } 실제로 다음과 같은 결과가 나온다 참고 Flask 문서 참고
[Flask]빠르게 시작하기 - HTTP 메소드 모든 포스트 목록 http 메소드 http는 웹 어플리케이션에서 사용하는 프로토콜로, url 접근에 대해 몇 가지 다른 방식을 제공한다. 기본적으로는 GET방식으로 제공되지만, route()데코레이터에 methods 인자를 제공하면 다른 방식으로 변경할 수 있다. 다음은 그에 대한 예시이다. # python 파일 from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/') def success(name) : return 'Welcome %s' % name @app.route('/login', methods = ['POST', 'GET']) # route option 추가 def login()..
[Flask]빠르게 시작하기 - URL 생성 모든 포스트 목록 URL 생성 라우팅이 설정된 함수에 대한 URL을 사용하기 위하여 url_for() 메서드를 사용할 수 있다. 이 함수는 인자로 함수의 이름과 URL 변수 이름을 인자로 받는다. 알 수 없는 인자는 쿼리 인자로 URL에 덧붙여진다.예시는 아래와 같다 from flask import Flask, url_for app = Flask(__name__) @app.route('/') def index(): pass @app.route('/login') def login(): pass @app.route('/user/') def profile(username): pass with app.test_request_context(): print (url_for('index')) # index 함수과 연..
[Flask]빠르게 시작하기 - 라우팅 모든 포스트 목록 라우팅 route() 데코레이터는 함수와 URL을 연결해준다. 아래는 기본적인 예제들이다 from flask import Flask app = Flask(__name__) @app.route('/') # 주소가 /일 때 def index() : return "index page" @app.route('/hello') # 주소가 /hello일 때 def hello() : return "hello world" if __name__=="__main__" : app.run() 변수 규칙 URL에 변수 부분을 추가하기 위해 다음과 같이 작성할 수 있다. from flask import Flask app = Flask(__name__) @app.route('/index/') # menu 위치에 값..
[Flask]빠르게 시작하기 - 디버그 모드 모든 포스트 목록 디버그 모드 run() 메소드는 로컬개발서버를 실행시키기에 좋지만 코드 변경 후에 수동으로 재시작해야한다. 그런 번거로운 방식을 개선하기 위해 디버그 모드를 지원한다. 서버는 코드 변경을 감지하고 자동으로 리로드하고, 문제가 발생하면 문제를 찾을 수 있도록 디버거를 제공한다. 디버깅을 활성화하는 방법에는 두 가지 있다. app.debug = True app.run() app.run(debug = True) * 주의 : 대화식 디버거가 forking 환경에서 동작되지 않음에도 불구하고 임의의 코드가 실행될 수 있다. 이런 점은 주요 보안 취약점이 될 수 있으므로 운영 환경에서는 절대 사용하지 말아야한다. 참고 Flask 문서 디버거로 작업하기
[Flask]빠르게 시작하기 - 기본 애플리케이션 모든 포스트 목록 설치하기 우선 설치하였다 기본 애플리케이션 우선 아래와 같이 작성하였다. cmd 창에서 실제로 실행해서 http://127.0.0.1:5000/ 페이지로 이동하면 다음과 같은 결과가 출력된다. 해석해보자. from flask import Flask # Flask class를 import 했다. # 이 클래스의 인스턴스가 WSGI(Web Server Gateway Interface) 어플리케이션이 된다. app = Flask(__name__) # Flask라는 객채를 생성하고 인자를 __name__을 입력한다. # 단일 모듈로 사용한다면, __name__을 인자로 사용해야 한다. # 어플리케이션으로 시작되는지, 모듈로 임포트 되는지에 따라 이름이 달라지기 때문이다. # 플라스크에서 템플릿..
SQL INJECTION 모든 포스트 목록 (관련 문제 풀 때마다 추가하여 정리할 것) SQL INJECTION SQL을 사용하여 웹사이트의 데이터베이스에 접근하는 기법 SQL INJECTION 기법 기본 방식 입력 폼에서 or 연산을 이용해 조건식을 참으로 만들어 데이터에 접근하는 방식이다. 예시 - LOS 1번 예를 들어 일반적으로 로그인을 하면 SELECT * FROM table WHERE id='yourID' and pw='yourPW' 쿼리문에 id와 pw 값을 전달하여 실행된다. 이 때 pw로 입력 하는 값 뒤에 'or 1=1과 같이 항상 참인 조건을 입력하면 최종적인 쿼리문은 SELECT * FROM table WHERE id = 'idexample' and pw='pwexaple'or 1=1이 된다. WHERE 조..
[PHP]Superglobals, $_SERVER 모든 포스트 목록 Superglobals 모든 지역에서 접근 가능한 내장함수이다. 함수나 메소드에서 변수에 접근하기 위해 global $variable;라고 선언할 필요가 없다.(정확한 내용은 밑의 사이트 참고) Superglobals는 다음과 같다. $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV $_SERVER header, paths, script locations 같은 배열 포함 정보이다. 이 배열의 엔트리는 웹서버에 의해서 생성되는데 반드시 생성될 것이라는 보장은 없다. 생략하거나 리스트로 제공하지 않을 수 있기 때문이다. $_SERVER의 요소는 다음과 같다.(일부만 적음) HTTP_USER_AGENT현재 페이..