2014-11-12 2 views
0

Может ли кто-нибудь дать мне несколько указаний о том, как отображать другие страницы? Я это мой main.pyМой сайт движка Google отображает только мою главную страницу после перехода на python. 2.7

import webapp2 
import os 
import jinja2 

jinja_environment = jinja2.Environment(autoescape=True, 
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__)))) 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
     template = jinja_environment.get_template('index.html') 
     self.response.write(template.render()) 


application = webapp2.WSGIApplication([ 
             ('/',MainPage), 
             ], debug=True) 

И это мой app.yaml

application: ftmyersptcong 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

libraries: 
- name: jinja2 
    version: latest 

handlers: 
- url: /styles 
    static_dir: styles 

- url: /images 
    static_dir: images 

- url: /scripts 
    static_dir: scripts 

- url: /.* 
    script: main.application 

Я постоянно получаю 404 не найден страницу, когда я нажать на любую из ссылок на другие страницы, которые были href'd в моем html-коде. Это то, что в журнале:

INFO  2014-11-12 18:15:42,434 module.py:652] default: "GET/HTTP/1.1" 500 - 
INFO  2014-11-12 18:28:21,151 module.py:652] default: "GET/HTTP/1.1" 200 1274 
INFO  2014-11-12 18:28:21,272 module.py:652] default: "GET /styles/main.css HTTP/1.1" 200 1880 
INFO  2014-11-12 18:28:27,512 module.py:652] default: "GET /downloads.html HTTP/1.1" 404 154 
+0

Что вы ожидаете, когда перейдете в /downloads.html? У вас есть только маршрут и обработчик, определенный для параметра «/» в определении MainPage WSGIApplication. Вы должны определить «/downloads.html» в качестве другого маршрута и сопоставить его с любым обработчиком, с которым вы хотите иметь дело с этим маршрутом. – Mike

ответ

0

У вас есть несколько статических маршрутов каталогов, определенных в app.yaml (изображения, скрипты, стили) - именно поэтому ваш файл CSS загружается нормально, например, , Тогда у вас есть все, что не соответствует каталогам, идущим в «приложение» в вашем файле «main.py».

Здесь вы определяете только один маршрут - «/», а MainPage определяется как ваш обработчик для этого маршрута. Вызовы на «/downloads.html» отправляются на тот же маршрутизатор, но поскольку он не соответствует маршруту «/», возвращается 404.

Необходимо указать другие маршруты и обработчики в своем main.py. Например:

application = webapp2.WSGIApplication([ 
             ('/',MainPage), 
             ('/downloads.html',DownloadPage) 
             ], debug=True) 

Тогда вы должны определить DownloadPage аналогично MainPage для обработки этого маршрута. Вы также можете выполнять сопоставления шаблонов в определении маршрута, чтобы передавать переменную информацию, но для вашего примера выше должно работать.

+0

Я так счастлив! Спасибо, что помогли мне здесь! Новый программист здесь. Я закончил тем, что в основном создавал больше обработчиков для своих страниц, и вот и они работали. 'Приложение = webapp2.WSGIApplication ([\t \t \t \t \t \t \t \t \t \t ('/', MainPage), ('/ index.html', MainPage), ('/ downloads.html', DownloadPage), («/signin.html',SignIn) \t \t \t \t \t \t \t \t \t], отлаживать = True)' – user4192000

Смежные вопросы