2013-10-11 7 views
5

Jestem nowy w Pythonie i Flask. Mam folder szablonów w katalogu głównym mojej aplikacji, która ma dwa pliki.Zwrot wyrenderowanego szablonu z Flask-Restful pokazuje HTML w przeglądarce

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <title>{% block title %}{% endblock title %}</title> 

    <link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/united/bootstrap.min.css" rel="stylesheet"> 
    <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/ bootstrap-responsive.min.css" rel="stylesheet"> 
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> 
</head> 
<body> 
    <div id="main"> 
    <div class="utility-nav navbar navbar-fixed-top"> 
    <div class="navbar-inner"> 
    <div class="container"> 
     {# Navbar goes here. #} 
    </div> 
    </div> 
    </div> 
    <div class="content container"> 
    {% block main %}{% endblock main %} 
    </div> 
    </div> 
</body> 
</html> 

i

{% extends 'base.html' %} 
{% block title %}Page Title{% endblock title %} 
{% block main %} 
    <h2>This is a child template.</h2> 
{% endblock main %} 

A potem mam następujący funkcja

from flask.ext.restful import Resource,request,reqparse 
from app.business.login import Login 
from app.business.appointments import Appointments 
from app.models.models import User, Address,Appointment 
from flask import render_template 
    class AppointmentController(Resource): 
     def __init__(self): 
      pass 
     def get(self): 
     return render_template('index.html') 

więc kiedy uruchomić serwer i powiedzieć http://0.0.0.0:5000/appointment ja dostać

"<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n  <title>Page Title</title>\n \n  <link href=\"http://netdna.bootstrapcdn.com/bootswatch/2.3.2/united/bootstrap.min.css\" rel=\"stylesheet\">\n  <link href=\"http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/ bootstrap-responsive.min.css\" rel=\"stylesheet\">\n  <script src=\"http://code.jquery.com/jquery-1.9.1.min.js\"></script>\n  <script src=\"http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js\"></script>\n</head>\n<body>\n <div id=\"main\">\n <div class=\"utility-nav navbar navbar-fixed-top\">\n <div class=\"navbar-inner\">\n <div class=\"container\">\n  \n </div>\n </div>\n </div>\n <div class=\"content container\">\n \n\t<h2>This is a child template.</h2>\n\n </div>\n </div>\n</body>\n</html>" 

Czyli od szablony ar Działa, ale przeglądarka traktuje odpowiedź jako ciąg, a nie html. Co ja robię źle.

Odpowiedz

11

Zmodyfiowałem odpowiednio wynik. Ustawienie typu zawartości rozwiązało problem.

class AppointmentController(Resource): 
    def __init__(self): 
     pass 
    def get(self): 
     headers = {'Content-Type': 'text/html'} 
     return make_response(render_template('index.html'),200,headers) 
+0

Czy rozszerzenie pliku '.html'? – tbicr