로컬에서는 잘 테스트가 되는데, 서버에 올리기만 하면 오류가 나서 삽질을 했다.
파이썬 소스 안에 한글이 들어갈 경우 coding 양식을 맨앞에 써줘야 하는데 빼놓았기 때문이다.
# -*- coding: cp949 -*-
작업하는데 있어 필요한 자료들 올라옵니다.
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from util.sessions import Session
class MainPage(webapp.RequestHandler):
def get(self):
session = Session()
if 'words' in session:
words = session['words']
else:
words = 'no words'
self.response.out.write('<html><body>')
self.response.out.write('<form action="/" method="post" enctype="multipart/form-data">')
self.response.out.write('Upload File: <input type="file" name="txt"><br>')
self.response.out.write('<input type="submit" name="submit" value="Submit">')
self.response.out.write(str(words))
self.response.out.write('</form>')
self.response.out.write('</body></html>')
def post(self):
words = self.request.get('txt')
session = Session()
session['words'] = words.split()
self.redirect('/')
application = webapp.WSGIApplication([('/', MainPage)], debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
application: wogud86
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: main.py
#D:\AppEngine\HelloWorld
print 'Content-Type: text/plain'
print 'hello world'
app Engine 구동
command 창에 다음과 같이 입력 -> http://localhost:8080/ 접속하여 결과 확인
(명령이 끝나지 않고, 이 상태 에선 main.py수정 후 브라우저에서 새로고침 만으로 확인 가능)
#D:\AppEngine\HelloWorld
import wsgiref.handlers
from google.appengine.ext import webapp
class MyHandler(webapp.RequestHandler):
def get(self):
self.response.out.write("hello!")
def main():
app = webapp.WSGIApplication([(r'.*', MyHandler)], debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == '__main__':
main()
Hello World
#D:\AppEngine\HelloWorld
import wsgiref.handlers
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
class MyHandler(webapp.RequestHandler):
def get(self):
self.response.out.write(template.render('main.html',{}))
def main():
app = webapp.WSGIApplication([(r'.*', MyHandler)], debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == '__main__':
main()