Научите како да направите сопствену апликацију за вести са Питхон-ом и Ткинтер библиотеком.
У овом брзом свету, бити у току са најновијим вестима је кључно. Направите своју сопствену апликацију за вести која вам преноси вести у различитим категоријама као што су забава, спорт и технологија доступне на било којој платформи на дохват руке.
Ову апликацију ћете развити користећи Ткинтер, стандардну ГУИ библиотеку за Питхон, и напајати је користећи Невс АПИ који добија чланке из више од 80.000 извора.
Инсталирајте ткинтер и захтевајте модуле
Ткинтер је вишеплатформски, једноставан модул прилагођен кориснику које можете користити за брзо креирање графичких корисничких интерфејса. Неке од апликације које можете да направите користећи Ткинтер укључују музички плејер, календар, алатка за конверзију тежине, игра мешања речи и тако даље.
За инсталацију ткинтер у вашем систему, покрените следећу команду у терминалу:
пип инсталл ткинтер
Тхе захтева модул олакшава прављење ХТТП захтева. Са овим, можете развити занимљиве апликације као што је провера статуса веб странице
, веб стругач, бот за праћење берзе и тестер перформанси веб странице. Да бисте инсталирали модул захтева, отворите терминал и покрените следећу команду:захтеви за инсталацију пип-а
Овде можете пронаћи цео изворни код апликације Невс користећи Питхон ГитХуб спремиште.
Генеришите кључ АПИ за вести
Започните увозом потребних библиотека. Пријавите се на Невс АПИ и генеришите свој АПИ кључ. Са бесплатним налогом програмера можете послати до 100 захтева дневно, што је одлично за тестирање и почетак. Сачувајте АПИ у променљивој коју ћете касније користити са основним УРЛ-ом да бисте преузели главне наслове према вашој земљи.
из ткинтер увоз *
из ткинтер увоз сандуче за поруке
увоз захтева
апиКеи = 'ИОУР_АПИ_КЕИ'
Дефинишите структуру апликације
Дефинишите класу, НевсАпп. Референца на апиКеи и тип променљиве глобално. Дефинишите објекат класе и иницијализујте основни прозор. Подесите димензије и наслов ваше апликације. Дефинишите две листе, користићете прву листу да дефинишете дугмад, а другу да дефинишете категорије вести које желите да прикажете у својој апликацији.
класаНевсАпп:
глобално апиКеи, тип
деф__у томе__(сам, корен):
селф.роот = корен
селф.роот.геометри('1000к650')
селф.роот.титле(„Апликација за вести“)
селф.невсЦатегориБуттон = []
селф.невсЦатегори = ["Генерал", "Забава", "спорт", "технологија"]
Дефинишите ознаку која служи као наслов ваше апликације. Проследите родитељски елемент у који желите да га поставите, текст који треба да прикаже, стил фонта, допуну и боју позадине коју треба да има. Користити паковање() опција попуњавања да би ознака заузела цео простор у правцу Кс.
Дефинишите а ЛабелФраме и поставите његов родитељски елемент заједно са бојом позадине коју треба да поседује. Користити место() функцију да га организује на одређеним координатама. Поред тога, пренесите ширину и висину оквира.
титле = Ознака (селф.роот, тект=„Апликација за вести“, фонт=("Тимес Нев Роман", 28, "одважан"), пади=2, бг='#фф007ф'.пацк (филл=Кс)
Ф1 = ЛабелФраме (селф.роот, бг='#фц6ц85')
Ф1.место (к=20, и=80, ширина=215, висина=210)
Дефинишите фор петљу која пролази кроз дужину невсЦат листа. Дефинишите дугме у оквиру дефинисаном раније. Проследите текст који треба да прикаже и претворите га у велика слова. Пренесите ширину, дубину ивице, стил фонта и боју позадине дугмади. Користити грид менаџер да распореди дугмад у колонском формату и дода допуну у Кс и И правцима.
Користите метод везивања да прикачите дугме и област вести. дефинише да је Невсареа функција ће се појавити када корисник кликне левим мишем. Додајте ове дугмад на невсЦатБуттон раније дефинисану листу.
за и ин опсег (лен (селф.невсЦатегори)):
б = Дугме (Ф1, текст=селф.невсЦатегори[и].уппер(), ширина=15, бд=3, фонт="ариал 14 болд", бг='#ц154ц1')
б.мрежа (ред=и, колона=0, падк=10, пади=5)
б.бинд('' , селф. Невсареа)
селф.невсЦатегориБуттон.аппенд (б)
Дефинишите оквир и проследите му родитељски елемент у који желите да га поставите и дубину границе коју треба да има. Организујте га по одређеним координатама и пренесите релативну висину и ширину. Дефинишите вертикалну траку за померање користећи оријентисати параметар и поставите га у овај оквир.
Дефинишите текстуални виџет. Проследите родитељски елемент као овај оквир заједно са стилом фонта и бојом позадине коју треба да поседује. Приликом постављања вредности исцроллцомманд као сцролл_и.сет добија тренутну позицију траке за померање при интеракцији корисника.
Ф2 = Оквир (селф.роот, бд=3)
Ф2.место (к=260, и=80, релвидтх=0.7, рехеигхт=0.8)
сцролл_и = трака за померање (Ф2, оријент=ВЕРТИКАЛНО)
селф.тктареа = Текст (Ф2, исцроллцомманд=сцролл_и.сет, фонт=("Тимес Нев Роман", 15, "одважан"), бг='#фц6ц85')
Користити паковање() опција пуњења да бисте поставили траку за померање на десну страну оквира и заузели цео простор у правцу И. Приликом подешавања командног параметра као тктареа.ивиев, кретање траке за померање се повезује са функцијама горе и доле. Дакле, када корисник ступи у интеракцију са траком за померање, прикази области текста се мењају у складу са тим.
Користити инсерт() метод да се од корисника тражи да изабере категорију и стави је на крај било ког постојећег текста. Користити паковање() метод да затражите од текстуалног виџета да заузме простор у правцу Кс и И и додели додатни простор ако је потребно помоћу проширити параметар.
сцролл_и.пацк (сиде=РИГХТ, филл=И)
сцролл_и.цонфиг (цомманд=селф.тктареа.ивиев)
селф.тктареа.инсерт (КРАЈ,"Изаберите категорију:")
селф.тктареа.пацк (филл=ОБА, екпанд=1)
Извуците вести из АПИ одговора
Дефинишите функцију, Невсареа() који прихвата тренутну инстанцу класе и догађај дугмета. Проследите категорију вести коју је корисник изабрао малим словима и сачувајте је. Проследите потребне параметре основном УРЛ-у и избришите сваки текст који је раније био присутан од првог индекса до последњег. Уметните линију за разграничење.
Дефинишите а покушати блокирајте и пошаљите ХТТП ГЕТ захтев серверу дефинисаном у основном УРЛ-у. Претворите одговор у ЈСОН формат и издвојите садржај који има кључ као чланци и сачувајте га у променљивој.
дефНевсареа(ја, догађај):
типе = евент.видгет.цгет('текст').ловер()
БАСЕ_УРЛ = ф' http://newsapi.org/v2/top-headlines? земља=у&категорији={тип}&апиКеи=' + апиКеи
селф.тктареа.делете("1.0", КРАЈ)
селф.тктареа.инсерт (КРАЈ, "\н")
покушати:
артицлес = (рекуестс.гет (БАСЕ_УРЛ).јсон())['чланци']
Ако број преузетих чланака није нула, покрените петљу и убаците чланке један по један у текстуални виџет. Прикажите наслов, а затим опис, садржај и УРЛ у посебним редовима. Уметните две линије за разграничење. Ако је број чланака нула, прикажите да ниједна вест није доступна за ту одређену категорију.
Ако покушај блока не успе, користите блок изузетака да прикажете одговарајућу поруку о грешци корисницима.
ако (чланци != 0):
за и ин опсег (лен (чланци)):
селф.тктареа.инсерт (КРАЈ, ф"{чланци[и]['титле']}\н")
селф.тктареа.инсерт (КРАЈ, ф"{чланци[и]['Опис']}\н")
селф.тктареа.инсерт (КРАЈ, ф"{чланци[и]['садржај']}\н")
селф.тктареа.инсерт (КРАЈ, ф"прочитај више...{чланци[и]['урл']}\н")
селф.тктареа.инсерт (КРАЈ, "\н")
селф.тктареа.инсерт (КРАЈ, "\н")
друго:
селф.тктареа.инсерт (КРАЈ, „Нема доступних вести“)
осим Изузетак као е:
мессагебок.сховеррор('ГРЕШКА', „Извините, наишли смо на неке проблеме. Проверите интернет везу и покушајте поново.")
Креирајте инстанцу класе и иницијализујте је. Тхе маинлооп() функција каже Питхон-у да покрене Ткинтер петљу догађаја и ослушкује догађаје док не затворите прозор.
корен = Тк()
обј = НевсАпп (роот)
роот.маинлооп()
Ставите сав код заједно и ваша апликација је спремна да прикаже вести према различитим категоријама.
Излаз апликације за вести
Када покренете програм, област за текст тражи да изаберете категорију. Када кликнете на било које дугме, приказује се вест са описом, садржајем и везом (ако постоји) за ту категорију одвојену са два реда.
Корисни АПИ-ји за ваш Питхон пројекат
АПИ-ји су супер згодни за интеграцију нових апликација са постојећим софтверским системима. Можете да користите ОпенВеатхерМап АПИ за преузимање информација о времену у реалном времену за било коју област и Гоогле Мапс АПИ да бисте уградили мапе у своју веб апликацију. Можете да аутоматизујете ГитХуб задатке преко ГитХуб АПИ-ја и користите Зоом АПИ за интеграцију видео конференција.
Такође можете да користите снагу ЦхатГПТ-а из сопствених апликација користећи ОпенАИ АПИ и креирате неке фасцинантне апликације које покреће вештачка интелигенција.