İnternette İstediğiniz Gibi Çevrimiçi Para Kazanma!

SEO için basitleştirilmiş eğitim: Python uygulamanız için kullanıcı arayüzü nasıl oluşturulur?

Şu yazıyı okuyorsunuz: Basitleştirilmiş SEO Eğitimi: Python Uygulamanız için Bir Kullanıcı Arayüzü Nasıl Oluşturulur

Python, SEO süreçlerini otomatikleştirmek için yaygın olarak kullanılan programlama dillerinden biridir.

JavaScript tabanlı bir çerçeve ile herhangi bir HTML, CSS veya kodlama bilgisi olmadan uygulamalarımıza ön uç oluşturmak için en iyi kütüphanelerden biri Streamlit paketidir.

Bu Streamlit eğitiminde, Streamlit uygulamanızı dağıtmak için Python ve Dockerfile ile nasıl güzel bir uygulama oluşturabileceğinizi araştıracağız.

Streamlit nedir?

Streamlit, bize herhangi bir ön uç geliştirme bilgisi olmadan güzel uygulamalar oluşturma gücü veren açık kaynaklı bir uygulama çerçevesidir (bir Python paketi).

Bu bizi herhangi bir ön uç çerçeveye veya HTML, CSS ve JavaScript kodlamasına dahil olmaktan kurtarır.

Ön ucunu geliştirmek için saf Python kullanıyor.

Streamlit kütüphanesi ne zaman faydalı olacak?

Öncelikle bir makinede düzenli olarak çalışan Python scriptlerini cron gibi bir iş planlayıcı ile kodluyorsanız Streamlit işinize yaramaz.

Ancak ekip üyelerinizle paylaşmak istediğiniz bir araç geliştiriyorsanız (örneğin anahtar kelime araştırma uygulaması) Streamlit’i kullanabilirsiniz.

Ayrıca, bir kullanıcı kimlik doğrulama yöntemine ihtiyacınız varsa Streamlit topluluğu bunu sizin için halledebilecek bir paket geliştirdi.

Kolaylaştırılmış Bir Uygulama Oluşturun: Başlarken

Google’ın genel API’sinden bir çekirdek anahtar kelime için otomatik tamamlama sorgularını alan basit bir uygulama oluşturalım.

Başlamadan önce makinenizde bir klasör oluşturun ve ona istediğiniz adı verin.

Ayrıca daha önce Python yüklediğinizi ve Python programlamanın temellerini bildiğinizi varsayacağım.

Tüm süreç için şu Python kütüphanelerini kullanmamız gerekiyor:

  • İstekler.
  • Kolaylaştırılmış.
  • Streamlit Kimlik Doğrulayıcı.
  • PyYAML.

Ek olarak bir Python standart kütüphanesini içe aktaracağız:

Eğitim kodunu şurada bulabilirsiniz: Streamlit Başlangıç ​​Şablonu Havuzu Github’da.

Streamlit paketini yükleme

Öncelikle python3 -m venv .env komutunu çalıştırarak sanal ortam oluşturmayı ve ardından pip3 install Streamlit komutunu çalıştırarak Streamlit paketini kurmayı tercih ediyorum.

Şimdi bir Python betiği oluşturun. Buna Streamlit_app.py adını verelim.

Çok fazla özelliğin olduğu karmaşık projelerde, farklı işlevlerim için ayrı Python script dosyalarına sahip olmayı ve bunları Streamlit_app.py’ye aktarmayı veya Flask veya FastAPI ile ayrı bir uygulama oluşturmayı tercih ediyorum.

Örneğin, bir anahtar kelime araştırma uygulamasında, Semrush’tan veri alan farklı işlevler için bir Python komut dosyası, Google’dan en iyi 10 veya 20 sonucu almak için bir komut dosyası, Google’ın otomatik tamamlamasını ve Google ile ilgili aramaları almak için bir komut dosyası vb. var. .

Google otomatik tamamlama sorgularını alın

İstekte bulunmak için İstekler paketini kullanmamız gerekir. Bu paketi almak için pip3 kurulum isteklerini çalıştırmalısınız.

Ek olarak, otomatik tamamlama API yanıtını ayrıştırmak için standart Python JSON kitaplığını içe aktarmamız gerekir.

Öncelikle istek yapmak için JSON standart kütüphanesini, request paketini, uygulamamızı build etmek için Streamlit’i import ediyoruz.

Daha sonra, Google otomatik tamamlama sorgularını dizelerin listesi olarak alacak bir işlev tanımladım.

Her şeyi basit tutmak için değiştirme işlevini iki kez kullandım, ancak normal ifadeleri kullanmak için re kitaplığını kullanabilirsiniz.

“””Google otomatik tamamlama sorgularını almak için Streamlit uygulaması “”” json içe aktarma isteklerini içe aktar st def google_autocomplete(anahtar kelime: str) -> list olarak kolaylaştırılmış içe aktar[str]: “””Bir çekirdek anahtar kelime için Google otomatik tamamlama sorgularını alın Args: anahtar kelime(str): Tohum anahtar kelime Döndürür: liste[str]: Otomatik tamamlama sorgularının listesi “”” google_autocomplete_api: str = “https://www.google.com/complete/search” google_autocomplete_params: dict = { “q”: anahtar kelime, “cp”: 8, “client ”: “ gws-wiz”, “xssi”: “t”, “hl”: “en-US” } yanıt = request.get(google_autocomplete_api, params=google_autocomplete_params) list_google_autocomplete_uncleaned: list[list] = json.loads((response.content).decode(“UTF-8”)[5:])[0]list_google_autocomplete_cleaned: liste[str] = [element[0].yer değiştirmek(‘‘, “).yer değiştirmek(‘list_google_autocomplete_uncleaned içindeki öğe için ‘, ”) list_google_autocomplete_cleaned değerini döndürür

Streamlit Uygulaması

Şu ana kadar Streamlit paketini kurduk ve Google otomatik tamamlama sorgularını alacak fonksiyonumuzu tanımladık. Şimdi asıl uygulamayı oluşturalım.

Streamlit uygulamasını görüntülemek için uygulamamızı local olarak çalıştırmak amacıyla terminalde runstreamlit_app.py komutu ile Streamlit’i çalıştırmamız gerekiyor. Bu komutu çalıştırdıktan sonra http://localhost:8501/ URL’sine giderek uygulamayı görebilirsiniz.

Evet, herhangi bir başlık vb. eklemediğimiz için boştur.

Yazarın ekran görüntüsü, Ekim 2022

Streamlit uygulamasına bir başlık ekleyin

Uygulamamıza bir başlık ekleyelim. Yukarıda gördüğünüz gibi Streamlit’i st olarak içe aktardım.

Artık st.title() fonksiyonunu çağırarak sayfaya başlık stilinde bir başlık ekleyebiliriz. Diyelim ki st.title (“Bu bir sonraki seviye SEO uygulamasıdır”).

Streamlit_app.py dosyanızı düzenleyip kaydettikten sonra sayfanın sağ üst köşesinde bir simge belireceğini ve sayfayı yenilemeden uygulama değişikliklerini görmek için tuşuna basmanız gerektiğini unutmayın.

Yazarın ekran görüntüsü, Ekim 2022

Artık uygulamamız aşağıdaki görseldeki gibi görünüyor. Sistem temanız karanlıksa uygulamanız da karanlık bir temaya sahiptir.

Yazarın ekran görüntüsü, Ekim 2022

Streamlit uygulamasına metin ekleme

Uygulamaya bir paragraf metin eklemek için st.write() işlevini kullanmanız gerekir. Örneğin, st.write(“Fikirlerinizi gerçeğe dönüştürün”).

Yazarın ekran görüntüsü, Ekim 2022

Streamlit uygulamasına bir metin girişi ekleyin

Google otomatik tamamlamada gördüğünüz gibi “anahtar kelime” adında bir argüman vardı.

Bu argüman kullanıcı girişinden gelmelidir.

Kullanıcı girişi almak için Streamlit’te bir metin giriş alanı kullanabiliriz. st.text_input() ile bir metin girişi ekleyebiliriz. Örneğin, st.text_input(“Başlangıçtaki anahtar kelimeniz nedir?”).

Ayrıca input anahtar kelimesini daha sonra fonksiyonumuza aktarmak için kullanabilmemiz için onu bir değişkene atamamız gerekir.

input_google_autocomplete_keyword: str = st.text_input(“İlk anahtar kelimeniz nedir?”)

Artık uygulamamızı bir input anahtar kelimesi olduğunda çalıştırmak istiyoruz. Burada değişkenin boş olup olmadığını kontrol etmek için if ifadesini kullanıyoruz.

if input_google_autocomplete_keyword: çıktı_list_google_autocomplete: liste[str] = google_autocomplete( input_google_autocomplete_keyword) Yazarın ekran görüntüsü, Ekim 2022

Streamlit uygulamasından indirin

Bu nedenle, kullanıcının ilk anahtar kelimesini almak için bir başlık, bir metin satırı ve bir giriş metni alanı ekledik.

Şimdi yazılı fonksiyonumuzu çalıştırmamız ve kullanıcının sonuçları bir metin dosyasında alması için bir indirme butonu oluşturmamız gerekiyor.

if çıktı_list_google_autocomplete: st.download_button(“Sonucu indir”, (“\n”).join(output_list_google_autocomplete)) Yazarın ekran görüntüsü, Ekim 2022

Basit uygulamamızı geliştirdik! Uygulama başlığını ve favicon’u değiştirelim.

Bundan önce Streamlit uygulaması bölümünün buraya kadar olan koduna bakalım.

Yazarın ekran görüntüsü, Ekim 2022

Uygulama Başlığını ve Favicon’u Değiştirin

Uygulamanın varsayılan başlığı Streamlit_app · Streamlit’tir ve favori uygulama simgesi Streamlit simgesidir.

Başlığı ve favicon’u değiştirmek için st.set_page_config() kullanmamız gerekir.

Ayrıca uygulama tasarımının geniş olmasını tercih ediyorum (bunu deneyebilirsiniz).

st.set_page_config( page_title=”Oh My App!”, page_icon=”😎”, order=”wide”) Yazarın ekran görüntüsü, Ekim 2022

Varsayılan uygulama temasını ayarlayın

Uygulama teması kullanıcının sistem ayarlarına dayanmaktadır, ancak kişisel olarak çoğu zaman ışık temasının daha iyi kontrasta sahip olduğunu görüyorum ve ekibimin zamanlarını uygulama temasını nasıl değiştireceklerini bulmaya harcamasını istemiyorum. uygulama.

Streamlit uygulaması için varsayılan bir tema ayarlamak için önce bir klasör oluşturmalı ve onu .streamlit olarak adlandırmalısınız. Bu klasörün içinde bir dosya oluşturun ve onu config.toml olarak adlandırın.

Uygulamanızın varsayılan temasını yapılandırmak için config.toml dosyasına aşağıdaki satırları eklemeniz gerekir.

[theme]

base = “light” Yazarın ekran görüntüsü, Ekim 2022

Streamlit’te kullanıcı kimlik doğrulaması

Uygulamanızı dağıttıktan sonra birisinin uygulamanın URL’sini bulup ona eriştiğini düşünün.

Uygulamanızı korumak için, her gün kullandığımız çoğu SASS gibi, kullanıcıları uygulamayı kullanmadan önce yetkilendirmeniz gerekir.

Streamlit uygulaması için Streamlit-Authenticator paketini kullanabiliriz. Yüklemek için uygulama klasörünüzde bulunan terminale pip3 installstreamlit-authenticator komutunu yazın ve paketi uygulamanıza aktarın.

okumanızı tavsiye ederim Streamlit Kimlik Doğrulama Paketi Dokümantasyonu olup biteni daha iyi anlamak için.

Streamlit_authenticator’ı stauth olarak içe aktar

Şimdi kullanıcılarımızın kimlik bilgilerini eklemek için bir config.yaml dosyası oluşturun.

kimlik bilgileri: kullanıcı adları: ilkKullanıcı: e-posta: ilkkullanıcı@gmail.com adı: İlk kullanıcı adı şifresi: 12345 # Şifrelenmiş şifreyle değiştirilmelidir ikinciKullanıcı: e-posta: ikincikullanıcı@gmail.com adı: İkinci kullanıcı adı şifresi: 111213 # Değiştirilmelidir şifrelenmiş şifre çereziyle: expiration_days: 30 anahtar: some_signature_key adı: some_preauthorized_cookie_name: e-postalar: – my@gmail.com

Paket dokümanında da görebileceğiniz gibi artık Hasher modülleri ile şifreleri şifrelememiz gerekiyor. Bir IPython açmayı ve aşağıdaki kod satırını çalıştırmayı tercih ederim.

hash_passwords = stauth.Hasher([‘12345’, ‘111213’]).tetiklemek()

Oturum açma widget’ı oluşturma

Şimdi kullanıcıların kullanıcı adlarını, şifrelerini girip uygulamaya giriş yapabilecekleri bir giriş widget’ı oluşturmamız gerekiyor.

Öncelikle pip3 install pyyaml ​​komutu ile PyYAML paketini kurup import yaml ile import etmeniz gerekiyor.

Daha sonra bir kimlik doğrulama nesnesi oluşturun ve oturum açma modülünü temsil edin.

dosya olarak open(“./config.yaml”) ile: config = yaml.load(file, Loader=yaml.SafeLoader) kimlik doğrulayıcı = stauth.Authenticate(config[“credentials”]ayar[“cookie”][“name”]ayar[“cookie”][“key”]ayar[“cookie”][“expiry_days”]ayar[“preauthorized”]) ad, kimlik doğrulama_durumu, kullanıcı adı = Authenticator.login(“Login”, “main”) Yazarın ekran görüntüsü, Ekim 2022

Başarılı bir şekilde oturum açan kullanıcılara uygulamayı gösterin

Artık başarılı bir şekilde oturum açan kullanıcılarımız için uygulamayı görüntülemek amacıyla Authentication_status değişkenini kullanabiliriz.

if Authentication_status: Authenticator.logout(‘Oturumu Kapat’, ‘ana’) # UYGULAMA KODUMUZ BURAYA GELİYOR elif Authentication_status == False: st.error(‘Kullanıcı adı/şifre hatalı’) elif Authentication_status == Yok: st.warning (‘ Lütfen kullanıcı adınızı ve şifrenizi giriniz’)

Streamlit uygulamasını Docker ile dağıtın

Artık uygulamamızı geliştirmenin son adımındayız.

Uygulamanızı dağıtmak için AWS, Google Cloud, Azure, Heroku, DigitalOcean vb. farklı hizmetleri kullanabilirsiniz.

Dockerfile’dan önce require.txt dosyasını oluşturalım. Bunun için pip3 frozen >Requires.txt komutunu kullanabiliriz.

Optimize edilmiş Docker dosyası

Uygulamamızı dağıtmak için Python 3.9.10 kullanıyorum.

Python’DAN:3.9.10 WORKDIR /app COPY . . pip3 kurulum -r gereksinimleri.txt CMD’yi ÇALIŞTIRIN [“streamlit”, “run”, “streamlit_app.py”]Açığa Çıkarma 8501

Dürüm

Bu eğitimde saf Python ile nasıl harika bir kullanıcı arayüzü oluşturabileceğimizi ve bunu Docker ile nasıl uygulayabileceğimizi gördük.

Streamlit’in farklı widget’ları hakkında daha fazla bilgi edinmek için iyi belgelenmiş widget’lara göz atın. API Referansı.

Daha fazla kaynak: