Kolben Umgang mit PDF-Datei als eigene Seite
Für meine persönliche website, ich möchte eine separate Seite nur für meinen Lebenslauf, das ist ein PDF. Ich habe versucht, mehrere Möglichkeiten, aber ich kann nicht herausfinden, wie man Fläschchen Griff eine PDF-Datei.
- Kann man den web-server die Datei statisch (wie Sie wahrscheinlich tun für Ihre
/static
Dateien sowieso). Wenn dem so ist, können Sie nur einen link in Ihrem Kolben-app, um die die statische Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Hinweis für jeden, der kam auf diese Frage, weil Sie versuchen, zu dienen PDF-Dateien aus einer Datenbank mit Kolben. Einbetten einer PDF-Datei, wenn die Datei gespeichert ist, auf eine Datenbank ist nicht so einfach, wie es in der statischen Ordner. Verwenden Sie die
make_response
Funktion und geben Sie die entsprechenden Header, damit der browser weiß, was zu tun mit Ihre binäre PDF-Daten, anstatt nur wieder aus der Sicht der Funktion, wie normale. Hier etwas pseudocode um Hilfe:Können Sie ändern Sie den "Content-Disposition" von 'inline' zu 'attachment', wenn Sie möchten die Datei herunterladen statt im browser anzeigen. Sie konnte auch dieser Blick in eine subdomain, z.B. docs.yourapp.com statt yourapp.com/docs. Der Letzte Schritt ist, um tatsächlich das einbetten dieses Dokument in den browser. Auf einer Seite, die Sie möchten, verwenden Sie einfach rawrgulmuffin Strategie:
Könnte man auch machen das src-Dynamik mit Jinja2 template. Setzen wir dies in doc.html (Hinweis: die geschweiften Klammern):
Dann in einem view-Funktion, die Sie einfach nur wieder die gerenderte Vorlage mit den entsprechenden doc_id:
Diese bettet ein Dokument der Benutzer angefordert, die aus einer Datenbank mit einer einfachen GET-Anforderung. Hoffe, dies hilft jemand arbeitet mit vielen PDFs in eine Datenbank!
Haben Sie zwei Möglichkeiten. Sie können entweder Rendern eines templates verwendet, eine statische PDF-Datei zu machen oder ein template, erzeugt ein PDF. Würd ich persönlich mit der ersten option gehen.
Dies, SO Frage gewidmet ist, wie schreibt man eine HTML-Seite, die gibt eine PDF-Datei. Sie können diese in Ihrem jinja2 template.
Hier eine schnelle und schmutzige Art und Weise, um es getan.
Oder Sie können eine jinja2 template, das setzt alle Kopfzeilen zur Rückgabe verpflichtet, eine PDF-Datei und dann sagen,
mit einem view-Funktion, die aufgerufen wird static, liefert die pdf-Datei.
Sie können mehr über die zweite option auf diese Flasche-snippet
app->templates->PDFTemplate.html
und Ihre Datei wird inapp->pdf.pdf
dann kann man sagensrc="../pdf.pdf"
.Können Sie Fläschchen
send_file
odersend_static_file
Funktion in 5 Linien:Dieses snippet link ist hilfreich
Kann auch mit
send_from_directory
wenn Sie möchten, senden Sie die Datei aus dem bestimmten Verzeichnis:Lesen Sie mehr über
send_from_directory
with
um eine Datei zu öffnen, die sicherstellt, dass die Datei geschlossen, nach der Verwendung.Wenn Ihr versucht zu tun, Ihre typischen
wo der Benutzer auf den link klickt und die pdf-Datei wird heruntergeladen, die Sie benötigen, um Ihre Dokumente in Ihrem statischen Ordner.
dann Sie am Ende mit etwas wie: