{"id":7025,"date":"2021-06-20T12:46:00","date_gmt":"2021-06-20T09:46:00","guid":{"rendered":"https:\/\/www.hosting.com.tr\/blog\/?p=7025"},"modified":"2025-08-14T10:00:05","modified_gmt":"2025-08-14T07:00:05","slug":"python-ile-web-sitesi-nasil-yapilir","status":"publish","type":"post","link":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/","title":{"rendered":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r?"},"content":{"rendered":"\r\n<p>Python, 1990\u2019l\u0131 y\u0131llarda Guido Van Rossum\u2019un geli\u015ftirmeye ba\u015flam\u0131\u015f oldu\u011fu ve \u015fu an d\u00fcnya genelinde yo\u011fun olarak kullan\u0131lan bir programlama dilidir. Python \u00f6zellikleri aras\u0131nda, nesne y\u00f6nelim, yorumsall\u0131k, mod\u00fclerlik, etkile\u015fim i\u00e7eri\u011fi bulunmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<p>Dijital literat\u00fcrde yer alan t\u00fcm programlama dilleri gibi Python da makine mant\u0131\u011f\u0131yla, insan mant\u0131\u011f\u0131n\u0131n aras\u0131nda k\u00f6pr\u00fc g\u00f6revi g\u00f6rmektedir. Bir programlama dilinin, makine mant\u0131\u011f\u0131na yak\u0131nl\u0131kta olmas\u0131, makineler \u00fczerinde daha h\u0131zl\u0131 i\u015flem yapmay\u0131 ve daha h\u0131zl\u0131 \u00e7al\u0131\u015fmay\u0131 sa\u011flar. \u00c7o\u011fu zaman makine mant\u0131\u011f\u0131na yakla\u015fmak, insan mant\u0131\u011f\u0131ndan uzakla\u015fmay\u0131 gerektirir, bu y\u00fczden de bir programlama dilinin \u00f6\u011frenilmesi olduk\u00e7a zordur.<\/p>\r\n\r\n\r\n\r\n<p>Python, sistemsel yap\u0131land\u0131rmas\u0131 ile insan mant\u0131\u011f\u0131na daha yak\u0131n \u015fekilde kurgulanm\u0131\u015ft\u0131r ve bu nedenle y\u00fcksek seviyede programlama dilleri aras\u0131nda yer al\u0131r. Python, bir\u00e7ok programlama diline g\u00f6re \u00f6\u011frenmesi ve uygulamas\u0131 kolay diller aras\u0131ndad\u0131r. Bu \u00f6zelli\u011fi ile Python ile web sitesi yapmak, olduk\u00e7a kolayd\u0131r.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"python-ile-web-sitesi-yapma-asamalari\">Python \u0130le Web Sitesi Yapma A\u015famalar\u0131<\/h2>\r\n\r\n\r\n\r\n<p>Python ile web sitesi (Web Development) yapman\u0131n baz\u0131 temel ad\u0131mlar\u0131 bulunmaktad\u0131r. Python arac\u0131l\u0131\u011f\u0131yla web sitesi yapmak i\u00e7in Python\u2019nun Fask Framework\u2019\u00fcnden yararlan\u0131lmaktad\u0131r. Geli\u015ftirilmesi yap\u0131lacak olan ortama ilk a\u015famada Python kurulumunun yap\u0131lmas\u0131 gerekmektedir. Kurulum i\u00e7in gerekli dosyalara Python resmi web sitesinin bu <a href=\"https:\/\/www.python.org\/downloads\/\">linkinden<\/a> ula\u015fabilirsiniz.<a href=\"https:\/\/www.python.org\/downloads\/\">\u00a0<\/a><\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"flask-asamasi\">Flask A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Flask, Python programlama dili \u00fczerinden web geli\u015ftirmelerinin yap\u0131ld\u0131\u011f\u0131 k\u00fc\u00e7\u00fck boyutlu bir Framework\u2019t\u00fcr. Daha ufak ve \u00e7ok komplike olmayan \u00e7al\u0131\u015fmalar, Flask \u00fczerinden kolayca y\u00fcr\u00fct\u00fclebilir. Flask kurulumu, a\u015fa\u011f\u0131daki \u015fekilde ger\u00e7ekle\u015ftirilir.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Python i\u00e7erisinde \u201c<strong>Pycharm<\/strong>\u201d k\u0131sm\u0131na girilir.<\/li>\r\n<li>\u201c<strong>Setting<\/strong>\u201d se\u00e7ilir.<\/li>\r\n<li>Ard\u0131ndan \u201c<strong>Project Interpreter<\/strong>\u201d b\u00f6l\u00fcm\u00fcne giri\u015f yap\u0131l\u0131r.<\/li>\r\n<li>Bu b\u00f6l\u00fcme \u201c<strong>Flask<\/strong>\u201d k\u00fct\u00fcphanesi y\u00fcklenir.<\/li>\r\n<li>Flask kurulumu tamamland\u0131ktan sonra, proje olu\u015fturma safhas\u0131na ge\u00e7ilmektedir. S\u0131ras\u0131 ile;<\/li>\r\n<li>\u201c<strong>Pycharm<\/strong>\u201d \u00fczerinden \u201c<strong>New Project<\/strong>\u201d se\u00e7ilerek, yeni bir proje ba\u015flat\u0131l\u0131r.<\/li>\r\n<li>Men\u00fc i\u00e7erisinde yer alan <strong>\u201cFlask<\/strong>\u201d sekmesine gidilir.<\/li>\r\n<li>Bu b\u00f6l\u00fcmde olu\u015fturulacak yeni proje ismi tan\u0131mlan\u0131r.<\/li>\r\n<li>Ard\u0131ndan \u201c<strong>Create<\/strong>\u201d se\u00e7ilerek proje olu\u015fturma a\u015famas\u0131na ge\u00e7ilir.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Python, Pycharm Flask mimari yap\u0131s\u0131na uygun bir proje olu\u015fturmaya imkan tan\u0131r. Olu\u015fturulan projede, \u201c<strong>Static<\/strong>\u201d ve \u201c<strong>Templates<\/strong>\u201d ad\u0131 verilen iki klas\u00f6r bulunmal\u0131d\u0131r. Route k\u0131sm\u0131n\u0131n sonraki ad\u0131mda olu\u015fturacak oldu\u011fu bir Python dosyas\u0131 da bu b\u00f6l\u00fcmde yer al\u0131r. Opsiyonel olarak \u201c<strong>Pure Python<\/strong>\u201d projesi ile bu dosyalar manuel olarak da olu\u015fturulabilmektedir.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"routes-asamasi\">Routes A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Flask \u00e7al\u0131\u015fma prensiplerinde, y\u00f6nlendirme i\u015flemleri olduk\u00e7a kolayd\u0131r. \u0130\u015flem ad\u0131mlar\u0131 ise;<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Bir k\u00fct\u00fcphanede bulunan tan\u0131ml\u0131 mod\u00fcl i\u00e7erisinde tan\u0131mlar, ba\u015fka bir mod\u00fcl i\u00e7ine aktar\u0131labilir. Buna k\u0131saca \u201c<strong>Import etmek<\/strong>\u201d denilmektedir. Python i\u00e7erisine Flask k\u00fct\u00fcphanesi import edilmektedir.<\/li>\r\n<li>Ard\u0131ndan Flask s\u0131n\u0131flar\u0131ndan al\u0131nan \u00f6rne\u011fe, URL tan\u0131mlamas\u0131 yap\u0131lmaktad\u0131r.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Bu b\u00f6l\u00fcm i\u00e7in sadece belirlenmi\u015f y\u00f6nlendirmelerin yap\u0131lmas\u0131 yeterli olmaktad\u0131r. Database i\u00e7erisinde yer alan \u201c<strong>User<\/strong>\u201d tablosunda bulunan t\u00fcm de\u011ferlerin al\u0131nmas\u0131 i\u00e7in yap\u0131lacak i\u015flemlerden biri, Route fonksiyonlar\u0131n\u0131n yer ald\u0131\u011f\u0131 Python dosyas\u0131na yaz\u0131lmas\u0131 \u015feklinde a\u00e7\u0131klanmaktad\u0131r. Import edilebilir yap\u0131da olmayan fonksiyonlar, ba\u015fka bir alanda \u00e7a\u011fr\u0131l\u0131p, kullan\u0131labilmektedir. Flask \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda ise varsay\u0131lan (Default) olarak localhost:5000 portu i\u00e7inde \u00e7al\u0131\u015fmaya ba\u015flayacakt\u0131r. Ba\u015fka bir y\u00f6ntem olarak, a\u015fa\u011f\u0131daki \u00f6rnekte oldu\u011fu gibi, \u201c<strong>Run<\/strong>\u201d fonksiyonunu kullanarak, belirlenen port numaras\u0131 ile istenilen port \u00fczerinden \u00e7al\u0131\u015fmas\u0131 sa\u011flanabilir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/U3mgevGv1yfdMFL9gnrtLKVJ-2lyIyuxqTeZE7Mf8qODQ6EjPCh3dk4c6Wh_7FzHPMTpNuLzFgfkM5nuEgKafD34ePer21cE4b9rmnAroeu4b0pRUEAUq8Xn8OFpDcvpPCUghgJM\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>API yerine aray\u00fcz\u00fc olan bir web projesi i\u00e7in run fonksiyonunu, 800 portunda \u00e7al\u0131\u015ft\u0131rmak m\u00fcmk\u00fcn olmaktad\u0131r. Web projeleri local ortamlarda \u201c<strong>debug_mod<\/strong>\u201d ile \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, hata verdi\u011finde bu hata taray\u0131c\u0131 taraf\u0131ndan da g\u00f6r\u00fcnt\u00fclenmektedir. Bu b\u00f6l\u00fcmde de \u201c<strong>Run<\/strong>\u201d fonksiyonu i\u00e7erisinde \u201c<strong>debug=true<\/strong>\u201d eklenmesi, \u201c<strong>debug<\/strong>\u201d modunda a\u00e7\u0131lmas\u0131n\u0131 sa\u011flamaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/9F_gO6lN87o1BfXiXRb_PW1KS8px8H0ZvY8sixuYCMt_Yv1vbwwmFHdIFLjTkeng6zJOFo9H6D9s3CvVqbjJQO4Km54nxwfUQxvO-4cL4STJ67Vl-qLn8EEBq9GETZ7KBsid9ZM-\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"templates-tema-asamasi\">Templates (Tema) A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Bu a\u015famada yap\u0131lacak ilk i\u015flem, Route yap\u0131s\u0131n\u0131n i\u00e7erisinde bar\u0131nd\u0131r\u0131ld\u0131\u011f\u0131 Python dosyas\u0131na <strong>\u201crender_template<\/strong>\u201d dosyas\u0131n\u0131n aktar\u0131lmas\u0131 \u015fekklinde olmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/KvgVjJu4ZxPXI_YzOdNaj91jXOK5zT69yFunCc6qGvVdxuAO_-2ygM-YusX38JR4izM_FmsqXIuN9cr1QHr4rFgZZu4mGUWuevQI3MVTqONr-qYjgVGfqPG68zhO9gzm3efDDtcu\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Flask i\u00e7erisinde HTML dosyalar\u0131 her zaman \u201c<strong>Template<\/strong>\u201d klas\u00f6r\u00fcnde tutulmaktad\u0131r. Tan\u0131mlanan bir URL i\u00e7in HTML dosyalar\u0131n\u0131n render edilmesi \u201c<strong>render html<\/strong>\u201d fonksiyonu ile yap\u0131l\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/s_3attIryI5Dyx3yXodltBTbPgZubvekQHZWiKms9pJKL6kB16VVU01_r02zsnET9ahlTa-3tFMnzb1OpN7zE7RvA-Z9RX3jxdvUMH5CFvuPCLImcJL6GsTdBHAcbh5_6BUjPGgl\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Bu i\u015flem ile Templates klas\u00f6r\u00fc alt\u0131nda bulunan HTML dosyalar\u0131, ba\u011flant\u0131l\u0131 URL\u2019lerde render edilmektedir. Render a\u015famalar\u0131nda, HTML y\u00f6n\u00fcne Python de\u011fi\u015fkenleri de g\u00f6nderilmektedir. Bu i\u015flem, web geli\u015ftirmelerinde en s\u0131k kullan\u0131lan \u00f6zelliklerden biridir. Route alan\u0131ndan render_template fonksiyonuna parametre olarak g\u00f6nderilmek istenilen de\u011fi\u015fken isim ve de\u011ferleri de burada tan\u0131mlanmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/kT2TQAeRyR5l2YS0TcvfRN_zCdzRR5GFaG4L2sVHmV_TaucGc1-_i-JXPWaxzLI2RdKq-huDFJVi-I8APrcrG7RmZf6Q8Mqqfjjj-zDrA4gKZM4C1zSiFs1s-htbi0SrRUssS6zK\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Bu i\u015flem ile olu\u015fturulmu\u015f olan Route \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 anda \u201c<strong>training.html<\/strong>\u201d render edilerek, \u201c<strong>html variable<\/strong>\u201d de\u011fi\u015fkeni i\u00e7ine \u201c<strong>my_data<\/strong>\u201d de\u011feri atanarak, HTML taraf\u0131na iletilmektedir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/tk-JblShnPsgbmoRr4MiDM_apMXGIWgg6Ytsx4MUSdwMGB-d-GWmI-9QborHd09g-EDJ_Zxui2izfubxRk3-4sLhL85PgGTmWqsos1BGvZIrDjOY8xAoAz4t21rs4-FpkVG7lJ1I\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Dizinin HTML alan\u0131na <strong>\u201c<\/strong><strong>{{ }}<\/strong>\u201d parantezler i\u00e7erisine iletilen de\u011fi\u015fken yaz\u0131lmaktad\u0131r. Bu \u015fekilde parantez i\u00e7erisinde al\u0131nan b\u00f6l\u00fcm render edilmi\u015f olmaktad\u0131r. Sisteme iletilen de\u011fi\u015fken yaln\u0131zca \u201c<strong>String<\/strong>\u201d \u015feklinde de\u011fil, t\u00fcm veri tiplerine g\u00f6nderilebilmektedir. \u00d6rnek olarak; bir \u201c<strong>array<\/strong>\u201d tan\u0131m\u0131 ile g\u00f6ndererek, HTML alan\u0131nda d\u00f6ng\u00fc kurabilirsiniz. \u201c<strong>if<\/strong>\u201d ve \u201c<strong>array<\/strong>\u201d i\u00e7indeki de\u011ferler, belirtilen \u015fartlara uygun olarak da i\u015flenmektedir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/2Xs7yzBKcHeXnsQoof3TOYpcwf-3yy_j_U7owMoLpbygYUEYCLzol5oxizu30dIHEMT6NJ_wcUbUvVh_ZQ0j8ihI04fPYPN3vWtvccaaRQGBCNFv5fQW6ym6FwsuexrnzUkXTWA-\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Yukar\u0131da belirtilen \u00f6rnekte, Database kullan\u0131c\u0131 tablosundan, t\u00fcm kullan\u0131c\u0131lar \u00e7ekilerek, bir \u201c<strong>array<\/strong>\u201d bi\u00e7iminde HTML taraf\u0131na g\u00f6nderilmi\u015ftir. Ard\u0131ndan belirlenen \u201c<strong>array<\/strong>\u201d i\u00e7in bir d\u00f6ng\u00fc olu\u015fturulmu\u015ftur. D\u00f6ng\u00fc i\u00e7erisinde tablo olu\u015fturulmas\u0131 ile aktif kullan\u0131c\u0131lar mavi renkte, pasif kullan\u0131c\u0131lar ise k\u0131rm\u0131z\u0131 renkte tan\u0131mlanarak, HTML alan\u0131ndaki kullan\u0131c\u0131ya iletilmi\u015ftir. Bu \u00f6rnekte g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi pek \u00e7ok ko\u015fulland\u0131r\u0131lm\u0131\u015f ifade yazmak m\u00fcmk\u00fcnd\u00fcr.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"layout-yerlesim-asamasi\">Layout (Yerle\u015fim) A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Python ile web sitesi yapman\u0131n en \u00f6nemli avantajlar\u0131ndan biri de Layout sistemleridir. Layout sisteminin kullan\u0131m amac\u0131 \u015fu \u015fekilde \u00f6zetlenebilir. 5 sayfadan olu\u015fan bir ki\u015fisel web sitesi yaparken, \u201c<strong>Ana Sayfa<\/strong>\u201d, \u201c<strong>\u0130leti\u015fim<\/strong>\u201d, \u201c<strong>Hakk\u0131mdaki Bilgiler<\/strong>\u201d, <strong>\u201cHobilerim<\/strong>\u201d, \u201c<strong>Kitap \u00d6nerilerim<\/strong>\u201d gibi sayfalar a\u00e7mak m\u00fcmk\u00fcnd\u00fcr. A\u00e7\u0131lan sayfalardan her biri i\u00e7in birer adet \u201c<strong>Banner<\/strong>\u201d alan\u0131 ve \u201c<strong>Footer<\/strong>\u201d k\u0131sm\u0131 olu\u015fturulabilir. Template Engine kullan\u0131lmad\u0131\u011f\u0131 zaman a\u00e7\u0131lan her 5 sayfa i\u00e7in, \u201c<strong>Banner<\/strong>\u201d ve \u201c<strong>Footer<\/strong>\u201d alanlar\u0131na ait HTML kodlar\u0131n\u0131n her sayfaya \u201c<strong>Kopyala \/ Yap\u0131\u015ft\u0131r<\/strong>\u201d y\u00f6ntemi ile eklenmesi gerekir. Her sayfada ayn\u0131 kod kullan\u0131m\u0131 oldu\u011funda, hem tekrar olu\u015fmakta hem de \u00fczerlerinde de\u011fi\u015fiklik yap\u0131laca\u011f\u0131 zaman ayr\u0131 ayr\u0131 g\u00fcncelleme yapmak zorunlulu\u011fu ortaya \u00e7\u0131kar. Web sitelerinde az say\u0131da sayfa oldu\u011funda bu durum tolere edilebilir ancak 100\u2019den fazla sayfaya sahip bir web sitesi i\u00e7in bu y\u00f6ntem i\u015flevsellik sunmamaktad\u0131r. Bu noktada en b\u00fcy\u00fck yard\u0131mc\u0131m\u0131z ise Layout yap\u0131s\u0131 alacakt\u0131r. Layout alan\u0131na tekrar edilecek olan alanlar\u0131n HTML kodlar\u0131 yaz\u0131larak, yeni bir HTML sayfas\u0131 olu\u015fturulur. Ard\u0131ndan sayfalarda de\u011fi\u015fiklik g\u00f6steren alanlar belirlenir. Bu i\u015flem ak\u0131\u015f\u0131 web tasar\u0131m a\u015famas\u0131nda hem zamandan hem de i\u015f y\u00fck\u00fcnden tasarruf sa\u011flar.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/J_7i1WaAfEfYDj9X0pCHuB6tHERDmgAcF617KBdKqxHbmO1Z6KmjIxOfkKtuxW4-P3QIfHtTsJybkcU03d4QZK-hFM04HEiSzo2ATf7UZLOuUbSMDb4IiYrlUAqSX2zpO7yBgVj7\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Yukar\u0131da \u00f6rnek olarak verilen kod diziliminde \u201c<strong>{ \u00a7 \u00a7 }\u201d<\/strong> karakterlerinin aras\u0131na de\u011fi\u015fim g\u00f6stermesi istenilen alan isimlendirilmektedir. Bu \u00f6rnekte \u201c<strong>Left \u2013Menu<\/strong>\u201d ve \u201c<strong>Footer<\/strong>\u201d aras\u0131nda kalan alan de\u011fi\u015ftirilebilir k\u0131l\u0131nm\u0131\u015ft\u0131r. Web sitesi tasar\u0131m\u0131nda kullan\u0131lacak yeni sayfalarda, olu\u015fturulan ana HTML dosyas\u0131n\u0131n a\u015fa\u011f\u0131daki \u00f6rnekte oldu\u011fu gibi extend edilmesi gerekmektedir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/DXj_q0fsH7541dBwnIVvO871N48h4dsAsOu0kk43ny3ZNvzLqm0D1njW0r9b7uOim94a0WYpO8cYLK8w9UsedOMYRV9k-m4TGckYtM3uFltg7BxW51735Ck4SpTM7B0MZLXcbzew\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Extend i\u015flemi tamamland\u0131ktan sonra, de\u011fi\u015ftirilebilir k\u0131l\u0131nan \u201c<strong>Block<\/strong>\u201d alan\u0131 yeni sayfaya tekrar yaz\u0131larak, i\u00e7inde o sayfada ne olmas\u0131 isteniyorsa, onlar tan\u0131mlanmal\u0131d\u0131r. Bu \u015fekilde <strong>\u201cBanner<\/strong>\u201d ve \u201c<strong>Footer\u201d<\/strong> alanlar\u0131 i\u00e7erisinde yap\u0131lacak olan de\u011fi\u015fiklikler, sadece ana HTML dosyas\u0131ndan de\u011fi\u015ftirilerek, t\u00fcm sayfalarda de\u011fi\u015fikli\u011fin uygulanmas\u0131 sa\u011flanacakt\u0131r.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"static-asamasi\">Static A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Python ile web sitesi yaparken, Static klas\u00f6r\u00fcn\u00fcn amac\u0131 CSS, JS ve Image dosyalar\u0131n\u0131 bar\u0131nd\u0131rmakt\u0131r. Tan\u0131ml\u0131 bu dosyalar, istenilen yerden \u201c<strong>url_for\u201d<\/strong> fonksiyonu ile \u00e7a\u011f\u0131rlabilir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/cdSTldSp5JcYHe93NJxqMzBv1kiFADFmxHgBskuvcsLCJtzhSX6MHEnqdE1zouozMA2ULoNxJrY4erRNWzdUZ5srsRyyb8fu40o4eRnvh65a7Aa3PKq5yJq8Qxka0SAcFruvWtQQ\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"error-handling-asamasi\">Error Handling A\u015famas\u0131<\/h3>\r\n\r\n\r\n\r\n<p>Flask i\u00e7erisinde olu\u015fan ya da olu\u015fabilecek olan hatalar yakalanmaktad\u0131r. Web sayfas\u0131 hata verdi\u011finde, kullan\u0131c\u0131n\u0131n belirlenen HTML sayfas\u0131na y\u00f6nlendirilmesi de m\u00fcmk\u00fcnd\u00fcr. Bunun i\u00e7in a\u015fa\u011f\u0131daki kod tan\u0131m\u0131n\u0131 yapmak gerekmektedir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/DSHrC-FueE6_9X8GTMrb4xrGY3iJ_mqy4G6a4NL4y0cHxG50_u3xDE8ZArgZ3lBwRRW7mHj7gNk8f7LMV04HckwZbf4lqfIqbMXOVSXShKYAuovxa2BhrLtifB1bsqBIu51SfP5p\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>\u00d6rnekte belirtildi\u011fi gibi, kullan\u0131c\u0131n\u0131n web sitesinde bulunmayan bir URL\u2019ye gitmesi durumunda, belirlemi\u015f oldu\u011fumuz 404 hata sayfas\u0131na y\u00f6nlendirme yap\u0131lmaktad\u0131r. Belirtilen alanlara kendi web site kodunuzu yazman\u0131z yeterlidir.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"python-flask-ile-web-sitesine-ana-sayfa-olusturulmasi\">Python Flask \u0130le Web Sitesine Ana Sayfa Olu\u015fturulmas\u0131<\/h2>\r\n\r\n\r\n\r\n<p>Python ile web sitesi olu\u015ftururken Flask Templates klas\u00f6r\u00fc i\u00e7erisinde \u201c<strong>Template<\/strong>\u201d dosyalar\u0131n\u0131 aramaktad\u0131r. Bunun i\u00e7in \u00f6ncelikle Python App klas\u00f6r\u00fc a\u00e7\u0131larak yeni bir \u201c<strong>Templates<\/strong>\u201d dosyas\u0131 olu\u015fturmak gerekir. Templates klas\u00f6r\u00fc olu\u015fturulduktan sonra i\u00e7erisinde \u201c<strong>index.html<\/strong>\u201d ad\u0131nda bir dosya tan\u0131mlanmal\u0131d\u0131r. Tan\u0131mlanan \u201c<strong>index.html<\/strong>\u201d dosyas\u0131 a\u00e7\u0131l\u0131r ve a\u015fa\u011f\u0131da belirtilen HTML kodlar\u0131 eklenir.<\/p>\r\n\r\n\r\n\r\n<p>\u00a0&lt;!DOCTYPE html&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;html lang=&#8221;en&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;head&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;title&gt;Python Flask Bucket List App&lt;\/title&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;link href=&#8221;http:\/\/getbootstrap.com\/dist\/css\/bootstrap.min.css&#8221; rel=&#8221;stylesheet&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0 &lt;link href=&#8221;http:\/\/getbootstrap.com\/examples\/jumbotron-narrow\/jumbotron-narrow.css&#8221; rel=&#8221;stylesheet&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0&lt;\/head&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;body&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0 &lt;div class=&#8221;container&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0 &lt;div class=&#8221;header&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;nav&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;ul class=&#8221;nav nav-pills pull-right&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;li role=&#8221;presentation&#8221; class=&#8221;active&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;Ana Sayfa&lt;\/a&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/li&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;li role=&#8221;presentation&#8221;&gt;&lt;a href=&#8221;#&#8221;&gt;Hakk\u0131m\u0131zda&lt;\/a&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/li&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;li role=&#8221;presentation&#8221;&gt;&lt;a href=&#8221;showSignUp&#8221;&gt;Giri\u015f Yap&lt;\/a&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/li&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/ul&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/nav&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h3 class=&#8221;text-muted&#8221;&gt;Python Flask App&lt;\/h3&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=&#8221;jumbotron&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h1&gt;Bucket List App&lt;\/h1&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p class=&#8221;lead&#8221;&gt;&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;&lt;a class=&#8221;btn btn-lg btn-success&#8221; href=&#8221;showSignUp&#8221; role=&#8221;button&#8221;&gt;Sign up today&lt;\/a&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=&#8221;row marketing&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=&#8221;col-lg-6&#8243;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;\u0130lgili port \u00fczerine y\u00f6nlendir.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;\u0130lgili port \u00fczerine y\u00f6nlendirme yap\u0131lm\u0131\u015ft\u0131r.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;Yeni port tan\u0131mlanm\u0131\u015ft\u0131r.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div class=&#8221;col-lg-6&#8243;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;Birden fazla port bulunmu\u015ftur.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;Portlar aras\u0131nda ge\u00e7i\u015f yap\u0131lm\u0131\u015ft\u0131r.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h4&gt;Bucket List&lt;\/h4&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;Tan\u0131ml\u0131 t\u00fcm portlar aktiftir.&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;footer class=&#8221;footer&#8221;&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;p&gt;&amp;copy; Company 2015&lt;\/p&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0 &lt;\/footer&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;<\/p>\r\n\r\n\r\n\r\n<p>&lt;\/body&gt;<\/p>\r\n\r\n\r\n\r\n<p>\u00a0&lt;\/html&gt;<\/p>\r\n\r\n\r\n\r\n<p>Ard\u0131ndan \u201c<strong>app.py<\/strong>\u201d dosyas\u0131 a\u00e7\u0131larak, \u201c<strong>render_template<\/strong>\u201d import edilmelidir. Bu i\u015flem template dosyalar\u0131n\u0131n yorumlanmas\u0131nda kullan\u0131lmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/ssOLkIg8NitqiIU6DWn6saryz1Yqth4s-oaXXMBXWRAWPhKNO_QmO1nxYFDX6CWDdfch3NKEJVPZ5f-T1kCm3IHxi9ikcEmw4tLsgXnSlXcz2YR0y0oSKfcf4jcB37iy_QA84hac\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Ard\u0131ndan <strong>\u201cmain_method<\/strong>\u201d d\u00fczenlemesi yap\u0131l\u0131r. Bir sonraki i\u015flem ad\u0131m\u0131 ise yorumlanm\u0131\u015f \u201c<strong>Template<\/strong>\u201d dosyas\u0131n\u0131n return edilmesi olacakt\u0131r.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/VQ81rZcJ9M8OFa6oAuIWfpVj_YZYNwfmiO0JxAiVAoKb5aOKLda77hIgb_S79GrkZEBMs76OJXC4xba6SP2kOBmxiCTYfdryoEI44YMOnq2-Slq8CwVni05RO740iKwbYxhD7Og0\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Son a\u015famada t\u00fcm de\u011fi\u015fikliklerin kaydedilmesi. Server yeniden ba\u015flat\u0131larak, web taray\u0131c\u0131s\u0131ndan<a href=\"http:\/\/localhost:5000\/\"> http:\/\/localhost:5000<\/a> adresine gidilirse, a\u015fa\u011f\u0131daki g\u00f6rsel ekranda g\u00f6r\u00fcnt\u00fclenecektir.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" class=\"wp-image-7026\" src=\"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/python-site-goruntusu.png\" alt=\"\" srcset=\"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/python-site-goruntusu.png 512w, https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/python-site-goruntusu-300x300.png 300w, https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/python-site-goruntusu-150x150.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"Python, 1990\u2019l\u0131 y\u0131llarda Guido Van Rossum\u2019un geli\u015ftirmeye ba\u015flam\u0131\u015f oldu\u011fu ve \u015fu an d\u00fcnya genelinde yo\u011fun olarak kullan\u0131lan bir&hellip;\n","protected":false},"author":23,"featured_media":7028,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_appearance_grid":"","csco_page_load_nextpost":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"footnotes":""},"categories":[361,346],"tags":[],"class_list":{"0":"post-7025","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-sitesi","8":"category-yazilim-programlama","9":"cs-entry","10":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r? - Hosting.com.tr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r? - Hosting.com.tr\" \/>\n<meta property=\"og:description\" content=\"Python, 1990\u2019l\u0131 y\u0131llarda Guido Van Rossum\u2019un geli\u015ftirmeye ba\u015flam\u0131\u015f oldu\u011fu ve \u015fu an d\u00fcnya genelinde yo\u011fun olarak kullan\u0131lan bir&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hosting.com.tr\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-20T09:46:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-14T07:00:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"368\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Arif Uslu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hostingcomtr\" \/>\n<meta name=\"twitter:site\" content=\"@hostingcomtr\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arif Uslu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 dakika\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r? - Hosting.com.tr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/","og_locale":"tr_TR","og_type":"article","og_title":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r? - Hosting.com.tr","og_description":"Python, 1990\u2019l\u0131 y\u0131llarda Guido Van Rossum\u2019un geli\u015ftirmeye ba\u015flam\u0131\u015f oldu\u011fu ve \u015fu an d\u00fcnya genelinde yo\u011fun olarak kullan\u0131lan bir&hellip;","og_url":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/","og_site_name":"Blog","article_publisher":"https:\/\/www.facebook.com\/hosting.com.tr","article_published_time":"2021-06-20T09:46:00+00:00","article_modified_time":"2025-08-14T07:00:05+00:00","og_image":[{"width":512,"height":368,"url":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg","type":"image\/jpeg"}],"author":"Arif Uslu","twitter_card":"summary_large_image","twitter_creator":"@hostingcomtr","twitter_site":"@hostingcomtr","twitter_misc":{"Yazan:":"Arif Uslu","Tahmini okuma s\u00fcresi":"11 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#article","isPartOf":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/"},"author":{"name":"Arif Uslu","@id":"https:\/\/www.hosting.com.tr\/blog\/#\/schema\/person\/c1137b96fe7e854996aef0ca3667e632"},"headline":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r?","datePublished":"2021-06-20T09:46:00+00:00","dateModified":"2025-08-14T07:00:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/"},"wordCount":2051,"commentCount":0,"publisher":{"@id":"https:\/\/www.hosting.com.tr\/blog\/#organization"},"image":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg","articleSection":["Web Sitesi","Yaz\u0131l\u0131m &amp; Programlama"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/","url":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/","name":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r? - Hosting.com.tr","isPartOf":{"@id":"https:\/\/www.hosting.com.tr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#primaryimage"},"image":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg","datePublished":"2021-06-20T09:46:00+00:00","dateModified":"2025-08-14T07:00:05+00:00","breadcrumb":{"@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#primaryimage","url":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg","contentUrl":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2021\/07\/phyton-ile-web-sitesi-nasil-yapilir.jpeg","width":512,"height":368,"caption":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r?"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hosting.com.tr\/blog\/python-ile-web-sitesi-nasil-yapilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.hosting.com.tr\/blog\/"},{"@type":"ListItem","position":2,"name":"Yaz\u0131l\u0131m &amp; Programlama","item":"https:\/\/www.hosting.com.tr\/blog\/yazilim-programlama\/"},{"@type":"ListItem","position":3,"name":"Python \u0130le Web Sitesi Nas\u0131l Yap\u0131l\u0131r?"}]},{"@type":"WebSite","@id":"https:\/\/www.hosting.com.tr\/blog\/#website","url":"https:\/\/www.hosting.com.tr\/blog\/","name":"Hosting.com.tr","description":"Domain, Hosting, Startup\/Kobi, Dijital Pazarlama, Teknoloji, Wordpress ve Nas\u0131l Yap\u0131l\u0131r? kategorilerinde en g\u00fcncel yaz\u0131lar.","publisher":{"@id":"https:\/\/www.hosting.com.tr\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hosting.com.tr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/www.hosting.com.tr\/blog\/#organization","name":"Webhosting A.\u015e","url":"https:\/\/www.hosting.com.tr\/blog\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.hosting.com.tr\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2025\/04\/hosting-logo.png","contentUrl":"https:\/\/www.hosting.com.tr\/blog\/wp-content\/uploads\/2025\/04\/hosting-logo.png","width":500,"height":157,"caption":"Webhosting A.\u015e"},"image":{"@id":"https:\/\/www.hosting.com.tr\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hosting.com.tr","https:\/\/x.com\/hostingcomtr","https:\/\/instagram.com\/hostingcomtr","https:\/\/www.linkedin.com\/company\/hosting-com-tr\/","https:\/\/www.youtube.com\/channel\/UCFNJq7pU_T2SEjv7UgLDtRw"]},{"@type":"Person","@id":"https:\/\/www.hosting.com.tr\/blog\/#\/schema\/person\/c1137b96fe7e854996aef0ca3667e632","name":"Arif Uslu","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.hosting.com.tr\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/592d8b70fee4ceeb6976d92f82be27e995c0db7644111838e2a4f691769b0d3e?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/592d8b70fee4ceeb6976d92f82be27e995c0db7644111838e2a4f691769b0d3e?s=96&r=g","caption":"Arif Uslu"},"description":"Biyoloji Lisans e\u011fitimi sonras\u0131 ila\u00e7 sekt\u00f6r\u00fcnde 10 y\u0131ldan fazla kurumsal firmalarda g\u00f6rev yaparak deneyim kazanan, ayr\u0131ca in\u015faat sekt\u00f6r\u00fcnde bireysel giri\u015fimlerde bulunan, yine altyap\u0131 in\u015faat\u0131 ve yenilenebilir enerji alan\u0131nda hizmet veren bir firmada \u00fcst d\u00fczey y\u00f6neticilik deneyimine sahip, C s\u0131n\u0131f\u0131 \u0130\u015f G\u00fcvenli\u011fi Uzman\u0131, \u00f6m\u00fcr boyu \u00f6\u011frenme ilkesiyle hobi olarak yaz\u0131l\u0131m sekt\u00f6r\u00fcnde ve siber g\u00fcvenlik alan\u0131nda kendini geli\u015ftirmeye \u00e7al\u0131\u015fan, s\u00fcrekli \u00f6\u011frenen bir k\u0131z \u00e7ocuk babas\u0131...","url":"https:\/\/www.hosting.com.tr\/blog\/author\/arif\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/posts\/7025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/comments?post=7025"}],"version-history":[{"count":1,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/posts\/7025\/revisions"}],"predecessor-version":[{"id":14548,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/posts\/7025\/revisions\/14548"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/media\/7028"}],"wp:attachment":[{"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/media?parent=7025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/categories?post=7025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hosting.com.tr\/blog\/wp-json\/wp\/v2\/tags?post=7025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}