0% found this document useful (0 votes)
6 views18 pages

Programlama 2

Uploaded by

defneyalcinn05
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views18 pages

Programlama 2

Uploaded by

defneyalcinn05
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

PYTHON

 Python programlama dili, Guido van Rossum tarafından 1990 yılında tasarlanmaya
başlanmıştır.
 Otomatik çöp toplama (garbage collector) desteği vardır.
 Dinamik tip kontrolünü destekler ve yüksek seviyeli dinamik veri tiplerini sağlamaktadır.
 Windows’ta Python programlama dili %LOCALAPPDATA%\Programs\Python dizinine kurulur.
 Python’da tanımlayıcı isimlendirilirken !, @, #, $, % vb. gibi özel semboller kullanılamaz.
 Bir tanımlayıcı bir rakamla başlayamaz.
 Python büyük/küçük harfe duyarlı bir dildir.
 Python’da, bir ifadenin sonu yeni satır karakteri ile işaretlenir. Ancak satır devam karakteri “\”
ile birden çok satıra yayılan bir ifade yapabiliriz
 Python’da, parantezler ( ), köşeli ayraçlar [ ] ve süslü parantezler { } içinde de satır devamı
belirtilir.
 Değişken isimlerinde ( -, +, /, *, #, ?, .) ve boşluk gibi özel karakterler kullanılamaz.
 Noktalı virgül kullanarak birden çok ifadeyi tek bir satırda da kodlayabiliriz.

Kod Dokümantasyonu (Docstrings)

Docstring, belge dizesinin kısaltmasıdır. Belge dizeleri, nesneyle __doc__ öznitelikleri olarak
ilişkilendirilir. (Örnek: print(double.__doc__))

 Python’da değişkenlere atanan değerlerin ya da dışarıdan kullanıcıdan alınan verilerin tipini


öğrenebilmek için type() fonksiyonu kullanılmaktadır.
 Tekli veya çoklu nesneyi silmek için “del” komutu kullanılabilir.
 Python’da liste tanımlamak için virgülle ayrılmış öğeler parantez [ ] içine alınır.
 Tuple’lar(Demetler) bir kez oluşturulduktan sonra değiştirilemez.
 Python’da sözlükler, her öğe anahtar: değer biçiminde bir çift olacak şekilde süslü parantezler
{} içinde tanımlanır.
 Python’da tür dönüşümü açık veya örtülü olmak üzere iki türlü olabilir:
o Örtülü Tür Dönüşümü (Implicit): Örtülü tür dönüştürmede Python, bir veri türünü
otomatik olarak başka bir veri türüne dönüştürür.
o Açık Tür Dönüşüm (Explicit): Açık Tür Dönüşümünde, bir nesnenin veri türü gerekli
veri türüne kullanıcı tarafından dönüştürülür.
“sep”: Ayırıcı değerler arasında kullanılır. Varsayılan olarak bir boşluk karakterine dönüşür.
“end”: Tüm değerler yazdırıldıktan sonra yazdırılan satır sonu karakteridir. Varsayılan olarak yeni bir
satıra geçer.
“file”: Dosya, değerlerin yazdırıldığı nesnedir ve varsayılan değeri [Link] yani ekrandır.
“flush”: Arabelleğe alınan verilerin çıktı hedefine gönderilmesini sağlamaktadır.

NOT: İnput fonksiyonu ile alınan verinin tipi hafızada string olarak tutulmaktadır.

Aritmetik Operatörler
Karşılaştırma Operatörleri

Mantıksal Operatörler

Atama Operatörleri
Kimlik Oparatörleri

Üyelik Operatörleri
Python’daki üyelik operatörleri “in” ve “not in” olarak tanımlanmıştır.

 range() fonksiyonu bir sayı dizisi oluşturmak için kullanılmaktadır. Başlangıç, bitiş ve adım
değerleri de range (başlangıç, bitiş, adım) olarak tanımlanmaktadır.
 Bir for döngüsüne, isteğe bağlı olarak bir else bloğu eklenebilir.
 Python dilinde switch-case ifadesi bulunmamaktadır. Bu durumu aşmak için sözlük eşleşmesi
(dictionary mapping) kullanılmaktadır.

NOT: İşlev, metot ve fonksiyon aynı kavramı ifade etmek için kullanılan farklı isimlerdir.

Fonksiyonlar
 def: Fonksiyon başlığının başlangıcını işaretleyen anahtar sözcüktür.
 fonksiyon_adı: Fonksiyonu benzersiz şekilde tanımlamak için kullanılan bir tanımlamadır.
Fonksiyon isimlendirme, Python’da değişken isimlendirme ile aynı kuralları izler.
 parametre(ler): Bir fonksiyona iletmek istediğimiz değerlerdir. İsteğe bağlı olarak kullanılır.
 İki nokta üst üste (:): Fonksiyon başlığının sonunu işaretlemek için kullanılır.
 docstring (Yorum satırı): Fonksiyonun parametreleri ve fonksiyonun görevini açıklamak için
isteğe bağlı yazılan açıklamaları içerir.
 kod bloğu: Fonksiyon gövdesini oluşturan bir veya daha fazla geçerli python ifadesine verilen
isimdir. İfadeler aynı girinti düzeyine sahip olmalıdır (genellikle 4 boşluk veya 1 tab girintisi).
 return: Fonksiyondan bir değer döndürmek için isteğe bağlı olarak kullanılabilen bir dönüş
ifadesidir. Return ifadesi bulunmuyorsa, fonksiyon None nesnesini döndürür.

NOT: Python’da, fonksiyon tanımı her zaman fonksiyon çağrısından önce bulunmalıdır.

Fonksiyon dışındaki değişkenlerin değerini fonksiyonun içinden değiştirmek için, global anahtar
sözcüğü kullanılarak global değişkenler olarak bildirilmeleri gerekmektedir.

Dahili (Built-in) Fonksiyonlar

 abs(): Bir sayının mutlak değerini döndürür.


 any(): Bir listedeki herhangi bir nesnenin doğru (true) olup olmadığını kontrol eder.
 chr(): Bir tam sayıdan bir karakter (bir dize) döndürür.
 hex(): 10 tabanındaki bir sayıyı 16 tabanına dönüştürür.
 input(): Bir satırlık metni okur ve döndürür.
 len(): Nesnenin uzunluğunu verir.
 open(): Bir dosya nesnesi döndürür.
 print(): Parametre olarak verilen nesneyi yazdırır.

NOT: Özyinelemeli fonksiyonlarda varsayılan olarak, maksimum özyineleme derinliği 1000’dir. Sınır
aşılırsa, RecursionError ile sonuçlanır.

 Filter() fonksiyonu listedeki tüm öğelerle birlikte çağrılır ve fonksiyonun Doğru olarak
değerlendirdiği öğeleri içeren yeni bir liste döndürür. Yani liste elemanlarını fonksiyona göre
filtreler.
 Map() fonksiyonu ile bir liste elemanları tek tek düzenlenebilir. Örneğin bir liste
elemanlarının karesi alınabilir.

Modüller
 Modülleri içeri aktarmak için import anahtar kelimesi kullanılır.
 İmport (Modülİsmi) as (Yeniİsim) şeklinde yazılarak modüle takma isim verilebilir.
 From (Modülİsmi) import (Fonksiyonİsmi) ile modül içinden ihtiyaç duyulan fonksiyon
aktarılabilir.
 From (Modülİsmi) import * ile modüldeki bütün fonksiyonlar aktarılabilir.
 Bir modüldeki kullanılabilecek bütün fonksiyonların isimlerini öğrenmek için
dir(Modülİsmi) metodu kullanılabilir.
 Bir oturum sırasında bir modül yalnızca bir kez içe aktarılır.
 Program sırasında değişen modülün çalışması için tekrar yüklenmesi gerekir.
 Bir modülü yeniden yüklemek için imp modülünün içindeki reload() işlevi kullanılabilir.

Paket Yapısı
 Python’un bir yapıyı paket olarak kabul etmesi için, __init__.py adlı bir dosya içermelidir.
Paketler bir çok modülü içeren klasörlerden oluşur.
 Nokta (.) operatörü kullanılarak paketlerden modüller içe aktarılır. (Örneğin: import
Paketİ[Link]İsmi.Mödülİsmi)
 Paket Yöneticisi (pip): Python ortamınızda pip kurulu değilse, pip’in kurulumu için doğrudan
pip’in sağlayıcıları tarafından desteklenen 2 mekanizma vardır.
o Ensurepip
o [Link]
o pip –version ya da pip –help kurulumun başarılı olarak yüklendiğini kontrol
etmek için bu komutlar çalıştırılabilir.
 Python ile yüklü olarak gelen standart paketler lib klasörü altında bulunur.
 Paketlerin yüklü olduğu dizini kontrol etmek için paket import ile dahil edildikten sonra
Paketİsmi.__path__ ile paketin yüklü olduğu dizin bulunabilir.

Veri Türleri
 Bir değişkenin veya bir değerin hangi sınıfa ait olduğunu öğrenmek için type() fonksiyonu ve
belirli bir sınıfa ait olup olmadığını kontrol etmek için isinstance() fonksiyonu kullanılabilir.
 Python dilinde, dilimleme operatörü olarak “:” kullanılmaktadır. Örneğin: Liste[0:5] bize
listenin 0. indeksinden 5. indeksine kadar olan elemanları verir.

Listeler

 Listeye yeni bir eleman eklemek için append() yöntemi kullanılabilir.


 Listeye extend() yöntemi yardımıyla da birkaç eleman eklenebilir.
 İki listeyi birleştirmek için “+” operatörü de kullanılabilir.
 insert() yöntemini kullanarak istenen bir konuma bir öğe eklenebilir.
 Python programlama dilinde, “del” deyimi kullanılarak listeden bir veya daha fazla eleman
silinebilir.
 İçeriği verilen elemanı listeden kaldırmak için remove() metodunu kullanılabilir.
 pop() metodu, liste indeksi sağlanmazsa son öğeyi döndürür ve listeden kaldırır.
 Tüm listenin boşaltılması gerektiğinde ise clear() metodu kullanılabilir.

Demet
 Tek elemanlı bir demet oluşturmak biraz zordur. Tek eleman girildikten sonra virgül koyularak
bir demet oluşturulabilir.
 bir demeti tamamen silmek, “del” anahtar sözcüğünü kullanarak gerçekleştirilebilir.
 “in” anahtar sözcüğünü kullanarak bir elemanın bir demet içinde olup olmadığı test edilebilir.

Dizeler

 Dizeler de tıpkı demetler gibi değişmezdir. Bir dizeden karakterler silinemez veya kaldırılamaz.
 “del” anahtar sözcüğü kullanılarak dizeyi tamamen silmek mümkündür.
 Python dilinde dizeleri birleştirmek için “+” operatörü kullanılmaktadır.
 Python programlama dilinde “in” anahtar sözcüğü kullanılarak bir dize içinde bir alt dizenin
olup olmadığı test edilebilir.

NOT: enumerate() fonksiyonu, bir numaralandırma nesnesi döndürür. Bu nesne, dizedeki tüm
öğelerin indeks ve değer çiftlerini içerir.

len() fonksiyonu dizenin uzunluğunu (karakter sayısı) döndürür.

Kaçış Dizileri
String nesnesiyle kullanılabilen çok sayıda yöntem vardır:

Kümeler

 add() yöntemini kullanarak tek bir eleman veya


 update() yöntemi kullanılarak birden çok eleman eklenebilir.
 Belirli bir eleman, discard() ve remove() yöntemleri kullanılarak bir kümeden çıkarılabilir.
 clear() yöntemi kullanılarak bir kümedeki tüm öğeler kaldırılabilir.
Kümelerde Yerleşik/Dahili Fonksiyonlar

Sözlükler

 pop() yöntemi kullanılarak sözlükteki belirli bir eleman kaldırılabilir.


 popitem() yöntemi, sözlükten rastgele bir (anahtar, değer) eleman çiftini kaldırmak ve
döndürmek için kullanılabilir.
 Tüm öğeler clear() yöntemi kullanılarak bir kerede kaldırılabilir.
 Sözlüğün kendisini kaldırmak için del anahtar sözcüğü de kullanılabilir.
Dosya İşlemleri
 Python, bir dosyayı açmak için dahili bir open() fonksiyonuna sahiptir.
 Dosya kapatma işlemi close() yöntemi kullanılarak yapılmaktadır.

Dosya Erişim Modları


Örnek:

 Dosya okuma kodunda, read() yönteminin verilen sayı kadar karakter döndürdüğü
görülmektedir.

 Mevcut dosya imleci (konumu) search() yöntemi kullanılarak değiştirilebilir. Benzer şekilde,
tell() yöntemi mevcut imleç konumunu (bayt sayısı olarak) döndürmektedir.

 Bir dosyanın tek tek satırlarını okumak için readline() yöntemi kullanılabilir.
 readlines() fonksiyonu dosyanın tüm kalan satırlarının bir listesini döndürmek için
kullanılır.
Dizinler
 Programın mevcut çalışma dizini (Current Working Directory - CWD), os modülünün
getcwd() yöntemi kullanılarak elde edilebilir.
 Mevcut çalışma dizini (CWD) değiştirmek için [Link]() yöntemi kullanılmaktadır.
 Yeni dizin yolu elemanlarını ayırmak için hem ters bölü “\” hem de “/” bölü işareti
kullanılabilir.
 Bir dizindeki tüm dosya ve alt dizinlere listdir() fonksiyonu kullanılarak elde edilebilir.
 Yeni bir dizin oluşturmak için os modülünün desteklediği [Link]() fonksiyonu
bulunmaktadır.
 Bir dizini veya dosyayı yeniden adlandırmak için rename() fonksiyonu kullanılmaktadır.
 Bir dosyayı kaldırmak, silmek için remove() yöntemi kullanılmaktadır.
 boş olmayan bir dizini kaldırmak için “shutil” modülü içindeki
rmtree() metodu kullanılabilir.

NOT: Python’da karşılaşılan hatalar genel olarak 3 gruba ayrılabilir:

 Program Hataları (Syntax errors): Programlama dilinin söz dizimine uygun olmayan kod
yazılması nedeniyle ortaya çıkan hatalardır.
 Mantık Hataları (Bug): Programın sonlanmasına neden olacak bir hata oluşmaz. Bulması daha
zordur.
 İstisnalar (Exceptions): Söz diziminden başarılı bir şekilde geçtikten sonra oluşan hatalara
istisna denilmektedir.

Python’daki Yerleşik İstinalar


NESNE YÖNELİMLİ PROGRAMLAMA (OOP - OBJECT ORIENTED PROGRAMMING)
Sınıf(Class)
Sınıf, nesne için bir tasarım, şablon veya ayrıntılı plandır diyebiliriz.

Bir telefon tasarımından bir çok telefon üretilebildiği gibi, bir sınıftan da bir çok nesne oluşturulabilir.
Oluşturulan nesneye, oluşturulduğu sınıfın örneği (instance) denir ve bu nesne oluşturma işlemi de
örnekleme (instantiation) olarak adlandırılır.

Sınıf tanımlamaları class anahtar kelimesi ile başlamaktadır. Sınıfın içindeki ilk metin dizisine
docstring
adı verilmektedir. Bu metin, sınıfın kısa bir açıklamasını içermektedir. Bu kısım zorunlu değildir
fakat tanımlanması tavsiye edilmektedir.

Sınıfların yerleşik özellikleri de şu şekilde listeleyebiliriz:

 __doc__ : Sınıf oluşturulurken tanımlanmışsa, sınıfa ait açıklama metnini döndürür


 __dict__ : Sınıfın niteliklerini içeren sözlük değerini döndürür
 __name__ : Sınıfın adını döndürür
 __module__ : Çağrıldığı nesne veya fonksiyonun adını, yoksa None değeri döndürür.
 __ bases__ : Bir sınıf nesnesinin temel sınıflarının, türetildiği sınıfların demetini (tuple)
döndürür.

Sınıf içinde tanımlanan tüm fonksiyonlar, diğer normal fonksiyonlardan farklı olarak, ilk
parametreleri self anahtar kelimesi olması gerekmektedir. Bu anahtar kelime, sınıfın kendisine
verilen bir referanstır ve sınıfa ait tüm özelliklere erişmek için kullanılmaktadır.

Sınıflar içerisinde tanımlı fonksiyonlarından çift altçizgi ile başlayan fonksiyonlara özel fonksiyonlar
denmektedir. Bir sınıftan yeni bir nesne oluşturulacağı zaman __init__() metodu çağrılmaktadır.

Bu metoda, nesne yönelimli programlamada sınıfın kurucu metodu adı verilmektedir.


Kapsülleme
“_” tek altçizgi ile tanımlanan değişkenlere sınıf içerisinden ve alt sınıflardan erişilebilir. “__” çift
altçizgi ile tanımlanan değişkenlere ise sadece sınıf içerisinden erişilebilir.

Metotlar
Metotlar, sınıfın içerisinde tanımlanmış fonksiyonlardır.

 Bir nesne veya bir özellik del fonksiyonu kullanılarak silinebilir.


 Python programlama dilinde, oluşturulan sınıflar boş bırakılamaz. En az bir satır komut
yazılması beklenmektedir. Sınıf içeriği boş bırakılacaksa, pass anahtar kelimesi ile bu
gereklilik yerine getirilmiş olacaktır.
 Kalıtım kullanılarak oluşturulan sınıflarda, üst/ana sınıfın tüm özellikleri alt sınıfa
aktarılarak kullanılmasına izin verilir.

Kalıtımı kontrol etme yöntemleri

 isinstance() fonksiyonu ile, oluşturulan nesne sınıfın veya o sınıftan türetilen bir sınıfın
örneği ise True (doğru) değeri döndürmektedir.
 issubclass() metodu da, kalıtım kontrolü için kullanılmaktadır. İlk parametre olarak
verilen sınıf, diğer sınıftan türetilmiş ise True (doğru), türetilmemiş ise False (yanlış) değeri
vermektedir.

NOT: Python programlama dilinde unutulmaması gereken bir nokta da, her sınıfın nesne sınıfından
türetildiğidir. Nesne (object) sınıfı, en temel tür olarak da bilinir.

Operatör Aşırı Yüklemesi (Overloading)


Aynı operatörün işlem yapılan türlere göre farklı davranışlar göstermesine operatörlerin aşırı
yüklenmesi denmektedir.
Veri Gizleme
Python programlama dilinde veri kapsülleme, özellik adından önce önek olarak çift altçizgi “__”
eklenerek yapılmaktadır. Bu özelliklerin sonlarına da en fazla bir adet altçizgi eklenebilir. Böylece,
özellik özel/erişilemez hale gelir ve kullanıcıdan gizlenir.

Python MySQL
Python, MySQL veritabanına ulaşabilmek için bir MySQL sürücüsüne ihtiyaç duymaktadır. Sürücüyü
yüklemek için python -m pip install mysql-connector-python komutu kullanılır.

 Veri tabanı ile bağlantı [Link] modülündeki connect() metoduna ile


sağlanmaktadır.
 Veritabanı oluşturmak için “CREATE DATABASE” komutu çalıştırılması gerekmektedir.
 Python ile tablo oluşturmak için, sql komutlarını metin şeklinde yazarak, execute()
metoduna parametre olarak gönderilerek çalıştırılması yeterli olmaktadır.

 Veri tabanındaki tüm tabloları listelemek için “SHOW TABLES” komutu kullanılır.
 Veri tabanında tablo oluşturulurken, tabloya eklenen her bir kayıt için benzersiz bir anahtar,
değer içeren bir sütun da oluşturulmalıdır. Bu tablonun id değeri “INT
AUTO_INCREMENT PRIMARY KEY” kodu ile tanımlanmaktadır.
 Sunucu ile bağlantıyı kesme [Link]() ile sağlanmaktadır.
 Eğer tablo zaten oluşturulmuş ise, tabloya yeni bir sütun ilave etmek için ALTER TABLE
komutu
kullanılır.
 Sql komutları büyük-küçük harfe duyarlı değildir.
 Veri girişi yapabilmek için insert komutu kullanılmaktadır.
o INSERT INTO tablo_adı ( sütun1, sütun2, sütun3, ... ) VALUES
( değer1, değer2,
değer3, ... );
 Veri tabanına girilmesi istenen verilerin kaydedilmesi için de [Link]() metodu
kullanılmaktadır. Bu işlem yapılmazsa yapılan bütün değişiklikler yok sayılır.
 Çoklu kayıt girişinde de benzer şekilde veriler oluşturulmakta ve “execute” metodu,
“executemany” ile değiştirilmektedir.

 SELECT komutu ile tablolara girilen veriler okuma işlemi gerçekleştirilir.


 Tabloda yapılan değişiklik [Link]() kullanılarak komut çalıştırılacak ve
[Link]() ile tablodan alınan veriler bir liste şeklinde döndürülecektir.
o [Link]() metodu ile sorgu sonucunda gelen ilk satırın verisi alınabilir.
 Filtreleme, veri güncellemesi ve verilerin silinmesi işlemlerinde “WHERE” komutu
kullanılarak sorgu yapılmaktadır.

 Ayrıca, filtreleme yaparken, aranmak istenen ifade kayıtların başında, içinde veya sonunda
olabilir. Böyle durumlar için de joker karakteri olarak “%” sembolü kullanılmaktadır.
o “%” karakteri aranan ifadenin sadece başına konulduğunda, ifadeden önce ne gelirse
gelsin ama bu ifade ile bitsin anlamına gelmektedir.
o “%” karakteri aranan ifadenin sadece sonuna konulduğunda, ifadeden sonra ne
gelirse gelsin ama bu ifade ile başlasın anlamına gelmektedir.
o “%” karakteri aranan ifadenin hem başına hem de sonuna konulduğunda, ifadeden
önce ve sonra ne gelirse gelsin ama bu ifadeyi içersin anlamına gelmektedir.
 Bu gibi bir sorgu yapıldığında artık “=” karşılaştırması yerine, bu filtreye benzer olanları getir
diyerek “LIKE” komutu kullanılmaktadır.

 Tablo verilerinde istenilen filtreleme sonucunu, istenilen sütuna göre artan veya azalan
düzende sıralama yapmak için ORDER BY ifadesi kullanılmaktadır.
o ASC (ASCENDING) artan şekilde sıralamaktadır. Azalan şekilde sıralanması için de
DESC (DESCENDING) komutu kullanılmaktadır.

 Tablodan herhangi bir verinin silinmesi için DELETE komutu kullanılmaktadır.


o WHERE şartının eklenmediği bir DELETE komutu, tablodaki tüm verileri silecektir.

 Veri tabanında var olan bir tabloyu silmek için DROP TABLE komutu kullanılmaktadır.
 Olmayan bir tablo silinmeye çalışıldığında da hata alınacaktır. Böyle bir durumun önüne
geçebilmek için IF EXIST anahtar kelimesi kullanılmaktadır.
 UPDATE yani güncelleme komutu, veri tabanında kayıtlı verilerin değerlerini değiştirmek için
kullanılmaktadır.
 WHERE şartının eklenmediği bir UPDATE komutu ile tablodaki tüm veriler güncellenecektir.

 LIMIT komutu, çalıştırılan sorgudan dönen sonuç kümesindeki verilerin sayısını kontrol
etmek veya sınırlandırmak için kullanılmaktadır. Örneğin ilk 5 veri alınmak istendiğinde
kullanılır.
 OFFSET anahtar kelimesi verilerin hangi satırdan itibaren alınmaya başlayacağını belirtir.
LIMIT ile kullanılarak özel aralıkların alınabilmesi sağlanmaktadır.

Django
Python dili için dizayn edilmiş yüksek seviyeli bir web uygulaması geliştirme platformudur.

 pip install Django==4.0.5 komutu ile kurulumu gerçekleştirilir.


 django-admin startproject proje_adı komutu ile yeni proje oluşturulur.
 Oluşturulan projelerin genel yapısında bulunan dosyalar:
o proje_adı klasörü sadece iki tane nesne içeren proje kapsayıcısıdır.
o [Link]: Bu dosya, proje ile komut satırı aracılığıyla iletişim kurmak için
hazırlanmış yerel bir Django-admin’dir. Veri tabanı senkronizasyonu, geliştirme
sunucusu başlatma gibi görevleri gerçekleştirmeye yarayan komut satırı yardımcı
programıdır.
o proje_adı: Alt klasördür ve projedeki gerçek Python paketidir. Dört adet dosya
içermektedir.
o __init__.py: Bu dosya olduğu için, bu klasör bir paket olarak kabul edilir.
o [Link]: Adından da anlaşılacağı gibi, bu dosya projedeki tüm ayarları
yönetmektedir.
o [Link]: Sitedeki linkleri kontrol eden, tüm bağlantıları ve metotları yönlendiren ana
işlevdir.
o [Link]: Proje WSGI (Web Server Gateway Interface) üzerinden sunulması
gerekiyorsa, uyumlu web sunucular için bir giriş noktası görevi görmektedir.

...

You might also like