Благодаря Тому теперь все работает. Если кто-то пытается преобразовать старые классы Webapp2 в Flask, вот код, который заставит его работать с python 3. Ваш синтаксис webapp2 будет работать для использования flask безопасных сеансов, выполнения перенаправлений, отправки запросов и записи на странице. Это будет обрабатывать большую часть того, что делает webapp2. Прямо сейчас вам придется вручную изменить ваши обработчики webapp2 на обработчик Flask внизу, но я собираюсь написать al oop, чтобы повторить это тоже, и я опубликую его здесь позже.
from flask import Flask, session,request,redirect
app = Flask(__name__)
class Response:
def __init__(self, handler):
self.handler = handler
def write(self, stuffAdd):
self.handler.data += stuffAdd
class BaseHandler:
def __init__(self):
self.data = ""
self.ChangePage="None"
self.response = Response(self)
self.session = session
self.request= {}
def redirect(self,arg):
self.ChangePage=arg
class FirstPage(BaseHandler):
def get(self):
self.redirect("/SecondPage")
def post(self):
self.response.write("First Page Post")
class SecondPage(BaseHandler):
def get(self):
self.response.write("second page")
def post(self):
self.response.write("Second Page Post")
class MainPage(BaseHandler):
def get(self):
self.session["name"]="Some Name"
self.session["phone"]="8675309"
self.response.write("""
<html>
<head>
</head>
<body>
""")
self.response.write("first thing to add")
self.response.write("""
<form method="post" action="/">
<input type="text" name="name">
<input type="submit">
""")
self.response.write("""
</body>
</html>
""")
def post(self):
name=self.request.get('name')
self.response.write("""
<html>
<head>
</head>
<body>
""")
self.response.write("this is the new post page<br/><br/>I posted " + name)
SessionName=self.session.get("name")
SessionPhone=self.session.get("phone")
self.response.write("<br/><br/>my session name is " + SessionName)
self.response.write("<br/><br/>my session phone number is " + SessionPhone)
self.response.write("""
</body>
</html>
""")
app.secret_key = 'your-secret-key'
@app.route('/',methods=['GET','POST'])
def daMain():
if request.method == 'GET':
daPage=MainPage()
daPage.get()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)
if request.method == 'POST':
darequests=request.form
daPage=MainPage()
daPage.request=darequests
daPage.post()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)
@app.route('/FirstPage',methods=['GET','POST'])
def daFirst():
if request.method == 'GET':
darequests=request.form
daPage=FirstPage()
daPage.request=darequests
daPage.get()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)
if request.method == 'POST':
darequests=request.form
daPage=FirstPage()
daPage.request=darequests
daPage.post()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)
@app.route('/SecondPage',methods=['GET','POST'])
def daSecond():
if request.method == 'GET':
daPage=SecondPage()
daPage.get()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)
if request.method == 'POST':
darequests=request.form
daPage=SecondPage()
daPage.request=darequests
daPage.post()
if daPage.ChangePage=="None":
return daPage.data
else:
return redirect(daPage.ChangePage)