Erste Schritte mit dem Erlernen von Python (Flask-basierte Webanwendung)

Y2J
Freigeben: 2017-04-25 11:12:09
Original
2512 Leute haben es durchsucht

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) #使其运行于本地服务器上
Nach dem Login kopieren

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>"
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

即可

请求上下文

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;
Nach dem Login kopieren

在控制台输入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;
Nach dem Login kopieren

浏览器显示为:

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;
Nach dem Login kopieren

此代码的内容为在响应的时候设置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/")
Nach dem Login kopieren

此时访问将直接跳转至百度

其他常用功能:响应码

普通响应码可直接在return的返回字符串后使用,如:


@app.route("/")
def index():
 return "<h1>hello world</h1>",400
Nach dem Login kopieren

访问结果如下:


可以看到,虽然此时页面显示内容不变,但是响应码为400

错误码flask也提供了一个专有的函数:


from flask import abort #导入abort对象

@app.route(&#39;/user/<name>&#39;)
def user(name):
 if name ==&#39;test&#39;:
 abort(500)
 return "<h1>hello %s!</h1>"%name
Nach dem Login kopieren

此代码的功能是当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!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage