Inhaltsverzeichnis
Bedingungen
Entwicklungssprache:
Bibliothek:
Editor:
Der einfachste Webserver
URLs verarbeiten
Vorlagen verwenden
Verwenden Sie die Bilder, die wir das letzte Mal gecrawlt haben, um die Website zu erstellen. Gute Idee!
Heim Web-Frontend js-Tutorial Bringen Sie Ihnen bei, wie Sie eine einfache Website erstellen: Python-Entwicklungs-Webserver

Bringen Sie Ihnen bei, wie Sie eine einfache Website erstellen: Python-Entwicklungs-Webserver

Sep 13, 2018 pm 05:35 PM
python web开发

Es gibt unzählige Web-Frameworks in Python, von einfachen kleinen Architekturen bis hin zu vollständigen Architekturen, und sie haben ihre eigenen Vorteile. Sie sind also bereit, es für die Webentwicklung zu verwenden, aber bevor wir uns mit den Details befassen, fangen wir von vorne an.

Ziel

Erstellen Sie eine Bildanzeige-Website unter Verwendung vorhandener umfangreicher Bildressourcen

Bedingungen

Entwicklungssprache:

python3

Bibliothek:

flask: ein Open-Source-Python-Webserver-Framework
jinja2:flasks Standard-Template-Engine

Editor:

empfohlenes Pycharm

Der einfachste Webserver

Python stellt uns eine Schnittstelle zur Verfügung: WSGI: Web Server Gateway Interface
Webentwickler müssen lediglich eine Funktion implementieren, um auf HTTP-Anfragen zu antworten. Ohne TCP-Verbindungen, HTTP-Rohanfrage- und Antwortformate zu berühren.
Das Folgende ist ein Beispiel für die einfachste Webanwendung:

# hello.pydef application(environ, start_response):
    start_response(&#39;200 OK&#39;, [(&#39;Content-Type&#39;, &#39;text/html&#39;)])    return [b&#39;<h1>Hello, Python web!</h1>&#39;]# server.py# 从wsgiref模块导入:from wsgiref.simple_server import make_server# 导入我们自己编写的application函数:from hello import application# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:httpd = make_server(&#39;&#39;, 8000, application)
print(&#39;Serving HTTP on port 8000...&#39;)# 开始监听HTTP请求:httpd.serve_forever()
Nach dem Login kopieren
  • environ: ein dict-Objekt, das alle HTTP-Anfrageinformationen enthält;

  • start_response: Eine Funktion, die eine HTTP-Antwort sendet.

Legen Sie die beiden Skripte in dasselbe Verzeichnis, führen Sie server.py aus und besuchen Sie http://127.0.0.1:8000, um den Effekt zu sehen.

URLs verarbeiten

Tatsächlich handelt es sich bei Webanwendungen um die Verarbeitung verschiedener URLs.
Wir werden hello.py ändern

def application(environ, start_response):
    method = environ[&#39;REQUEST_METHOD&#39;]
    path = environ[&#39;PATH_INFO&#39;]    if method==&#39;GET&#39; and path==&#39;/&#39;:        return handle_home(environ, start_response)    if method==&#39;POST&#39; and path=&#39;/signin&#39;:        return handle_signin(environ, start_response)
...
Nach dem Login kopieren

Dadurch werden zwei URLs verarbeitet, „/“ und „/signin“
Natürlich können Sie so weiter schreiben ... wenn Sie nicht müde sind.

Vorlagen verwenden

Da die obige Methode zu ermüdend und langsam ist, lernen wir etwas Fortgeschrittenes:
Flasche

Sehen Sie sich den Code an

from flask import Flaskfrom flask import request

app = Flask(__name__)@app.route(&#39;/&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])def home():
    return &#39;<h1>Home</h1>&#39;@app.route(&#39;/signin&#39;, methods=[&#39;GET&#39;])def signin_form():
    return &#39;&#39;&#39;<form action="/signin" method="post">
              <p><input name="username"></p>
              <p><input name="password" type="password"></p>
              <p><button type="submit">Sign In</button></p>
              </form>&#39;&#39;&#39;@app.route(&#39;/signin&#39;, methods=[&#39;POST&#39;])def signin():
    # 需要从request对象读取表单内容:
    if request.form[&#39;username&#39;]==&#39;admin&#39; and request.form[&#39;password&#39;]==&#39;password&#39;:        return &#39;<h3>Hello, admin!</h3>&#39;
    return &#39;<h3>Bad username or password.</h3>&#39;if __name__ == &#39;__main__&#39;:
    app.run()
Nach dem Login kopieren

Beachten Sie, dass es sich hierbei um eine einzelne Datei handelt.
Lassen Sie uns dieses Skript analysieren:
Flask verknüpft automatisch URLs mit Funktionen intern über Python-Dekoratoren. Nachdem
gestartet wurde, besuchen wir
'/' und die Seite, die wir sehen, ist ein "HOME"-Wort
'/signin'. Zu diesem Zeitpunkt greifen wir über GET darauf zu und sehen ein Formular , geben Sie „admin“ und „password“ ein, klicken Sie zum Anmelden auf „
“/signin“, jetzt wird „Hallo, Admin“ oder „Ungültiger Benutzername oder Passwort“ angezeigt

Für diejenigen, die GET nicht kennen. Für Studenten mit POST- und HTML-Formularen wird empfohlen, die Grundlagen von HTML zu erlernen.

Aber das ist immer noch etwas unflexibel. Der gesamte Inhalt, den Benutzer beim Zugriff sehen, muss ausgeschrieben werden und kann nicht wiederverwendet werden, was zu mühsam ist

Verwenden Sie eine Template-Engine

Vorlage löst unser obiges Problem. Schauen Sie sich zunächst einen Code an

from flask import Flask, request, render_templateimport os

app = Flask(__name__)@app.route(&#39;/&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])def home():
    path = &#39;/&#39;
    all_file = os.listdir(path)    return render_template(&#39;home.html&#39;,all_file = all_file)if __name__ == &#39;__main__&#39;:
    app.run()
Nach dem Login kopieren

Hier werden die Namen aller Dateien im Stammverzeichnis gelesen und an die HTML-Vorlagenseite übergeben

Dann werden die Verzeichnisvorlagen im erstellt Gleiches Verzeichnis von .py, hier wird unsere Vorlage gespeichert. Das Besondere an der Vorlage ist, dass Sie Python-Anweisungen und -Variablen verwenden können, um die Anweisung

{{ in HTML

home.html< zu schreiben 🎜>

{% for i in all_file %}    <a href="/page/{{ i }}">{{ i }}</a>{% endfor %}
Nach dem Login kopieren

{% %} Was in }} geschrieben ist, ist die Variable


. Das Endergebnis ist also, dass mehrere Tags generiert werden und der Name des Tags der Verzeichnisname ist.

Das obige grundlegende Tutorial bezieht sich auf Liao Xuefeng.

Die Grundlagen sind also abgeschlossen und der nächste Schritt wird das fertige Produkt sein:

Fertiges Produkt

Verwenden Sie die Bilder, die wir das letzte Mal gecrawlt haben, um die Website zu erstellen. Gute Idee!

Erstellen Sie hier ein statisches Verzeichnis im selben Verzeichnis wie das .py-Skript, um Bilder zu speichern. (Das Bild wird nicht verlinkt, wenn es außerhalb des Verzeichnisses platziert wird, in dem sich .py befindet)

#beautiful_pic.pyfrom flask import Flaskfrom flask import requestfrom flask import render_templateimport os

app = Flask(__name__)#显示所有文件夹@app.route(&#39;/&#39;,methods=[&#39;GET&#39;,&#39;POST&#39;])def list_all():
    path = &#39;./static/mzitu/&#39;
    all_pic = os.listdir(path)    return render_template(&#39;welcome.html&#39;,all_pic = all_pic)#具体展示图片@app.route(&#39;/<path>&#39;,methods=[&#39;GET&#39;,&#39;POST&#39;])def list_pic(path):
    #错误链接无法找到图片目录就提示错误链接
    if(path not in os.listdir(&#39;./static/mzitu/&#39;)):        return render_template(&#39;error.html&#39;)
    pic_path = &#39;./static/mzitu/&#39; + path
    all_pic = os.listdir(pic_path)    return render_template(&#39;pic.html&#39;,title = path,all_pic = all_pic)if __name__ == &#39;__main__&#39;:    #port为端口,host值为0.0.0.0即不单单只能在127.0.0.1访问,外网也能访问
    app.run(host=&#39;0.0.0.0&#39;,port=&#39;2333&#39;)
Nach dem Login kopieren

Dann die Vorlagendatei

welcome.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>欢迎来到福利页面</title></head><body>
    {% for i in all_pic: %}        <a href="/{{i}}">{{i}}</a>
        <br><br>
    {% endfor %}</body></html>
Nach dem Login kopieren

pic.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>{{ title }}</title></head><body>
    {% for i in all_pic %}    <img src="./static/mzitu/{{title}}/{{i}}" alt="{{i}}">
    <br>
    {% endfor %}</body></html>
Nach dem Login kopieren

error .html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>出错了</title></head><body>
    你要访问的页面不存在...    <br>
    <a href="/">点此返回首页</a></body></html>
Nach dem Login kopieren

Verwandte Empfehlungen:


Eclipse+PyDev+Django+Mysql zum Erstellen einer Python-Webentwicklungsumgebung_MySQL

Wenn Sie neu in der Webentwicklung sind, welches sollten Sie lernen: PHP, Python oder Ruby?

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen bei, wie Sie eine einfache Website erstellen: Python-Entwicklungs-Webserver. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

Wählen Sie zwischen PHP und Python: Ein Leitfaden Wählen Sie zwischen PHP und Python: Ein Leitfaden Apr 18, 2025 am 12:24 AM

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Python vs. JavaScript: Die Lernkurve und Benutzerfreundlichkeit Apr 16, 2025 am 12:12 AM

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Kann Visual Studio -Code in Python verwendet werden Kann Visual Studio -Code in Python verwendet werden Apr 15, 2025 pm 08:18 PM

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

PHP und Python: Ein tiefes Eintauchen in ihre Geschichte PHP und Python: Ein tiefes Eintauchen in ihre Geschichte Apr 18, 2025 am 12:25 AM

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

Ist die VSCODE -Erweiterung bösartig? Ist die VSCODE -Erweiterung bösartig? Apr 15, 2025 pm 07:57 PM

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

Die Zukunft von HTML, CSS und JavaScript: Webentwicklungstrends Die Zukunft von HTML, CSS und JavaScript: Webentwicklungstrends Apr 19, 2025 am 12:02 AM

Die zukünftigen Trends von HTML sind Semantik und Webkomponenten, die zukünftigen Trends von CSS sind CSS-in-JS und CssShudini, und die zukünftigen Trends von JavaScript sind WebAssembly und serverlos. 1. HTML -Semantik verbessern die Zugänglichkeits- und SEO -Effekte sowie Webkomponenten die Entwicklungseffizienz, aber der Browserkompatibilität sollte die Aufmerksamkeit geschenkt werden. 2. CSS-in-JS verbessert die Flexibilität des Stilmanagements, kann jedoch die Dateigröße erhöhen. CssShudini ermöglicht den direkten Betrieb des CSS -Renderings. 3.Webassembly optimiert die Browser -Anwendungsleistung, verfügt jedoch über eine steile Lernkurve, und serverloses vereinfacht die Entwicklung, erfordert jedoch eine Optimierung von Kaltstartproblemen.

Wie man Python mit Notepad leitet Wie man Python mit Notepad leitet Apr 16, 2025 pm 07:33 PM

Das Ausführen von Python-Code in Notepad erfordert, dass das ausführbare Python-ausführbare Datum und das NPPEXEC-Plug-In installiert werden. Konfigurieren Sie nach dem Installieren von Python und dem Hinzufügen des Pfades den Befehl "Python" und den Parameter "{current_directory} {file_name}" im NPPExec-Plug-In, um Python-Code über den Shortcut-Taste "F6" in Notoza auszuführen.

See all articles