Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstellt man API-Funktionen mit Python Flask?

Wie erstellt man API-Funktionen mit Python Flask?

PHPz
PHPznach vorne
2023-04-21 20:49:061539Durchsuche

1. Übersicht

Python Flask ist ein leichtes Web-Framework, das eine benutzerfreundliche API zum Erstellen von Webanwendungen bietet. In Flask können wir Python-Funktionen verwenden, um Routen und Handler für unsere Webanwendung zu definieren.

2. Erläuterung häufig verwendeter Funktionen

Im Folgenden sind einige gängige Python Flask API-Funktionen aufgeführt:

1) Flask()-Funktion #🎜🎜 ## 🎜🎜#Diese Funktion ist der Kern der Flask-Anwendung und wird zum Erstellen einer neuen Flask-Instanz verwendet.

from flask import Flask
app = Flask(__name__)

2) route()-Funktion

Diese Funktion wird verwendet, um Routing- und Anforderungsmethoden anzugeben. Mehrere Routen können mit mehreren route()-Funktionen definiert werden.

@app.route('/')
def hello_world():
    return 'Hello, World!'

3) jsonify()-Funktion route() 函数来定义多个路由。

from flask import jsonify
@app.route('/users')
def get_users():
    users = [
        {'name': 'Alice', 'age': 25},
        {'name': 'Bob', 'age': 30},
        {'name': 'Charlie', 'age': 35}
    ]
    return jsonify(users)

3)jsonify() 函数

这个函数可以将 Python 对象转换为 JSON 格式的响应对象。

from flask import render_template
@app.route(&#39;/profile/<username>&#39;)
def profile(username):
    return render_template(&#39;profile.html&#39;, name=username)

4)render_template() 函数

这个函数用来渲染模板并返回 HTML 响应对象。可以使用模板引擎来动态生成 HTML。

from flask import redirect
@app.route(&#39;/redirect&#39;)
def redirect_to_home():
    return redirect(&#39;/&#39;)

5)redirect() 函数

这个函数可以将请求重定向到另一个 URL。

from flask import url_for
@app.route(&#39;/profile/<username>&#39;)
def profile(username):
    return f&#39;Hello, {username}! Your profile URL is {url_for("profile", username=username)}.&#39;

6)url_for() 函数

这个函数用于生成 URL,可以使用视图函数的名称作为参数。

@app.before_request
def before_request():
    if &#39;user_id&#39; not in session and request.endpoint not in [&#39;login&#39;, &#39;static&#39;]:
        return redirect(url_for(&#39;login&#39;))

7)before_request() 函数

这个函数用来注册一个函数,在每个请求之前执行。

@app.after_request
def after_request(response):
    response.headers[&#39;X-Frame-Options&#39;] = &#39;SAMEORIGIN&#39;
    return response

8)after_request() 函数

这个函数用来注册一个函数,在每个请求之后执行。

from flask import abort
@app.route(&#39;/users/<int:user_id>&#39;)
def get_user(user_id):
    user = User.query.get(user_id)
    if user is None:
        abort(404)
    return jsonify(user.to_dict())

9)abort() 函数

这个函数用于在视图函数中引发异常,并返回一个错误响应。

from flask import send_file
@app.route(&#39;/download&#39;)
def download_file():
    file_path = &#39;/path/to/file&#39;
    return send_file(file_path, as_attachment=True)

10)send_file() 函数

这个函数用于发送文件作为响应,可以将文件作为字节流或者文件路径来发送。

from flask import request
@app.route(&#39;/login&#39;, methods=[&#39;POST&#39;])
def login():
    username = request.form[&#39;username&#39;]
    password = request.form[&#39;password&#39;]
    return f&#39;Hello, {username}! Your password is {password}.&#39;

三、常用对象讲解

1)request 对象

这个对象表示客户端发出的请求,包含请求头和请求体等信息。可以使用 request 对象来获取客户端发送的数据。

from flask import session
@app.route(&#39;/login&#39;, methods=[&#39;POST&#39;])
def login():
    username = request.form[&#39;username&#39;]
    password = request.form[&#39;password&#39;]
    if username == &#39;admin&#39; and password == &#39;password&#39;:
        session[&#39;user_id&#39;] = 1
        return redirect(&#39;/&#39;)
    else:
        return &#39;Invalid username or password.&#39;

2)session 对象

这个对象可以用来存储用户会话数据,例如用户 ID 等。

from flask import Flask, make_response
app = Flask(__name__)
@app.route(&#39;/&#39;)
def index():
    response = make_response(&#39;Hello, World!&#39;)
    response.set_cookie(&#39;name&#39;, &#39;value&#39;)
    return response
if __name__ == &#39;__main__&#39;:
    app.run()

四、Flask 中的 cookies 与 session

1)cookies 与 session 的介绍与区别

在 Flask 中,Cookies 和 Session 都是用来跟踪用户状态的机制。

Cookie 是一小段文本数据,当一个用户访问你的网站时,服务器可以通过设置 cookie 把一些数据存储在用户的计算机上。当用户再次访问网站时,浏览器会发送 cookie 数据给服务器,以便服务器可以使用该数据来识别用户。Flask 使用 Flask-Cookie 来处理 cookies,使用它可以设置、获取和删除 cookies

Session 是一种在服务器端存储的状态数据,与 Cookie 不同,Session 数据不会存储在用户的计算机上,而是存储在服务器端。当一个用户访问你的网站时,服务器会为该用户创建一个唯一的 Session ID,并将该 ID 存储在一个 cookie 中,然后服务器使用该 Session ID 来识别用户。Flask 使用 Flask-Session 来处理 Session,使用它可以设置、获取和删除 Session 数据。

一般来说,Session 更加安全,因为数据存储在服务器端,而且用户无法直接修改数据。Cookie 的优点是可以存储大量数据,并且可以在不同的页面之间共享。在实际使用中,开发者可以根据需要选择使用 CookieSession

以下是在 Flask 中使用 Cookies 和 Session 的示例:

2)示例讲解

1、使用 Flask-Cookie 设置 Cookie
from flask import Flask, request
app = Flask(__name__)
@app.route(&#39;/&#39;)
def index():
    name = request.cookies.get(&#39;name&#39;)
    return f&#39;Hello, {name}!&#39;
if __name__ == &#39;__main__&#39;:
    app.run()

在上面的例子中,我们使用 Flask 的 make_response 函数创建一个响应对象,然后使用 set_cookie 方法设置了一个名为 name,值为 valuecookie

2、使用 Flask-Cookie 获取 Cookie
from flask import Flask, session
app = Flask(__name__)
app.config[&#39;SECRET_KEY&#39;] = &#39;your_secret_key&#39;
@app.route(&#39;/&#39;)
def index():
    session[&#39;name&#39;] = &#39;value&#39;
    name = session.get(&#39;name&#39;)
    return f&#39;Hello, {name}!&#39;
if __name__ == &#39;__main__&#39;:
    app.run()

在上面的例子中,我们使用 Flask 的 request 对象获取了名为 namecookie 的值,然后将其返回给用户。

3、使用 Flask-Session 设置和获取 Session
rrreee

在上面的例子中,我们使用 Flask 的 session 对象设置了一个名为 name,值为 value 的 Session,并使用 get 方法获取了该 Session 的值,然后将其返回给用户。

需要注意的是,为了使用 Flask-Session,需要在应用程序中设置一个 SECRET_KEY。该密钥用于加密 Session

Diese Funktion kann ein Python-Objekt in ein Antwortobjekt im JSON-Format konvertieren. #🎜🎜#rrreee#🎜🎜#4) render_template()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird verwendet, um die Vorlage zu rendern und das HTML-Antwortobjekt zurückzugeben. Mithilfe von Template-Engines kann HTML dynamisch generiert werden. #🎜🎜#rrreee#🎜🎜#5) Redirect()-Funktion #🎜🎜##🎜🎜#Diese Funktion kann die Anfrage an eine andere URL umleiten. #🎜🎜#rrreee#🎜🎜#6) url_for()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird zum Generieren von URLs verwendet und kann den Namen der Ansichtsfunktion als Parameter verwenden. #🎜🎜#rrreee#🎜🎜#7) before_request()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird verwendet, um eine Funktion zu registrieren, die vor jeder Anfrage ausgeführt werden soll. #🎜🎜#rrreee#🎜🎜#8) after_request()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird verwendet, um eine Funktion zu registrieren, die nach jeder Anfrage ausgeführt werden soll. #🎜🎜#rrreee#🎜🎜#9) abort()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird verwendet, um eine Ausnahme in der Ansichtsfunktion auszulösen und eine Fehlerantwort zurückzugeben. #🎜🎜#rrreee#🎜🎜#10) send_file()-Funktion #🎜🎜##🎜🎜#Diese Funktion wird verwendet, um eine Datei als Antwort zu senden. Die Datei kann als Byte-Stream oder Dateipfad gesendet werden. #🎜🎜#rrreee#🎜🎜#3. Erläuterung allgemeiner Objekte#🎜🎜##🎜🎜#1) Anforderungsobjekt#🎜🎜##🎜🎜#Dieses Objekt stellt die vom Client ausgegebene Anforderung dar, einschließlich Anforderungsheader und Anforderung Körper usw. Informationen. Sie können das request-Objekt verwenden, um vom Client gesendete Daten abzurufen. #🎜🎜#rrreee#🎜🎜#2) Sitzungsobjekt #🎜🎜##🎜🎜#Dieses Objekt kann zum Speichern von Benutzersitzungsdaten wie Benutzer-ID usw. verwendet werden. #🎜🎜#rrreee#🎜🎜#4. Cookies und Sitzungen in Flask#🎜🎜##🎜🎜#1) Einführung und Unterschiede zwischen Cookies und Sitzungen#🎜🎜##🎜🎜#In Flask sind Cookies und Sitzung beides ein Mechanismus zur Verfolgung des Benutzerstatus. #🎜🎜##🎜🎜#Cookie ist ein kleines Stück Textdaten. Wenn ein Benutzer Ihre Website besucht, kann der Server einige Daten im Browser des Benutzers speichern, indem er cookiesetzt > am Computer. Wenn der Benutzer die Website erneut besucht, sendet der Browser Cookie-Daten an den Server, damit der Server die Daten zur Identifizierung des Benutzers verwenden kann. Flask verwendet Flask-Cookie zur Verarbeitung von Cookies, das zum Setzen, Abrufen und Löschen von Cookies verwendet werden kann. #🎜🎜##🎜🎜#Session ist eine Art Zustandsdaten, die auf der Serverseite gespeichert werden. Im Gegensatz zu Cookie werden Session-Daten nicht gespeichert auf dem Computer des Benutzers, wird jedoch serverseitig gespeichert. Wenn ein Benutzer Ihre Website besucht, erstellt der Server eine eindeutige Sitzungs-ID für den Benutzer und speichert die ID in einem Cookie, das der Server dann verwendet diese Sitzungs-ID zur Identifizierung des Benutzers. Flask verwendet Flask-Session, um Session zu verarbeiten, das zum Festlegen, Abrufen und Löschen von Session-Daten verwendet werden kann. #🎜🎜##🎜🎜# Im Allgemeinen ist Session sicherer, da die Daten auf der Serverseite gespeichert werden und Benutzer die Daten nicht direkt ändern können. Der Vorteil von Cookies besteht darin, dass sie große Datenmengen speichern und zwischen verschiedenen Seiten geteilt werden können. Bei der tatsächlichen Verwendung können Entwickler je nach Bedarf Cookie oder Session verwenden. #🎜🎜##🎜🎜#Das Folgende sind Beispiele für die Verwendung von Cookies und Sitzungen in Flask: #🎜🎜##🎜🎜#2) Beispielerklärung #🎜🎜#
1 Verwenden Sie Flask-Cookie, um Cookies zu setzenh5 >rrreee#🎜🎜#Im obigen Beispiel verwenden wir die Funktion make_response von Flask, um ein Antwortobjekt zu erstellen, und verwenden dann die Methode set_cookie, um ein Cookie mit dem Namen name zu setzen ein Wert von cookie für value. #🎜🎜#
2. Verwenden Sie Flask-Cookie, um Cookie zu erhalten
rrreee#🎜🎜#Im obigen Beispiel verwenden wir Flasks request-Objekt, um ein Cookie mit dem Namen zu erhalten Der Wert des <code>Cookies für den Namen und gibt ihn dann an den Benutzer zurück. #🎜🎜#
3. Verwenden Sie Flask-Session, um eine Sitzung festzulegen und abzurufen
rrreee#🎜🎜#Im obigen Beispiel verwenden wir das Sitzungsobjekt von Flask, um eine Sitzung mit dem Namen name und dem Wert einzurichten get-Methode, um den Wert der Sitzung abzurufen und ihn dann an den Benutzer zurückzugeben. #🎜🎜##🎜🎜#Es ist zu beachten, dass zur Verwendung von Flask-Session ein SECRET_KEY in der Anwendung festgelegt werden muss. Dieser Schlüssel wird zum Verschlüsseln von Sitzungsdaten verwendet, um sicherzustellen, dass die Daten nicht manipuliert werden. #🎜🎜#

Das obige ist der detaillierte Inhalt vonWie erstellt man API-Funktionen mit Python Flask?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen