Flask - Değişken Kurallar

Kural parametresine değişken parçalar ekleyerek dinamik olarak bir URL oluşturmak mümkündür. Bu değişken bölüm olarak işaretlenmiştir<variable-name>. Kuralın ilişkili olduğu işleve bir anahtar kelime argümanı olarak aktarılır.

Aşağıdaki örnekte, kural parametresi route() dekoratör içerir <name> URL'ye eklenen değişken bölüm ‘/hello’. Bu nedenle, eğerhttp://localhost:5000/hello/TutorialsPoint olarak girilir URL tarayıcıda, ‘TutorialPoint’ tedarik edilecek hello() bağımsız değişken olarak işlev görür.

from flask import Flask
app = Flask(__name__)

@app.route('/hello/<name>')
def hello_name(name):
   return 'Hello %s!' % name

if __name__ == '__main__':
   app.run(debug = True)

Yukarıdaki komut dosyasını farklı kaydedin hello.pyve Python kabuğundan çalıştırın. Ardından, tarayıcıyı açın ve URL'yi girinhttp://localhost:5000/hello/TutorialsPoint.

Tarayıcıda aşağıdaki çıktı görüntülenecektir.

Hello TutorialsPoint!

Varsayılan dize değişkeni kısmına ek olarak, kurallar aşağıdaki dönüştürücüler kullanılarak oluşturulabilir -

Sr.No. Dönüştürücüler ve Açıklama
1

int

tamsayı kabul eder

2

float

Kayan nokta değeri için

3

path

dizin ayırıcı karakter olarak kullanılan eğik çizgileri kabul eder

Aşağıdaki kodda tüm bu yapıcılar kullanılmıştır.

from flask import Flask
app = Flask(__name__)

@app.route('/blog/<int:postID>')
def show_blog(postID):
   return 'Blog Number %d' % postID

@app.route('/rev/<float:revNo>')
def revision(revNo):
   return 'Revision Number %f' % revNo

if __name__ == '__main__':
   app.run()

Yukarıdaki kodu Python Shell'den çalıştırın. URL'yi ziyaret edinhttp://localhost:5000/blog/11 tarayıcıda.

Verilen sayı, argüman olarak kullanılır. show_blog()işlevi. Tarayıcı aşağıdaki çıktıyı görüntüler -

Blog Number 11

Bu URL'yi tarayıcıya girin - http://localhost:5000/rev/1.1

revision()işlevi bağımsız değişken olarak kayan nokta sayısını alır. Tarayıcı penceresinde aşağıdaki sonuç belirir -

Revision Number 1.100000

Flask'ın URL kuralları, Werkzeug’syönlendirme modülü. Bu, oluşturulan URL'lerin benzersiz olmasını ve Apache tarafından belirlenen emsallere dayalı olmasını sağlar.

Aşağıdaki komut dosyasında tanımlanan kuralları düşünün -

from flask import Flask
app = Flask(__name__)

@app.route('/flask')
def hello_flask():
   return 'Hello Flask'

@app.route('/python/')
def hello_python():
   return 'Hello Python'

if __name__ == '__main__':
   app.run()

Her iki kural da benzer görünür ancak ikinci kuralda eğik çizgi (/)kullanıldı. Sonuç olarak, kanonik bir URL olur. Bu nedenle, kullanarak/python veya /python/aynı çıktıyı döndürür. Ancak ilk kural durumunda,/flask/ URL sonuçlanır 404 Not Found sayfa.