Flask ist ein sehr hervorragendes Web-Framework. Es verfügt über einen kleinen Kern, der einfach und leicht zu erweitern ist Community, kann direkt zur Erweiterung in Produktionsumgebungen verwendet werden. Ich glaube, dass es bisher viele Einführungen über ihn gibt. Selbst im cnblog wird eine gelegentliche Suche viele Inhalte finden, aber ich möchte Ihnen dennoch einige Ideen geben, betrachten Sie es einfach als Selbstzusammenfassung
Umgebung bereitstellen
Python installieren
Zuallererst natürlich die Python-Umgebung installieren , gehen Sie zur offiziellen Website, um die neueste Umgebung herunterzuladen (ich wähle die neueste Version 3.6)
Fahren Sie dann einfach mit dem nächsten Schritt fort, um den Installationspfad aufzuzeichnen oder auszuwählen.
Umgebungsvariablen
Die nächste Konfiguration von Umgebungsvariablen ist fast die gleiche wie bei Java. Geben Sie nach dem Pfad den Installationspfad von Python ein , und dann noch einmal; ,; Geben Sie den Ordner „Scripts“ im Python-Verzeichnis ein und verwenden Sie einige der mit py gelieferten Tools (z. B. pip)
um flask zu installieren
Konfiguration Nach Abschluss von pip ist die Installation von flask sehr einfach. Geben Sie cmd ein, um die Konsole aufzurufen, und geben Sie dann den folgenden Befehl ein:
pip3.6 install flask
Entwicklungstools
Wenn Sie Ihre Arbeit gut machen möchten, müssen Sie zuerst Ihre Tools schärfen. Ich habe mich für Pycharm entschieden Kann auch von der offiziellen Website heruntergeladen werden.
Starten Sie die Entwicklung
Öffnen Sie zunächst Pycharm und erstellen Sie ein reines Python-Projekt:
Projekterstellung Danach ist es nur noch ein leeres Projekt und eine PY-Datei wurde für die Entwicklung erstellt. Klicken Sie mit der rechten Maustaste auf „Neu“ -> „Python-Datei“ im Projektordner und wählen Sie dann „ Ich habe den Namen default erhalten, der sich in der Verzeichnisdatei befindet. Erstellen Sie eine Datei default.py im Ordner.
Erste Erkundung von Flask
Geben Sie den Code in diese Datei ein (vorausgesetzt, die Installation von Flask war erfolgreich):
from flask import Flask #导入Flask类 app=Flask(__name__) #创建Flask类的一个实例 if __name__=='__main__': #Python入口程序 app.run(debug=True) #使其运行于本地服务器上
Dies dient zum Wechseln des Verzeichnisses der cmd-Konsole in das Projektverzeichnis:
python default.py
Importieren Sie die Flask-Klasse. Anschließend wird das WSGI-Programm beim Ausführen des Skripts automatisch erstellt.
Wie in der Abbildung gezeigt, ist es richtig:
Geben Sie gemäß den Eingabeaufforderungen zu diesem Zeitpunkt flask in den Browser ein. Die Standardadresse wird wie folgt angezeigt:
Da noch keine Seite vorhanden ist, kann auf jede Seite zugegriffen werden Die Adresse lautet 404
Erklärung
debug=true bedeutet, dass die Ausführung im Debug-Modus nicht in einer Produktionsumgebung verwendet werden darf! ! !
Route
Im Folgenden wird eine Standardroute für diese Anwendung erstellt. Flask verwendet einen Decorator, um die Route zu konfigurieren:
@app.route("/") def index(): return "<h1>hello world</h1>"
Zu diesem Zeitpunkt sieht die Seite wie folgt aus:
Der zurückgegebene Inhalt wird ausgegeben und die Konsole zeigt zu diesem Zeitpunkt Folgendes an :
Der Statuscode ist 200, nicht mehr 404
Der Dekorator hier kann für die damalige Zeit als Anmerkung in Java verstanden werden Sein und wird später ausführlich besprochen. Gleichzeitig kann diese Art der Routing-Methode vorübergehend auch als Annotations-Routing-Methode des Servlets in j2ee verstanden werden.
Routing mit Parametern
Gleichzeitig unterstützt Flask auch Routing mit Parametern:
@app.route("/user/<name>") def user(name): return "<h1>hell %s</h1>"%name
Eingabe im Browser:
127.0.0.1:5000/user/niufen
Die Eingabe zu diesem Zeitpunkt lautet:
Lassen Sie uns zunächst über das Routing sprechen. Rufen Sie dann die cmd-Konsole auf, drücken Sie Strg + C, um den Server zu verlassen, geben Sie Python ein und rufen Sie die Python-Befehlszeilenschnittstelle auf. Zu diesem Zeitpunkt können Sie dies tun Führen Sie verschiedene Py-Anweisungen aus.
Dann importieren Sie das App-Objekt unter dem default.py-Objekt in dieser Schnittstelle:
aus der Standardimport-App
Drücken Sie dann die Eingabetaste. Zu diesem Zeitpunkt können Sie den Befehl „App-Objekt verwenden“ in der Zeile verwenden und Folgendes eingeben:
app.url_map
Meine Anzeige sieht wie folgt aus:
可以看到,使用一个map存储了此对象下的所有路由,并从内容可以看到 全是get方式,注意其中的static,是存放的静态文件,如图片,顺便提一下,这也体现了flask的一个特点,即它有众多的配置选项,但基本上都在初始状态下有个明确的默认值,比如模板在templates中,图片在static中,虽然这个配置可以修改,但不建议这么做,尤其是刚开始的时候。
from default import app这行代码代表了从default对象中导入app,并在之下可以直接使用app,同样的还有之前的代码 from flask import Flask
python中有两种导入方式,import直接导入和from ... import导入,具体区别可查看py基本语法
如果想让路由为post方式,也很简单:
@app.route("/user",methods=["POST"]) def user(): name=request.args.get("name") return "<h1>hell %s</h1>"%name
即可
请求上下文
flask还有请求上下文对象,即request,如:
from flask import request #页头 导入request对象 @app.route(/req_test) def req_test(): val="" for key,value in request.args.items(): val+=" %s = %s <br>"%(key,value) return val;
在控制台输入exit()后,继续输入python default.py进入服务器
此时在浏览器中输入url:
127.0.0.1:5000/req_test?age=5&name=abc
此时浏览器中显示为:
测试代码2(假设已导入request对象):
@app.route(/req_test) def req_test(): val="" for key,value in request.headers.items(): val+=" %s = %s <br>"%(key,value) return val;
浏览器显示为:
flask自带系统上下文共计四个:
current_app 约等于application
g 一个用于临时存储的对象 约等于viewbag
request 与servlet或asp.net中含义大体相同
session 与servlet或asp.net中含义大体相同
响应
flask响应可以使用make_response对象,用法与java servlet中的用法类似:
from flask import make_response #页头,导入make_response对象 @app.route("/res_test") def res_test(): response=make_response("<h1>hello world</h1") response.set_cookie("name","niufennan") return response;
此代码的内容为在响应的时候设置cookie
在浏览器中输入地址:
127.0.0.1:5000/res_test
在页面中显示为黑体hello world,但是可以查看浏览器,发现响应内容已经存入浏览器的cookie中 如图:
其他常用功能:跳转
在web开发中,经常会遇到直接跳转的情况,flask中也提供了redirect方法来实现:
from flask import redirect # 页头,导入redirect对象 @app.route("/") def index(): return redirect("www.baidu.com/")
此时访问将直接跳转至百度
其他常用功能:响应码
普通响应码可直接在return的返回字符串后使用,如:
@app.route("/") def index(): return "<h1>hello world</h1>",400
访问结果如下:
可以看到,虽然此时页面显示内容不变,但是响应码为400
错误码flask也提供了一个专有的函数:
from flask import abort #导入abort对象 @app.route('/user/<name>') def user(name): if name =='test': abort(500) return "<h1>hello %s!</h1>"%name
此代码的功能是当name的值为test是,返回错误码为500,注意此时页面不会显示内容,因为此时程序不由代码控制,而将控制权交给了系统。
至此,flask基础知识已经讲完,现在已经可以做一些简单的程序,但是肯定不会如此的做,就像只用servlet,不用jsp页面或其他模板也可以做出很绚丽的系统,但大部分还是需要jsp页面或其他模板页作为支撑,下一章将说明在系统中如何使用jinja2模板引擎和wtf表单插件。
Das obige ist der detaillierte Inhalt vonErste Schritte mit dem Erlernen von Python (Flask-basierte Webanwendung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!