Örnek olarak pratik web tabanlı derin öğrenme ve güvenlik

İle Daisy
Örnek olarak pratik web tabanlı derin öğrenme ve güvenlik Üçüncü baskı Charlotte Harper 3 Temmuz 2024 Önsöz: Web için yazılım oluşturmada güvenlik hususları, herhangi bir Web geliştiricisinin planının ve yürütülmesinin önemli bir parçasıdır, ancak pratik amaçlar için güvenilir, istikrarlı ve kullanışlı bir prototip tasarlar. DOM (Belge Nesne İşaretlemesi), HTML, JavaScript ve CSS'nin yanı sıra Python, C/C ++, Java ve Bash uygulayan arka uç yazılımı, web geliştiricilerine ifade eden çok çeşitli projeler oluşturmak için özgürlük ve güç verir. Yaratıcılık, kullanım kolaylığı ve işlevselliği sağlayın, alçakgönüllülük ve karakteri tasvir edin ve kullanım kolaylığı ile birlikte ortalama Joe için cazip olan kolaylık ve önemli hizmetler, son kullanıcı İnternette, genellikle dokunmatik ekranlı bir akıllı telefon cihazında zaman öldürün veya bir şeyler yaptırın. Çoğu insan, bir web sitesi oluşturmak istediklerinde nereden başlayacağınızı bile bilemezdi.Scratch, başka bir kişinin web sitesinde başlama ve zamana basmadan yararlı bir şey inşa etmek için en son güçlü araçlara sahip olabileceklerinde işlevsellik, güvenilirlik, kullanım kolaylığı ve özellikle yaratıcılık açısından sınırlı bir şey inşa etme eğiliminde olurlar. ve özellikle kullanım kolaylığı ve esneklik sınırlamaları göz önüne alındığında, birkaç kişi yazılıma pahalı abonelikler için para harcayarak para harcıyor. Bu kitabı okumak ve size ne öğretmek istediğimi öğrenmek için birkaç dakikanız varsa, hatta benimle hedefleriniz hakkında kişisel olarak konuşun ve doğru yönde biraz rehberlik edin ve kendi yazılımınızı kodlamayı ve yazmayı öğrenmeye motive iseniz , bu kitabı eve götürün ve bir sonraki etkili, güçlü, aerodinamik ve önemli web uygulamasını oluşturmayı öğrenmek için biraz zaman ayırın, hepsi sizin içinizde olan ve tam olarak istediğiniz şeyi yapan ve kitlenizin ihtiyaçlarını karşılayan bir web sitesi. Benim hakkımda: Ben bir yazılım geliştiricisiyimC/C ++, Java, Python, HTML, CSS ve JavaScript'te deneyim yelpazesi. İnsanların kullanmak, ziyaret etmek ve hatta sadece zaman öğrenmek, yeniden yaratmak ve öldürmek için kullanmaya bağımlı olmak isteyen web siteleri oluşturuyorum ve en önemlisi yazılım satıyorum. Bir web sitesinin nasıl görünmesini ve işlev görmesini istediğine dair bir fikriniz varsa, sizinkiyle tanışırken kendi ihtiyaçlarımı karşılayabilirim, böylece bir web sitesi çalıştırmanın maliyetlerini karşılamaya istekli olursunuz, böylece beni desteklemeye istekliydiniz, Size bir sonraki YouTube, Tiktok, Twitter, Google ve hatta yalnızca erişebileceğiniz bir yüksek teknoloji güvenlik uygulamasını oluştururdum. Size zamanımı satmaya çalışmak yerine, sizinkini satın almaya çalışıyorum: Sizi zaten var olan bilgilerle kendiniz (web sitesi) oluşturmak için konuşmak istiyorum ve bağımsız bir yazılım geliştiricisi olmanız için neye ihtiyacınız olduğunu öğretmek istiyorum, Girişimci, istediğiniz alanda başarılı bir kariyere öncülük ediyor. Ve net olalım, size verdiğim eğitim gayri resmi olacak. Okula gidebilir ve tüm bunları birresmi eğitim, hatta bu kitabı okulda okuyun, ödevlerinizi tamamlayın ve eğitiminizden çok şey alın, ancak sizi resmen sıcak koltuğa koymaya ve ödevleri tamamlamanızı istemeyeceğim. Ben senin profesörün değilim, beni kendi kişisel başarınızla yönlendirilen bir kariyere doğru yönlendirmek isteyen bir arkadaş gibi düşünebilirsiniz. Ve ben de size başarı satmıyorum, zamanınızla satın almanız gerekecek. Kod yapmayı öğrenmenin dik bir öğrenme eğrisi vardır ve asla kolay değildi, hatta olması gerekmiyordu. Mümkün olduğunca çok çalışmanız ve uygulamaları öğrenmek ve oluşturmak için hayal kırıklığına uğradığınızda bile denemeye ve başarısız olmaya devam etmeniz gerekir. Kodun kendisinde. Kod, programcının hata mesajlarını vermek için tasarlanmış bir derleyici tarafından çalıştırılır ve bunlar, hatayı arama motorunuza kopyalayıp diğer kişilerin örneklerini okumuş olsanız bile, nasıl kod yapacağınızı öğretecektir. Ve söylemeliyim ki, son derece zengin, akıllı olmanıza gerek yok,Bir uygulama oluşturmak için esas, hatta detay odaklı veya düzenli. Bilgisayar sizin için bu kuruluşla ilgileniyor. Sadece deneme yanılma yoluyla ısrar etmeniz, odaklanmanız ve yaptığınız işte çok çalışmanız gerekir ve yaptığınız işin tamamında çok başarılı bir kariyere sahip olacaksınız. Ben kimim: Son bölümün daha çok öğrenme ve bu kitaptan bir yol almanızla ilgili olduğunun farkındayım. Ben tam olarak kimim? Bu karmaşık bir soru. Kendim, kendimi kodlamamı veya yazmamı zorlaştırabilecek tıbbi koşullardan muzdarip olduğum için, kendimi tanıtmak söz konusu olduğunda hayatımı zorlaştıran sosyalleşme ve kimlik sorunları ile ilgili zorluklar sunmayı zorlaştırdığım için belirsizim. . Kısacası, bu kitabı okuyorsanız, onu eve getirdiniz, çünkü bunun içinden geçip yararlı olduğunu düşündünüz, ya da bu kadar uzakta okumuş olsanız bile, size başarılı olduğunuzu görmek isteyen benzer bir insanım Yaptığın her şey. Ben kendim bir mühendisimGeliştirici ve bir öğrenci ve ben bu kitabı, büyük bir bulmaca gibi bir araya getiren örnekler bir çalışmaya kopyalamak için örnekler vererek hayatlarını kolaylaştıracak bir el kitabına sahip olarak hayatlarını kolaylaştırmak isteyen diğer öğrenciler için yazıyorum. , iş kolu ne olursa olsun başarıyı artırabilecek kullanışlı, büyük, işlevsel, uyumlu ve ilgi çekici bir uygulama. Büyük ölçüde, yaptığım şey bu: Kendime ve diğer insanların başarılı olmasına yardımcı olacak uygulamalar oluşturuyorum. Ben de bir yazarım, ancak bu, portföyümü yararlı bir belgeye koymak için tamamlamayı planladığım ilk yayınım ve ben de bir sanatçıyım. Bunu sana itiraf edeceğim, ben biraz garip bir insanım. Mükemmel değilim, daha başarılı bir şekilde kendim için bir isim yapmaya çalışmak için kolejlerden ve üniversitelerden ayrılmamı ve devletleri terk etmeme bile yönelik yasa ile çalıştım. Ben doğumda bir kadınım, makyaj yapıyorum, kendimi fotoğraf çekiyorum, elbiseler ve diğer kadın kıyafetleri giyiyorum ve kendimi bilinçli kalıyorumkadın doğası gereği. Geçmişte webapps yazma ve inşa etmekle mücadele eden diğer insanlarla sorun yaşadım ve bu kitabı daha erken elinize alamadığım için özür dilerim: buna ihtiyacınız var. Benim gibi görünen ve benim gibi çalışan ve aynı şeyi yapan kodu okumak ve yazmak isteyeceksiniz, ancak daha da iyisi, çünkü bu kitabınızı kendiniz gibi bir kitap oluşturmak için klavyenizi ezmek yerine satın almayı göze alabiliyorsanız Bunun için, hayatınızda başarılı olmak için ihtiyacınız olan kaynaklara sahipsiniz. Ailenin büyümesi, sağlık koşulları, doktorlar, medya ve yasa ile ilgili her türlü sorunum vardı ve kodum bölünmüş ve sinirli bir dünyada feminizm ve kadın doğası olan mücadeleyi derinden yansıtıyor. Ancak, bu kitap derinden önem verdiğim bir şey, bebeğim, portföyüm ve geçim kaynağım, bu yüzden metni eve götürdüğünüzde ve benden öğrenmek için dikkatlice gözeneklediğinizde düşünmenizi takdir ediyorum. Lütfen unutmayınECT, bu kitabın hatalar, revizyonlar ve yeni baskılara sahip olacak ve yazımla başarılı bir deneyim yaşamak için mantıksal beyninizle elinizden gelenin en iyisini düşünmeniz gerekecek. Ayrıca, yazarken zorluklarla karşılaşsanız bile sizin için iyi demek istediğimi anlayın. Bunu şöyle düşünün: Dijital alanda hayal edebileceğiniz her şeyi yapmak için bir bilgisayar sistemi kiralayabildiğinizde, karşılaştığınız tüm bilgileri saklayın, #$%! Yze ve organize edin ve anlamaya gelin, Kaçınılmaz olarak yudumladığınız ve hatta yayınladığınız bilgilerle ilgili zorluklarla karşılaşır. Bunu size söylüyorum çünkü aynı zorluklarla karşılaşıyorum. Bu kitabı kendi sorumluluğunuzda kullanın, güvenli bir ortamda yazılım oluşturmak için kullanabileceğiniz topluluğunuz ve topluluklarınızla birlikte çalışın ve başarısız olduğunuzda veya hatta yanlış bir şekilde başarılı olduğunuzda işleri kişisel olarak almayın: ve neden size bu metni getirebilirim ve bir delilik yolunda ayrılmadan başarılı olmanıza yardımcı olabilirimAves Me harap, yırtılmış ve yırtıldı, ben de çalışacağımız ağın paralelistik küresel ölçeği sayesinde herkesin küresel ölçekte yaptığı sıradan sorunlarla karşılaşıyorum. Sadece birkaç kelimeyle kim olduğuma çok aşina olmayabilirsiniz, ancak okumanızı öneririm, işinizi tamamlamak için kendi projelerinizi oluştururken beni okumaya ve anlamaya devam ederken beni tanıyacaksınız. Profesörleriniz veya öğretmenleriniz size atamadığı sürece, bu kitapta ödev olmayacak, ancak okuduğunuz gibi bir proje portföyü oluşturmanızı ve nasıl yapabileceğinizi gösteren bir Capstone projesi oluşturmanızı tavsiye ediyorum. Öğrendiklerinizi uygulayın. Capstone projem, önceki projelerimden kod, oluşturduğum ve metodik olarak elle yazmayı öğrendiğim kod ve bana yardımcı olan çok çeşitli fikir ve ipuçlarını içerdiğinden, bu kitapta okuyacağınız şeylerin çoğunun temelidir. basit bir uygulamayı döndürebileceğim noktayı başarmakTamamen öne çıkıyor ve arkadaşınızın veya ailenizin internette, size reklamı veya haberlerde kullandığını görebileceğiniz popüler bir uygulama gibi görünüyor ve davranıyor. Bu kitap ne: Bu kitap örnek olarak bir öğreticidir. Kodu burada bulabilirsiniz, kodları nasıl öğreneceğinizi, hata ayıklama ve düzeltme hataları hakkında bilgi, sorun giderme adımları, kodunuzu nasıl yedekleyeceğiniz ve kaydedeceğinize dair talimatlar, kodunuzu kırarsa, kodunuzu sabitlerse, dağıtım yapabilirsiniz. Kodunuz, eğlenceli, ilgi çekici ve bağımlılık yapan interaktif web siteleri oluşturun ve kim olduğumu, bunun neden önemli olduğunu ve kendinizi, uygulamanızı ve şirket imajınızı nasıl tasvir edeceğimi anlayacaksınız. Son kullanıcılarınız, web sitenizin ziyaretçileri için mümkün olduğunca en çekici olmak için mutlak en iyi ışıkta oluşturduğunuz yazılım. Bu kitapta, bir platform ve güvenlik olarak web'e odaklanarak bir dizi yazılım tasarımı örneği göstereceğim. Bir temel oluşturarak öğrenme deneyimini başlatacağızYedekleme ve komut dosyası özellikleri ile UNIX kabuğunu kullanarak oject. Ardından, temel bir blog web sitesini inceleyeceğiz, blogumuzu fotoğraf ve video özellikleriyle yükselteceğiz ve bu özellikleri ücretsiz yazılım kullanarak güvenlik çözümlerini kullanmak için kullanacağız ve sunucumuzu takılabilir bir kimlik doğrulama modülü (PAM) kullanarak güvence altına alacağız. Daha sonra diğer kavramların yanı sıra dosya işleme ve işleme, video düzenleme, ses bağışını, barkod tarama ve optik karakter tanımasını inceleyeceğiz. Yol boyunca, yazılımımızı ücretsiz ve ücretli seçeneklerle daha kullanışlı ve güvenli hale getirmemize yardımcı olacak API'leri inceleyeceğiz. Yol boyunca, fıçılar ve tekrarlayıcı tasarımı, taret ve drone tasarımı ve diğer prensipler dahil olmak üzere ateşli silahlar ve mühimmat tasarım ve üretim gibi fiziksel güvenlik ve militan araçları keşfedeceğiz. ve kendini savunma ve esneklik göster. Oyunlar inşa etme yolunda mola vereceğiz, 2D ve 3DEndering motorlar ve vaka çalışmasında gömülü donanımla çalışın, temel boyutsal oluşturma yazılımı ve sırasıyla silikon kauçukta dökülen elektronik titreşimli bir masaj örnekleri. Yol boyunca, yazılımımızı daha iyi güvence altına almak için zaten mevcut olan makine öğrenimi çözümlerini de kullanacağız. Süreci kolaylaştırmak ve güvence altına almak için web için mevcut stok araçları da kullanacağız. Bu kitap, bir web uygulaması oluşturma ve profesyonel bir bilgisayar ve gömülü mekanik sistemler ağı ile entegre etme başarınız için bir rehberdir ve genel olarak arka plan bilgisi veya önceki deneyim olmadan yazılım ve gömülü donanım oluşturmak için bir rehberdir. Bu kitap ne değil: Gerçekten bir web sitesine sahip olmak istiyorsanız, basit bir mağaza kurabilir ve ihtiyacınız olanı satabilir, bir blog yayınlayabilir, fotoğraf veya video yayınlayabilir veya tek bir kod satırı yazmadan başka türlü olabilir. Bu kitap bu değil. Bu kitap size daha kullanışlı, tam olarak nasıl yazılım oluşturacağınızı öğretecekDaha önce bulabileceğiniz herhangi bir yazılımdan özellikli, işlevsel ve güvenli, çünkü hala prototip olan en son yazılımı dağıttığından, eski şirketlerin faaliyet gösterdiği bir ölçekte çalıştırılması pahalı olabilir ve geriye doğru hitap etmez, kıvrımlı şirketler Gerçekten hiçbir şey yapmayan insanlar için para kazanın. Bu kitabı yakından takip ederseniz, kod yazmak, araştırma kodu yazmak, kendi uygulamalarınızı oluşturmak ve yaptığınız işten para kazanacaksınız. Bu kitaptan, erken aşamalarda bile para kazanacağım, çünkü insanların ihtiyaç duydukları ve okumak istedikleri bilgileri içeriyor ve uygulamalarımı satın aldıklarında veya kullandıklarında zaten satın alıyorlar. Bu kitap sizin için bir uygulama oluşturmayacak, ancak sizi doğru yönde gösterecek ve ihtiyacınız olan araçlarla ve web için yazılım oluşturmada kendi başarınızı kolaylaştıracak beceri ve ipuçları ile sizi silahlandıracak, her satırla geliyor. Örnek olarak yazmanız gereken kod, siz ve destekçileriniz, misafirleriniz, müşteriniz yazılıma bir araya getirilmeye hazırdır.Riends, aile, ziyaretçiler, yükleniciler ve internet insanları kullanmak ve desteklemek istiyor. Ne öğreneceksin: Bu kitap size yazılım, gerçekten işlevsel, kullanışlı yazılım, medya kaydı, yüz tanıma, makine okunabilir bölge barkod taraması gibi güvenlik özellikleri, video ve fotoğrafları doğrulamak, kaydetmek ve oluşturmak için Web API'leri nasıl oluşturacağınızı öğretecek ve Bluetooth gibi mesajları değiştirecek ve yakın alan (NFC) iletişimi. Bu kitap size ağa bağlı bir bilgisayarı nasıl kullanacağınızı, Debian Linux'a odaklanacağını, yazılımınızı yüklemeyi ve yedeklemek için BASH kodu nasıl oluşturulacağını öğretecektir, sorunsuz, otomatik bir esinti, Python kodunu dinamik mesajlar, stil sunmak için bir arka uç olarak nasıl oluşturulur Bootstrap ile CSS stillerini güzel bir şekilde kullanmak, ağa bağlı cihazlar aracılığıyla kullanıcı girişleri ve etkileşimi etkinleştirin, doğrulama veya diğerleri için metin mesajları gibi güvenlik özellikleri sunmak için diğer web siteleriyle etkileşimli ortam ve ağ oluşturun amaçlar, kimlik taraması, görüntü ve video denetimi, verilerYazılımınızı güvende tutmak, ödeme işleme, kripto para ticareti, eşzamansız görevler ve daha fazlası. Piller, şarj cihazları, mikrodenetleyiciler, devreler, motorlar ve sensörlerle kendi Bluetooth cihazlarınızı nasıl oluşturacağınızı, lehim, tel ve 3D baskılı ve dökme malzemeler kullanarak nasıl oluşturacağınızı öğreneceksiniz. Katkı üretimi ve aracı ve kalıp yapımına uygulanan 3D tasarım prensiplerini göstereceğim, böylece kendi gömülü, donanım cihazlarınızı entegre piller, şarj cihazları, elektronik devreler ve fonksiyonel çıkışlarla üretebilirsiniz. ve bunları Bluetooth ve Web ile ağ. Özellikle, her ikisi de grafik arayüz veya komut satırı yardımcı programı olarak mevcut olan ve daha hızlı sonuçlar için bir web'e entegre edilebilen OpenSCAD'de programlanmış iki vaka çalışması, titreşimli bir masaj ve ev yapımı bir ateşli silahı inceleyeceğiz. Önceden bir deneyim olmadan bir web sitesini nasıl inşa edeceğinizi ve dağıtacağınızı öğreneceksiniz, işlevsel, güvenli, güzel, kullanışlı ve çoğuMortually Pratik. Bir siteyi güvenli ve daha pratik hale getirmek, web sitenizden video ve ses kaydettirmek, sesinizi bağışlamak, müzik yapın ve yararlı örnekler oluşturmak için ses modüle etmek ve gürültüyü nasıl kıracağınızı nasıl kullanacağınızı öğreneceksiniz. Sunmanız gereken tüm faydalı bilgileri paylaşmak ve daha da önemlisi insanları yazılımınıza ve işinize getirmek için doğrudan kendinize bağlanabileceğiniz mümkün olan en iyi web sitelerini oluşturmak için diğer web sitelerini kullanmak. Bu kitap, en yoğun olarak medya, güvenlik ve makine öğrenimine odaklanacak, bu da doğru kullanıcıları ele alarak ve yanlış olanları gerçekçi, pratik bir şekilde ayırarak web için yararlı yazılımlar oluşturmanıza yardımcı olacak en büyük üç bileşendir. Aynı zamanda otomatik ve sağlamken eller ve ilgi çekici. Bu kitap Unix, özellikle Debian (Ubuntu), Bash Shell, Python, HTML, CSS, JavaScript ve bir dizi yararlı yazılım paketini öğretir.N İsteklerin yanı sıra GIT ve FFMPEG gibi kullanışlı BASH yazılımı. Ayrıca, kripto para birimini otomatik olarak nasıl takas edeceğinizi ve kripto para biriminde veya normal banka kartlarından ödeme almayı öğretirken, ziyaretçilerinize bunu yapmayı seçerseniz gelirinizden bir pay ödeyecek. Reklamcılık yoluyla web sitenizden nasıl para kazanacağınızı, uygulamanızı arama motorlarına nasıl hazırlayacağınızı ve hızlı yapacağınızı, müşterilerinizin sizi bulmak için arayacakları için ilk sıralamada nasıl sıralanacağınızı öğreteceğim olabildiğince arama. Size yazılımınızı nasıl satacağınızı, reklamı yapacağınızı, hizmetlerinizi arayan müşterilere nasıl hitap edeceğinizi ve zaten var olan, ucuz ve iyi çalışan yollarla internette kendiniz için bir isim yapacağımı öğreteceğim. Size verilerinizi sizin için çalışan bulut bilgisayarlarına nasıl kaydedeceğinizi ve verilerinizi ucuz bir şekilde kaydedeceğinizi, kullanıcılarınızın istediklerini ve ne istediğinizi ve kullanıcılarınızı nasıl etkileşim kuracağınızı nasıl planlayacağınızı ve oluşturacağınızı öğreteceğim.Sitenizi, kullanıcılarınızı yalnızca size güvence altına alınan bir düğmenin arkasındaki web sitenize geri getirmek için bildirimler, e -posta, kısa mesajlar, telefon görüşmeleri ve daha fazla yolla telefonlarında bir dokunuş. Bu kitap, metnden fotoğraflara, videolara, sese (müşteriniz) iyi bir izlenim bırakarak ve kendinizi oluşturmak için yaptığınız herhangi bir şekilde satmanın pratikliğine büyük miktarlarda yayınlamanın ve dağıtmanın pratikliğine odaklanacaktır. Bir web sitesi, sadece sizin ve sizden temsil eden bir uygulama ve sizi, yazılımınızı ve şirketinizi mümkün olan en iyi şekilde iyi göstermesini sağlar. Ayrıca, kodlama ipuçlarından, makyaj ve fotoğrafçılık gibi pratik makyaj, modelleme ve oyunculuk ve daha fazlası, kendinizi ve şirketinizi mevcut tüm araçları kullanarak mümkün olan en iyi ışıkta tasvir etmek için önemli olacak birkaç ipucu ve püf noktası öğreneceksiniz. Size getirmek için sağlıklı bir platform dengesi boyunca ihtiyaç duyduğunuz kadar içerik dağıtırken sizeE gerektiğinden daha fazla çaba, iş veya para olmadan meyve vermek. Bu kitaba bir nedenden dolayı “pratik web tabanlı derin öğrenme ve örnek olarak örnek” olarak adlandırılır: özellikle web için, özellikle güvenliğe odaklanarak, pratik bir bakış açısından, hizmet veren çalışma kodu örnekleriyle ilgili olarak adlandırılır. Metinde özetlenen pratik amaçlar. Bu metnin öğrenme bileşeni aynı zamanda makine öğrenimini, bilgisayar vizyonunu, yüz tanıma, görüntü ve video denetimi, görüntü geliştirme, çözünürlük geliştirme, görüntü altyazısı ve diğer görevleri üstlenecek web için nasıl çalışacağımı göstereceğim kodu Görüntünün otantik, bilgisayar tarafından aktarılan bir görüntü veya optik bir kopya (bir görüntünün fotoğrafı veya basılı bir fotoğraf) gibi görüntülerden elde edilen tahmin metrikleri. Web güvenliği ve yazılım güvenliği söz konusu olduğunda makine öğrenimi çok önemlidir, çünkü başka türlü imkansız görevleri önceden şekillendirebilir. BilgisayarınızSizi bir şifre ile oturum açın, ancak yüzünüzle oturum açarsa kullanmak daha güvenli olabilir. Bir sunucu bilgisayarı bu güvenli hale getirebilirsiniz, normalde sizden bir kullanıcı adı ve şifre isteyecek ve sizi giriş yapabilirsiniz, belki de her yeni giriş veya yeni IP adresi için bir onay jetonu ile, ancak büyük ölçekli, kolay, kolay, kolay Kullanın, temelde güvenli ve güçlü bir yazılım, bu yeterli olabilir. Yazılımınızı bir e -posta hizmeti veya kısa mesaj hizmeti gibi başka birinin yazılımına çok yakından bağlamak, yazılımınızı veya herhangi birinin (kullandığınız herhangi bir sitenin) güvenli hale getirmek için yeterli değildir. Kusursuz bir şekilde güvenli olan yazılım oluşturan herkes, bunun ne anlama geldiğine dair bir fikre sahiptir. Yazılım doğal olarak güvensizdir, çünkü ona erişmek için kullandığımız cihazlar ve hesaplar her zaman elimizde değildir, yazılım için kötü niyetli olan herkesin elinde olabilirler ve bu nedenle yazılımın kendisi için bir risk oluşturabilir. Bu kitabın odak noktası. Ağa bağlı bir bilgisayar varsayılan olarakWeb sunucusu, sunucunun kendisinde çalışan açık erişimin yanı sıra açık erişim sağlayan açık erişim sağladığından, SSH veya SSH veya güvenli kabuk tuşu ile aranan uzun bir anahtar belirteci ile sabitlenir ve aksi takdirde en iyi bir web sunucusu ile güvence altına alınır. Web sunucusu, kullanıcının cihazının tartışmasız en güçlü kısmı olan kullanıcının web tarayıcısına erişebilir, çünkü kullanıcının ağa bağlı yazılımlara erişebileceği yerdir. Bu araç seti metin oluşturabilir, gördüğünüz web sayfalarını oluşturabilir ve ayrıca görüntüleri, ses ve videoyu (bir yüzün veya durum kimliğinin fotoğrafı gibi) kaydedebilir, Bluetooth radyo cihazlarına okuyabilir ve yazabilir ve yakın alanda okuyabilir ve yazabilir Transponder etiketleri, ucuz anahtar kartlar, fob'ler, çıkartmalar, halkalar ve hatta web sitesine bağlı bir web sunucusu tarafından oluşturulan ve doğrulanan verilerle okunabilen ve yazılabilen benzersiz seri numaralarına sahip yonga implantları. Emrinizdeki tüm araçları kullanarak, bu kitapla güvenli bir web sitesi oluşturmak için kendinizi bilgi ile donatacaksınız ve genel olarak birSizin için çalışan, teklifinizi yapan ve doğru görünen ve doğru hissettiren URE ağa bağlı bilgisayar sistemi. Nereden başlamalı: Bu kitaba veya herhangi bir bölümle başladığım bölümden geçmeye, özellikle de daha önce kodlama konusunda deneyiminiz varsa veya bu kitapta ayrıntılı olarak açıklayacağım yukarıda belirtilen araçlardan herhangi birinde atlayabilirsiniz. ve kullanım durumlarını ve pratik örneklerini belgelemek. Kodu yazma deneyiminiz yoksa, bu kitabın tümünü okumanızı ve özellikle bu kitabın sizin için doğru olduğundan emin olmak için önceki bölümleri okumanızı tavsiye ederim. Bu kitap sizin için doğru değilse, web gelişimini kendileri öğrenmek isteyebilecek bir arkadaşa veya akraba vermeyi düşünün ve hatta sizi geri ödemeyi ve sizi bir olarak başarısız olduğum boşlukları doldurmak için onlardan öğrenmeyi düşünün. öğretmen veya diğer öğretmenler benden önce yaptı. Nerede olacağınız, bu kitabın her kısmı yararlı bir hale getirmeyi planlıyorsanız yararlı olacaktır.PP ve en iyi uygulamaların son kullanıcı göz önünde bulundurularak oluşturulduğunu düşünün: müşterinizi tanıyın. Şimdi beni biliyorsun, bu kitabı biliyorsun ve başlamaya hazırsın. Başlamak için bir bilgisayar alın (bir kutu mağazasından, Amazon veya eski bir masaüstü işinden en ucuz dizüstü bilgisayar bile ve sizin için çalışan bir şekilde ayarlayın. Bu Kitap Nasıl Okunur: Vurgulanan metin, metnin çalıştırdığınız kodu yazacağınız bir komut istemine ait olduğunu belirtir. Komut istemi büyük ölçüde klavye odaklıdır ve çok az tıklama veya hiç tıklama, iş akışınızı hızlandırma ve sizin için işleri kolaylaştırır. Başlarken: Dalış yapalım. Yerel bir makinede kod oluşturarak başlayacağız ve İnternet'e bağlı bir web sitesi oluşturmadan başlayacağız. Bu başlamak daha güvenlidir, hiçbir maliyeti yoktur ve sizin için kolaydır. İşletim sisteminize bağlı olarak, bir bash kabuğuna girmek biraz farklı olacaktır. Mac OS için, en çok uyumluluğu elde edeceğiniz için bu noktada bir sanal makine kurmanızı öneririm.sanal makine. Virtualbox ve Paralells gibi çeşitli sağlayıcılar sizin için bir sanal makine çalıştırabilir, ancak hızlı, aerodinamik bir deneyim oluşturmak için önerilen yerel bir ortam kullanmayı tercih ediyorsanız, Ubuntu'yu doğrudan makineye yüklemek de mümkündür. Önerdiğim Linux veya Windows kullanıyorsanız, bir proje oluşturmak oldukça kolay olmalıdır. Terminalinizi açın, boyutlandırmayı uygun gördüğünüz gibi ayarlayın ve 2. adımı takip etmeye başlayın. Windows kullanıyorsanız, lütfen 1. adımı izleyin. 1. Adım: - Yalnızca Windows Kullanıcıları Windows'ta yönetici ve tür olarak komut istemini açın WSL – 2. Adım: - Buraya devam edin veya Windows kullanmıyorsanız 1. Adımı buraya atlayın Açık bir terminalde (işletim sisteminize bağlı olarak, Windows'ta Ubuntu, Mac veya Linux'ta Terminal veya benzer bir ad olarak adlandırılır) bir proje oluşturarak başlayın. Bunu bir dizin oluşturan MKDIR komutu ile yapıyoruz. Önerilen projenizi saklamak için bir dizin oluşturmanız gerekiyorsa,CD komutu dizine geçme komutu ve ve CD/PATH/TO/DIALTORY - Yol, hedef dizininizden önce gelen klasörlerdir (dosyalar), varsayılan yolunuz ~ veya/home/kullanıcı adıdır (kullanıcı adı kullanıcı adınızdır). Varsayılan dizin olarak değiştirmek için CD veya CD yazın ~ MKDIR Örneği - “Örnek” i dizinin adıyla değiştirin Şimdi projeniz için bir çalışma dizininiz var. Farklı bir makineye geçmeniz veya yazdığınız kodu dağıtmanız gerektiğinde bu dizinin kaydedilmesinin çok önemli olduğu için, web için hazır olacak şekilde, önümüzdeki birkaç adımda dizininizi yedeklemek için bir komut dosyası oluşturacağız. Ancak bir komut dosyası oluşturmak biraz kod alır ve kodun mümkün olduğunca yararlı olması için otomatikleştirilmesi gerekir. Öyleyse önce senaryolar oluşturmak için bir komut dosyası oluşturalım. Komut dosyasını oluşturarak ve yürütülebilir hale getirerek başlayalım. Bunun için sudo, chmod kullanacağız ve dokunacağız ve senaryoyu arayacağız
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Şimdi komut dosyasını oluşturduk, yürütülebilir hale getirdik ve düzenlemeye hazırız. Nano, tıklamadan metni düzenlemenize izin verecek bir metin düzenleyicisidir, bu da grafik kullanıcı arayüzünü kullanmaktan çok daha kolaydır. Nano ile bir dosya düzenlemek için Nano ve ardından dosyaya giden yolu kullanın. Bir komut dosyası oluşturan bir komut dosyası oluşturmak için, senaryomuzu ilk etapta yapmaya oldukça benzer. "Ascript" komut dosyasının adını bir bağımsız değişken parametresi olan 1 $ ile değiştirerek yukarıdaki ile aynı kodu kullanacağız. Bu, komut dosyasını basitçe sudo asscript Newscript yazarak çağırmamızı sağlar, bu noktada “Newscript” i komut dosyasının adıyla değiştirerek yeni bir komut dosyası oluşturabiliriz. Nano'daki kod:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
Nano'yu kapatmak için, kontrol tuşunu basılı tutabilir ve X'e basabiliriz, sonra D dosyayı kaydettiğimizi ve geri dönüşü vurduğumuzu belirtmek için Y. Şimdi bir komut dosyasını düzenlemek için bu üç komutu yazmak yerine, komut dosyasını tekrar düzenlemek için sudo ascript ascript yazabiliriz. Bu işe yarıyor! Ve herhangi bir yeni komut dosyası kabukta çağrılarak kolayca çalıştırılabilir. Şimdi çalışmamızı kaydedelim: Yeni komut dosyamızı kaydetmek için bir yedekleme komut dosyası yazalım ve ardından yedek komut dosyasını da yedeklerken proje dizinimizde yedekleyelim.
sudo ascript backup
Şimdi, Nano'da:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
Nerede/yol/to/dizin, MKDIR ile oluşturduğunuz projeye giden yoldur. Daha sonra, böyle tekrar yolları daha az kod olan bir döngü ve bir liste ile nasıl kopyalayacağımızı öğreneceğiz, ancak şimdilik basit tutalım ve birkaç satıra sahip olalım. Bu komut dosyasını çalıştırmak ve kodunuzu yedeklemek için dosyayı Nano'da Control+X, Y ile kaydedin ve geri döndürün ve aşağıdakileri kabuğunuza yazın
backup
Bu kitabı okurken ve kabukla takip ederken bir şifre için istenirse, lütfen kullanıcı şifrenizi doğru bir şekilde girin, komutu yeniden çalıştırmanız gerekmeden önce üç denemeniz olacaktır. İki kez bir şey çalıştırmanız gerekirse, komutları yeniden çalıştırmak ve düzenlemek için yukarı ve aşağı okları kullanabilirsiniz. Bir komut seçmek için aralıklı olarak yukarı ve aşağı bastırın, komutu sağa, sol okları ve silme tuşunun yanı sıra klavyeyi de düzenlemeden önce ve geri dönüşle çalıştırın.
Tebrikler! Çalışma dizininizde iki önemli kabuk komut dosyasını yedekleyen harika bir yedekleme komut dosyası oluşturmayı başardınız. Proje büyüdükçe işleri daha sonra hareket ettirebiliriz, ancak bu şimdilik çalışıyor. Bulutta yedeklemeye geçelim, bunun için GitHub'ı kullanacağız (yedekleme için çok sayıda başka git çözümü olsa da, hepsi aynı.) Git, düzenlemeleri yedeklemenizi sağlayan bir verisi kontrol yazılımıdır. Onları bir sunucuya yaparken yazılımAyrıca yazılımınızın tüm kopyalarını bir şifre veya anahtarın arkasına indirmenizi sağlar. Yazılımınızı kaydetmede etkilidir, özellikle de tek bir kod satırı başarısız olduğunda bazen kırılan Linux örneklerine geçerken, kodunuz yedekleme şansınız olmasa da kodunuz yedeklenemeyebilirken sizi kilitlemeye devam ettirirken otomatik olarak yukarı, ki biz kapsayacak.
Bu noktada zaten bir Ubuntu sanal makinesi kullanmıyorsanız, bu noktada bir Ubuntu sanal makinesini kullanmayı öneriyorum, çünkü çalışan bir web sitesi oluşturmak ve derin öğrenmeyi hazırlamak için gerekli tüm paketleri yüklerken hayatınızı kolaylaştıracaktır. Bilgisayarınızdaki işlemler. Kodu yakın gelecekte bir web sunucusuna taşıyacağız, ancak web sunucumuzun arkasında kimlik avına dirençli en az birkaç güvenlik katmanı olduğundan ve yapmak için bir dizi Linux paketini kullandığından emin olmak istiyoruz. Bu. Hala Mac OS kullanmak istiyorsanız, arayabilir ve yükleyebilirsiniz.E gerekli paketler çevrimiçi, ancak bu kitap veya seri kapsacağı her paket için alternatif olmayabilir.
Sudo ascript komutunu çalıştırarak yedek komut dosyası ile çalışmamızı yapmak için birkaç komut ekleyelim
# …
git add –all
git commit -m “backup”
git push -u origin master
Bir kez daha, kaydetmek için X'i kontrol edin.
Şimdi bu proje için bir kez yapılandırma yapmamız gerekiyor. Yakında bir GIT projesi olacağı için, bir GIT deposundan her konuşlandırdığımız her komutu yazmamız gerekmez, ancak dağıtım komut dosyalarımızı yazdığımızda bunu asacağız. Başlamak için, doğru dizinde olduğumuzdan ve Git deposunu başlattığımızdan ve SSH tuşlarını oluşturduğumuzdan emin olalım.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
SSH-Keygen'i yazdıktan sonra, yeni anahtar .ssh adlı bir klasör altında ana klasöre kaydedilmelidir. Buna id_rsa.pub denir. Bu anahtarı bulalım ve kopyalayalım. Görmek için
cd ~
cat .ssh/id_rsa.pub
Son komut tarafından döndürülen metni kopyalayın ve hesabınıza SSH tuşunu eklemeden önce GIT sağlayıcınızla (ideal olarak GitHub) bir hesap oluşturun. Bir hesabınız olduğunda, SSH tuşunuzu menüde erişim altında SSH ve GPG anahtarlarına eklemeden önce sağ üst menüyü tıklayın ve ayarları girin. Yeni bir depo oluşturmak için GitHub'a kaydetmeden ve geri dönmeden önce bir SSH tuşu ekleyin ve bir başlık vererek ekleyin. Bu, diğer git sağlayıcılar için benzerdir, belgelerini okumanız gerekecektir. Yeni depo yapılandırmasında, deponuza açıklayıcı bir ad verin ve yayınlamak isteyip istemediğinize karar verin ve henüz dahil edilmek üzere hiçbir dosyayı yapılandırdığınızdan emin olun. Depo oluşturulduktan sonra, klonu SSH URL ile kopyalayın ve aşağıdaki komuta yapıştırın.
git remote add git://… (your remote URL)
Şimdi CD ile deponuza geri dönebilirsiniz, buna aşina olacaksınız. Yedekleme komut dosyasını şimdi yedeklemeyle deneyin
Harika! Şimdi gerçekten kodlayabiliriz. Bash ve git üzerinde iyi bir kavrayışa sahip olduğumuza göre Django'yu yükleyelim. Django yazılımımızı otomatik olarak yedeklememize izin verecek, Bash bunu da yapabilir, ancak Django daha basit bir uygulamaya sahip olmalıdır (devre dışı bırakılabilir ve daha kolay yapılandırılabilir).
Ubuntu'ya yazılım yüklemek için Sudo Apt-Get komutunu kullanacağız. İlk olarak, zaten sahip olduğumuz yazılımı güncelleyelim ve yükseltelim. Bu, sudo apt-get güncellemesi ve sudo apt-get yükseltme -y ile yapılabilir. Ardından, Python'u ve sanal ortamımızı, kodumuzun evini, aşağıdaki komutla yükleyelim: sudo apt-get Instow Python-is-python3 python3-venv
Ubuntu örneğinde yazılım yüklemeleri açısından Django ile gitmek için ihtiyacınız olan tek şey budur. Windows ve Linux için bu oldukça basit olmalı, ancak Mac için sanal bir makine yüklemek isteyebilirsiniz veLinux, VirtualBox veya Paralells masaüstü gibi ücretsiz veya ücretli bir sanal ortam kullanarak ve bir Ubuntu ortamını kurmak için yukarıdaki adımları yeniden oluşturun. Ubuntu bu durumda kritiktir, çünkü web sitelerinin çalıştırdığı yazılımdır ve yukarıda belirtilen tüm yazılımlarla web sitelerini barındırmalarını sağlar.
Django'ya girelim.
Dizinimizde yine,
python -m venv venv # Kodun depolandığı sanal ortamı oluşturur
source venv/bin/activate # Sanal ortamı etkinleştirir
pip install Django
django-admin startproject mysite . # Mevcut dizinimde başladığım proje MySite.
Django bizi yeni başlıyor, çünkü Django web sunucusuna ev sahipliği yapıyor ve temel bir yerel web sitesini hazırlamak için ihtiyacımız olan her şeyi yapıyor. Artık Django'yu yüklediğimiz için, ihtiyacımız olan nasıl çalışmasını sağlamak için ayarları biraz düzenleyelim. İlk olarak, yeni bir uygulama oluşturalım
python manage.py startapp feed
İlk uygulamanın Feed denildiğini fark edeceksiniz. Uygulama istediğiniz her şey çağrılmalı ve yeni uygulamalar oluşturacağız, ancak her uygulamanın adı, uygulama kodda her referans alındığında tutarlı olmalıdır. Yeni bir uygulama eklemek için, her zaman settings.py'yi düzenleyeceğiz ve bu da AhsteProje, bundan sonra uygulama olarak adlandırılan uygulamanın oluşturulan diğer dizinde düzenleyeceğiz. Nano kullanma,
nano app/settings.py
Ayarlarda, yüklemeli_apps bulun ve [] 'i 3 satıra ayırın. Boş merkez hattında dört boşluk kullanarak 'besleme' ekleyin veya uygulamanızın adı. Settings.py'nin bu bölümü şöyle görünmelidir:
INSTALLED_APPS = [
'feed',
]
Unutmadan önce Django'nun çalıştığını test edelim. Python Manage.py Runserver 0.0.0.0:8000 komutunu kullanarak, sunucuyu çalıştırabilir ve daha sonra kodu http: // localhost: 8000 olarak çalıştıran bilgisayardaki bir web tarayıcısında gezebiliriz ve örnek bir web sayfası görün (çalışır!) Diğer komutlarla aynı olan Control C ile sunucudan çıkın.
Şimdi, bazı Python kodu yazmaya başlayalım. Django'nun hepsi tamamen kod tarafından işletilen üç ana bileşeni var. Bileşenlere model, görünüm ve şablon denir ve web sayfası kullanıcıya teslim edilmeden önce her biri sırasıyla daha yüksek ve daha düşük seviyededir.
Model, alım, sıralama ve oluşturma için veritabanında bilgileri depolayan koddur.
Görünüm, modelin nasıl oluşturulduğuna, manipüle edildiğine ve değiştirildiğine karar verir, hemen hemen her görünüm doğrudan bir model kullanacaktır.
Şablon, şablon dili olarak adlandırılan bazı ekstra çan ve ıslık ile HTML kodudur. Şablon, Python kodu ile doldurulduğu görünümle oluşturulur veGörünümden modeller ve bilgi (usuall dizeleri ve tamsayılar) gibi bağlam.
Django'nun başka bileşenleri de var, ancak bunlarla sınırlı değil:
Uygulamayı tartıştığımız gibi yapılandıran ayarlar.
Web uygulamasının belirli bölümlerine erişmek için kullanıcının izlediği kalıplar olan URL'ler.
Sunucuya gönderilen bilgilerin veritabanına ve kullanıcıya nasıl işlendiğini ve işlendiğini tanımlayan formlar. Bunlar, sunucu tarafında bilgilerin işlenmesinin temelidir ve bilgisayarın depolandığı her türlü bilgiyi kabul edebilir, özellikle metin dizeleri, sayıları ve doğru/yanlış boolean (genellikle onay kutuları).
HTML kodu ve şablon dili olan ve Python ve HTML arasındaki boşluğu köprüleyen şablonlar, yani Python bilgileri, herkesin erişebileceği ve Python Kodunu Web için erişilebilir hale getirebileceği ve yararlı hale getirebileceği HTML kodu olarak sunulabilir ve Uzak bir cihazda çeşitli amaçlar içinSunucunun yakınında olması.
Genellikle JavaScript olan statik dosyalar ve sunucunun hizmet verdiği ve şablonla bağlantılı olan kütüphaneleri.
Sunucunun hizmet verdiği veya harici olarak barındırılan veya işlenmeden önce sunucuya yazılı olarak yazılı olarak yazılı olarak yazılan ve barındırma için başka bir sunucuya (bir kova) gönderilen medya dosyaları.
Her görünümle aynı zamanda çalışan ve görünümde “dahil” olarak kabul edilen kod parçaları olan ara katman yazılımı.
Her bir görünümün bağlamını işleyen ve ekstra bağlam eklemek için kullanılan bağlam işlemcileri.
Görünüm oluşturulmadan önce kullanıcının veya talebin belirli gereksinimleri geçtiğini doğrulayan testler.
WebSocks'ın iletişimi nasıl ele aldığını ve iletişime nasıl yanıt verdiğini belirleyen tüketiciler.
Veritabanının grafik bir arayüz aracılığıyla uygulanabileceği Django yönetici sayfasında ayrıntılı olarak manipüle edilebilecek şekilde modelleri kaydetmek için kullanılan yönetici.
Django kodunun eşzamansız görevleri tanımlayan kereviz başlayabilirNing, hemen bir sonraki göreve veya kod satırına geçmeden önce.
Django'nun burada ayrıntılı olarak tartışacağımız birçok bileşeni olabilir. Django'yu daha işlevsel hale getirmenin, hızlı, aerodinamik iletişim kanalları, eşzamansız görevleri yerine getiren WebSocks ekleymenin ve Django'yu genişletmek için çok sayıda diğer yazılım parçasını eklemenin birçok yolu vardır, burada özellikle görünüm fonksiyonlarında, çoğunun çoğunun çoğunun kod yürütülür. Görünüm işlevleri anahtardır, çünkü genellikle belirli bir URL modeline veya sunucunun bir bölümüne özgü her kod parçasını bildirirler.
İlk olarak, görünüm işlevlerini keşfedelim. Görüntüle İşlevler, görünümde kullanılacak kodu gösteren ve normal işlev tanımları veya sınıfları kullanılarak tanımlanır. En basit görünümler, işlev tanımı DEF ile tanımlanır ve temel bir şablonla bir httpreponse döndürür. “Merhaba Dünya” metnini döndürmek için temel bir görünüm tanımlayarak başlayalım. Her eklediğinizde unutmayınDef gibi bir ifade, eğer, vb. Bunların her birinin yakında ne anlama geldiğine gireceğiz.
Sitemizin dizininden, nano kullanarak feed/views.py dosyasını düzenleyin ve aşağıdaki satırları ekleyin.
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Django'nun HTTPResponse, açılış ve kapanışla gösterilen bir metin dizesi ile yanıt verir '. İstek veya dize gibi bir işleve veya sınıfa her aktardığınızda parantez kullanmanız (, açma ve kapanış) kullanmanız gerekir.
Henüz görüşümüzü görmemiz gereken bu değil. Tabii ki, sunucuya görünümün tam olarak nerede olduğunu söylemedik, yine de görünümün oluşturulması gereken bir yolu tanımlamamız gerekiyor. Uygulama/urls.py'de temel bir yol tanımlayarak başlayalım ve daha sonra yol gruplarına gireceğiz.
APP/urls.py'de, yeni oluşturduğumuz görünümü içe aktardıktan sonra içe aktarma ifadelerinden sonra bir satır ekleyin.
from feed import views as feed_views
Şimdi görünüm modelini tanımlayalım. Görünüm kalıpları, sunucuda görünümün nerede olduğunu söyleyen yol bileşeni olan üç bileşene sahiptir (kullanıcının web sayfasına girmek için navigasyon çubuğuna yazdığı URL yolu), görünümün belirtildiği görünüm bileşeni ve bir Görünüm için dostça isim, bu nedenle bir şablonla çalışırken desenini almak kolaydır, özellikle başka bir görünüm için yer açmak veya daha mantıklı bir isim almak için gerekirse adı değiştirilebilir ve güncellenebilir. İşleri bu şekilde yapmak ve esnek olmak mantıklıdır, çünkü kod tabanınız değerli ve çalışması kolay olmak için esneklik ve doğaçlama gerektiren sürekli değişen bir ortam olacaktır. Görüşünüz nasıl görünecek, bunu urlpatterns = [uygulama/urls.py bölümüne ekleyebilirsiniz. Görünüm modeli, yukarıda açıklanan üç bileşen ve yol adı verilen bir işlevle tanımlanır. URL kalıplarınız bir listedir, bu nedenle her öğeyi her zaman sonlandırdığınızdan emin olunvirgülle, çünkü bu her birini ayırır. Her öğe, tıpkı settings.py'deki uygulama gibi, bir kez daha önünde dört boşluk olan yeni bir satıra geçmelidir. Web sunucusunun kök dizininde çalışan bir görünüm oluşturmak için görünümün ilk bileşenini boş bir dize işleviyle tanımlayacağız. Urls.py şimdi gibi görünmeli
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Bu, tamamen statik olan Django ile bir web sitesi oluşturmanın temelidir. Görüntüler, videolar, ses ve daha fazlası gibi bilgileri önbelleğe almaya başlayabileceğimiz daha dinamik bir web sitesi yapmak için, bir sonraki keşfedeceğimiz modelleri kullanmamız gerekecek. Şimdilik kodumuzu kontrol edelim ve sunucuyu çalıştıralım. Kodu hatalar için kontrol etmek için:
python manage.py check
Herhangi bir hata mesajı varsa, uygulamanızda yaptığınız değişiklikleri dikkatlice gözden geçirmeli ve yabancı veya eksik alan, ekstra karakter, kaplamayan bir ip, herhangi bir yazım hatası gibi düzeltilmesi gereken bir şey olup olmadığını görmelisiniz. silinmiş karakter veya başka bir şey. Hata mesajını okuyun (eğer varsa), bir satır numarasıyla birlikte oluşturduğunuz veya düzenlediğiniz bir dosyaya giden yolu görebilmelisiniz, bu nedenle bu dosyaya ve satıra bakın ve orada bulunan bir şeyi düzeltip düzeltemeyeceğinizi görün . Sorunu çözdüyseniz, yukarıdaki komutu tekrar çalıştırın. Yazılımınız çalışmaya hazır olduğunda ve çalıştığında, “Sistem kontrolü hiçbir sorun tanımlanmadı” çıktısını göreceksiniz. Şimdi gitmeye hazırsın. Sunucuyu şu şekilde çalıştırın:
python manage.py runserver 0.0.0.0:8000
Şimdi bir web tarayıcısı açın ve http: // localhost: 8000 adresine gidin. HTTPResponse işlevinin parantez ve alıntılarında döndürülen metni görmelisiniz. Bu sadece temel bir örnektir, ancak şimdiye kadar yaptıysanız, Linux, Bash, Python ve Django'nun nasıl çalıştığının temellerini anlıyorsunuz. Bazı veritabanı modellemelerini daha derinlemesine inceleyelim ve bir Python sınıfının bilgi depolamada gücünü keşfedelim. Ardından, sitemizi JavaScript ve makine öğrenimi kullanarak tam özellikli, esnek ve güvenli hale getirmeden önce HTML ve CSS üzerinde bir kavrama almaya başlayacağız.
Sınıflar, uygulamanızın Models.py'de saklanır. Nano'yu kullanarak App/Models.py'yi düzenleyin ve yeni bir sınıf ekleyin. Bir sınıf sınıf tanımı ile tanımlanır ve bu durumda modellerde miras aldığı bir üst sınıfın geçirilmesi. Sınıfın adı sınıf tanımından sonra gelir ve sınıf tanımı A: (kolon) kullanıldıktan sonra, sınıfa bağlı özellikler ve işlev tanımları aşağıda belirtilmeden önce. SınıfımızOnu almak ve benzersiz tutmak için kullanabileceğimiz bir kimliğe ihtiyaç duyar ve ayrıca bazı bilgileri saklamak için bir metin alanına ihtiyaç duyar. Daha sonra, modeli günlüğe kaydedilen bir kullanıcıya bağlamak için bir örnek olan bir zaman damgası, dosya, boolean (kodumuzun modelle ne yapacağına yardımcı olabilecek ve bunu sıralamak için kullanılabilen gerçek veya yanlış tanımlar) ekleyebiliriz. sunucuya ve daha fazlası. Kodu açalım
from django.db import models # Sınıfımızı tanımlamak için kullanılan ithalat ve özellikleri
class Post(models.Model): # Sınıfımızın kendisinin tanımı
id = models.AutoField(primary_key=True) # Modeli sorgulamamıza, benzersiz tutmamıza ve oluşturulduktan sonra modelle etkileşime girmemiz gerektiğinde kullanışlı olan otomatik olarak oluşturulmuş bir anahtar olan modelimizin kimliği.
text = models.TextField(default='') # Sınıfımızı, bu durumda, bazı metinleri, boş bir dizeyi temerrüde atan nitelendirir.
Dosyayı daha önce bitirmek için yaptığımız gibi kapatın ve kaydedin.
Uygulamamız geliştikçe bu sınıfı güncellediğimizde keşfedeceğimiz birçok alan ve seçenek var, ancak bu, bazı metinler göndermek için bir uygulama oluşturmanın temel gereksinimleridir. Ancak, bu model yalnız çalışmayacak. Daha önce açıklandığı gibi, bu modelin çalışması için özel bir görünüm ve özel URL modeline ihtiyacımız olacak ve ayrıca bir şablonla birlikte bir forma ihtiyacımız olacak. Önce formu keşfedelim.
Bir form tanımlamak için App/Forms.py'yi Nano ile düzenleyin ve aşağıdaki satırları ekleyin. İki ithalata, form sınıfımıza ve oluşturduğumuz model (feed.models.post), modele benzer bir sınıf tanımı ve formun etkileşime girdiği modeli tanımlayacak bir alt sınıfla birlikte bir alana ihtiyacımız olacak (feed.models.post) ile. Form ayrıca, istek, model veya başka türlü bilgilere göre ayarlayan bir başlatma işlevine de sahip olabilir, bunu daha sonra keşfedeceğiz.
Model formları çok kullanışlıdır çünkü bir model oluşturabilir veya bir modeli düzenleyebilirler,Bu yüzden onları her ikisi için de kullanacağız. Birini Forms.py'de tanımlayalım
from django import forms
from feed.models import Post
class PostForm(forms.ModelForm):
text = forms.CharField(widget=forms.Textarea)
class Meta:
model = Post
fields = ('text',)
Bu, bir form ve modelin neye benzediğinin temelleridir. Bu model formu, içerdiği metni değiştirerek bir yayını başlatmak veya düzenlemek için kullanılabilir. Bu formu bir sonraki manzaraya entegre etmeye bakacağız. İlk olarak, kodumuz çalıştığında modelle etkileşime girebilmesi için geçiş yapalım ve veritabanını taşıyalım. Bunu yapmak için aşağıdaki komutları çalıştırın:
python manage.py makemigrations
python manage.py migrate
Bunun yürütülmesi bir dakika sürecektir, ancak bir kez yapıldıktan sonra, modele görünümlerde, ara katman yazılımı veya yazılımdaki başka bir yerde erişmenize izin verecektir. Modelimizi görebileceğimiz bir görüş yaparak devam edelim. Feed/views.py'yi düzenleyin ve belirtildiği gibi aşağıdaki kodu ekleyin. # İşaretten sonra hiçbir şey eklemeniz gerekmez, bu kod kodla ilgili bilgileri belirtmek için kullanılan yorumlardır. Modelimizi görünümlerde içe aktararak ve bunu bir şablonda ekran için bir liste olarak oluşturabileceğimiz bir bağlama ekleyerek başlayacağız. Ardından, modele dayalı yeni bir nesne oluşturmak ve sunucuya göndermek için formu ve modeli bir düğme ile oluşturabileceğimiz bir şablon ekleyeceğiz. Bu karmaşık geliyor, bu yüzden adım adım atalım. Görünümü bitirmeden önce, sadece modeli oluşturan bir şablon oluşturalım ve kabukta yeni bir yazı oluşturarak görebildiğimizden emin olun. İşte bu görüş nasıl görünmelidir:
from feed.models import Post
from django.shortcuts import render, redirect
from django.urls import reverse
def feed(request):
posts = Post.objects.all() # Veritabanındaki tüm yayınları şimdiye kadar sorgulayın
return render(request, 'feed/feed.html', {
'posts': posts,
})
Bu dibe ulaşana kadar hepsi oldukça basit görünüyor. Render, işlev tarafından bir önceki örnek gibi bir HTTP yanıtı yerine döndürülen değer, her zaman ilk giriş olarak bir isteği alır, şimdi şablonda oluşturulabilen bir bağlamı (bu durumda veritabanındaki yayınlar) kabul eder. ve işlevde tanımlanan şablonu döndürür. Şablon, Python bilgisini HTML'ye dönüştüren Jinja2 adlı bir dilin biraz olduğu bir HTML belgesi olacak.
Şablon oluşturmaya başlamak için Feed'de iki dizin oluşturun.
mkdir feed/templates
mkdir feed/templates/feed
Ardından, yukarıdaki dizinde bir şablonu düzenleyin, besleme/şablonlar/besleme ve bu örnek için kodu ekleyin. Bu örnek için şablona bakalım.
<!doctype HTML>
<html>
<body>
<legend>Feed</legend>
<hr>
{% for post in posts %}
<p>{{ post.text }}</p>
{% endfor %}
</body>
</html>
Bu çok basit bir şablon. HTML etiketlerini açma ve kapatma, bir belge türü etiketi, efsane başlıklı bir gövde etiketi, ekran boyunca küçük bir satır ekleyen bir kırılma etiketi ve her gönderiyi yayınlar listesindeki her gönderiyi bir paragraf olarak oluşturan bir döngü için tanımlar. Şablon. Mesajları oluşturmak için gereken tek şey budur, ancak veritabanında henüz hiçbiri yoktur. Kabukla biraz yaratalım. Kabuğu manage.py ile çalıştırabiliriz
python manage.py shell
Şimdi yazı modelimizi içe aktaralım
from feed.models import Post
Ardından, bir ip içeren basit bir yazı oluşturacağız ve kabuktan çıkacağız. Dize, geçerli metin olduğu sürece herhangi bir şey olabilir.
Post.objects.create(text='hello world')
exit()
Son olarak, beslememize bir URL deseni eklememiz gerekecek. Feed uygulamamız birden fazla URL kullanacağından ve dosya boyutlarını küçük tutmak istediğimiz için, feed uygulamamızda şöyle görünen yerel bir urls.py oluşturalım:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
Ayrıca urls.py'yi temel uygulamada düzenlememiz gerekecek, ne dediğimiz her ne olursa olsun, bu oluşturduğumuz ilk dizinti. App/App.py'yi düzenleyin ve URL modellerine aşağıdakileri ekleyin
from django.urls import include # üstte
urlpatterns = [
# ... Önceki kod burada
path('feed/', include(('feed.urls'), namespace='feed')),
]
Şimdi, sunucuyu python manage.py runserver ile çalıştırdığımızda, veritabanındaki öğelerle birlikte model, görünüm ve şablonun yanı sıra URL desenimiz olduğu için oluşturduğumuz sayfayı göreceğiz. Ardından, oluşturduğumuz formu uygulayalım ve kendi yayınlarımızı oluşturmaya başlayalım. Ancak çok fazla kod yazmadan önce, daha önce yazdığımız komut dosyasını kullanarak bir yedekleme yapalım. Bu komut dosyasını kabukta çalıştırın, birkaç dakika bekleyin ve tüm kodlar GIT depomuza yedeklenecektir.
backup
Formun uygulanması nispeten basittir. Formumuzu içe aktaracağız, görünüme bir post isteği işleyicisi ekleyeceğiz ve aynı görünüme yönlendirmeden önce gönderiyi veritabanına kaydedeceğiz. Zaten içe aktardığımız yönlendirme işlevini ve görünüm modeli için URL'yi almak için Ters adını verilen başka bir işlevi kullanabiliriz. Bunu, dahil edilen desenin ad alanı beslenir ve görünüme de besleme olarak da adlandırıldığından 'feed: feed' dizesi ile sorgulayacağız.
from feed.forms import PostForm
def feed(request):
posts = Post.objects.all() # Veritabanındaki tüm yayınları şimdiye kadar sorgulayın
if request.method == 'POST': # Gönderi isteğini ele alalım
form = PostForm(request.POST) # Formun bir örneğini oluşturun ve verileri ona kaydedin
if form.is_valid(): # Formu doğrulayın
form.save() # Yeni Nesneyi Kaydet
return redirect(reverse('feed:feed')) # Bir GET isteği ile aynı URL'ye yönlendirin
return render(request, 'feed/feed.html', {
'form': PostForm(), # Oluşturabilmemiz için formu bağlama geçtiğinizden emin olun.
'posts': posts,
})
Şimdi, yeni formu hesaba katmak için şablonu güncellememiz gerekecek. Bunu kullanarak yapabiliriz
Satın almak | Kripto ile satın al
https://glamgirlx.com/tr/practical-web-based-deep
https://glamgirlx.com/tr/practical-web-based-deep -
Bu adresi kullanarak bana Bitcoin ile ilgili bir ipucu bırakın: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE
© Glam Girl X 2025