Mai amfani da yanar gizo mai zurfi koyo da tsaro ta hanyar misali Na uku bugu Harper 3 ga Yuli, 2024 An sabunta / Canza Yuni 325
Bayanan baya:
Ayyukan tsaro a cikin software na ginin don yanar gizo muhimmin bangare ne na kowane shirin mai tasowa da kisa yayin da Injiniya yake dogaro, tsayayye, da amfani ga dalilai masu amfani. Aikin Dom Mai amfani da ƙarshen yana neman kashe lokaci ko samun wani abu akan Intanet, yawanci akan na'urar wayar hannu ta tabawa. Mafi yawan mutane ba za su san inda za su fara ba lokacin da suke son gina gidan yanar gizo masu tsada don yin amfani da wasu abubuwa kaɗan waɗanda mutane ke so su yi amfani da su a cikin sauƙi na amfani kuma sassauci. Idan kana da 'yan mintoci kaɗan don karantawa ta wannan littafin kuma ka koyi abin da nake so in koya maka, ko ma ka motsa software ɗinka ka kuma rubuta bukatunka na masu sauraron sauro.
Akai na: Ni mai ingantawa software ne tare da kewayon gogewa a cikin C / c ++, Java, Python, HTML, CSS da Javascript. Na gina shafukan yanar gizo suna so suyi amfani, suna son ziyartar, har ma da samun kamu don yin karatu, kuma mafi mahimmanci, na sayar da software. Idan kana da ra'ayin game da yadda kake son shafin yanar gizon da yake da shi, zan iya haduwa da youtube na gaba, Google, ko ma app-tsaro na fasaha kawai zaka iya samun dama. Maimakon ƙoƙarin sayar muku da lokacina, Ina ƙoƙarin siyan naku: Ina so in tattauna ku cikin gina software mai zaman kanta, kuma ku koyar da aikin da kuke buƙata a cikin kowane filin da kuke so. Bari in bayyana, a bayyane, ilimi na ba ku zai zama na yau da kullun. Kuna iya zuwa makaranta kuma ku koyi wannan duka tare da ainihin ilimin, ko ma karanta ayyukanku, kuma ku ɗauki babban aikinku, amma ba zan sa ku zama masu aiki ba. Ni ba farfesa ba ne, zaku iya tuna ni kamar aboki wanda yake so ya jagorance ku game da aiki wanda aka fitar da shi ta hanyar nasara. Kuma bana sayar muku da nasara ko dai, zaku buƙaci saya da lokacinku. Koyo zuwa lambar yana da tsayayyen koyo kuma ba shi da sauƙi, ko ma ya kamata ya zama. Kuna buƙatar yin aiki tuƙuru kamar yadda kuka iya iya gwadawa kuma yana ci gaba da gwadawa kuma ya sake gwadawa ko da kuka yi takaici don koyo da gina kanku. Wannan yana cikin yanayin lambar kanta. Lambar tana gudana ta hanyar comper wanda aka tsara don ba da saƙon kuskuren mai gabatarwa, kuma waɗannan za su koya muku yadda za a shiga injin bincikenku da karatun misalai. Kuma dole ne in faɗi, ba ku buƙatar zama mai matukar arziki sosai, mai wayo, nasara, ko ma dalla-dalla orewa ko shirya don gina app. Kwamfutar tana kula da wannan kungiyar a gare ku. Kawai kawai kuna buƙatar haƙuri ta hanyar gwaji da kuskure, kula da mai da hankali kuma kuyi aiki tuƙuru da abin da kuke yi.
Ni waye: Na lura cewa sashin ƙarshe ya kasance mafi mahimmanci game da koyo kuma ɗaukar hanyoyi daga wannan littafin. Wanene ni daidai? Wannan tambaya ce mai rikitarwa. Ba ni sananne a kaina, kamar yadda nake fama da yanayin likita wanda zai iya sa ya zama mai wahala ko kuma asalin kalubale da ke faruwa da wahala idan ya zo don gabatar da kaina. A takaice, idan kana karanta wannan littafin, ka kawo shi gida saboda kun yi amfani da shi da amfani, ko ma idan ka karanta cewa ka yi nasara a cikin duk abin da kuke so ka yi nasara a duk abin da kuke so. Ni injiniya ne da kaina, mai haɓaka software, kuma dalibi, kuma ina roƙon littafin neman software da ke son yin amfani da shi a cikin aiki, mai amfani, da kuma yin aiki tare da samun nasarar kasuwanci. Mafi yawa, wannan shine abin da na yi: Na gina apps don taimakawa kaina da sauran mutane sun yi nasara. Ni marubuci ne kuma, ko da yake wannan farkon littafina na ne wanda na yi niyyar kammalawa don sanya fayil na tare a cikin takaddar mai amfani, kuma ni mai zane ne kuma. Zan yarda da wannan a gare ku, ni ne wani bakon mutum. Ba kamala ba ne, na yi gudu da dokar ko da yake jagorantar ni in bar kwalejoji da jami'o'i kuma su bar jihohi don yin suna don samun sunan don ƙarin nasara. Ni mace ce ta haihu, Ina sa kayan shafa, su ɗauki riguna, suna sa riguna, da sauran riguna, na kuma lura da kaina a matsayin mace. Ina da matsala tare da sauran mutane a baya wanda ke haifar da gwagwarmaya tare da rubutu da kuma gina gidan yanar gizo a hannunka baan lokaci: kuna buƙatar wannan. Kuna so ku karanta da rubuta lambar da take daidai da nawa kuma tana aiki kamar nawa, domin idan za ku iya samun damar siyan wannan abin da kuke buƙata don yin nasara a rayuwar ku. Ina da wasu batutuwa tare da iyali girma, yanayin kiwon lafiya, likitoci, da doka ta nuna gwagwarmayar da mata da kuma yanayin mace a cikin rarrabuwa. Koyaya, wannan littafin wani abu ne da nake da matukar damuwa da, ɗana, fayil na, da rayuwata, kuma na yi godiya a kan lokacin da kuka ɗauki rubutun a hankali don koya daga wurina. Da fatan za a kula da ni ba cikakke ba ne, mai bita, da sabon bugu, kuma kuna buƙatar tunani tare da kwakwalwar ku ta hanyar samun nasara tare da rubutun. Hakanan, fahimtar cewa Ina nufin da kyau a gare ku ko da kuna fuskantar ƙalubalen lokacin rubutu. Yi tunani game da shi kamar haka: Lokacin da zaku iya yin hayar tsarin kwamfuta don yin duk abin da kuka gamsu da shi, ku kuma fahimta, za ku iya fuskantar matsaloli tare da bayanin da kuke shigar da shi kuma. Ina gaya muku wannan saboda na hadu da matsaloli iri ɗaya. Yi amfani da wannan littafin a haɗarinku, yi aiki tare da al'ummominku da al'ummominku da ke faruwa a kan hanyar da ba ta dace ba, kuma me yasa na yi nasara a cikin hanyar da ba ta dace ba. Aiki, intanet. Wataƙila ba ku saba da wanda ni da 'yan kalmomi ba, amma ina ƙarfafa ku ku karanta kuma mu fahimce ni yayin gina ayyukanku don kammala aikinku. Babu aikin gida tare da wannan littafin, matuƙar furofesoshin ku ko malamai ba sa sanya ku kowane irin aiki na ayyuka da kanka kamar yadda ka karantawa yadda ka koya. Aikina na Capstone shine tushen mafi yawan abin da zaku karanta a cikin wannan littafin, kamar yadda ya kasance yana nuna alamar hanya, da kuma ra'ayoyi da nasihu wanda ya taimaka maka, a yanar gizo, na tallata maka, ko a cikin labarai.
Abin da wannan littafin ne: Wannan littafin koyawa ne ta misali. Kuna iya samun lambar a nan, Umarnin yadda ake koyon lambar, don haka matattarar ku, da kuma jaraba, kuyi amfani da kai, da kuma imporing ayoyin ku, da kuma yadda ake nuna kanka, da kuma yadda ake nuna ka Kamar yadda software da kuka gina a cikin mafi kyawun haske don kasancewa mafi kyau sosai kamar yadda zai yiwu ga masu amfani da ƙarshenku, baƙi na gidan yanar gizonku. A cikin wannan littafin, zan nuna misalai da yawa na ƙirar software tare da mai da hankali kan yanar gizo kamar yadda kuma tsaro. Zamu fara kwarewar ilmantarwa ta gina ainihin aikin ta amfani da harsashi Unix, tare da kayan aikin ajiya. Bayan haka, zamuyi nazarin shafin yanar gizo na yanar gizo tare da hotuna da fasalin bidiyo da amfani da wadannan fasali don amfani da Softulation na kyauta (PAM). Daga nan zamu sake dubawa da aiki, bincika gyaran bidiyo, gudummawar muryar, bincika sanannen halaye, a tsakanin sauran dabaru. A hanya za mu bincika APIs wanda zai taimaka mana mu sanya software ɗinmu mafi amfani kuma amintacce kuma zaɓuɓɓukan biya. Along the way, we will explore physical security and militant tools such as firearms and munitions design and manufacturing including barrel and repeater design, turret and drone design, and other principals we will integrate with our software on the existing network in order to protect our software and demonstrate self defense and resillience. Zamuyi hutu a hanya don gina wasanni, 2D 2D da 3D na injuna, da kuma aiki tare da kayan aikin bincike na asali na ma'ana. A hanya, za mu kuma daukar mafita hanyoyin koyon inji riga an samu domin mafi kyau amintaccen software. Hakanan zamuyi amfani da kayan aikin hannu don yanar gizo domin jera jadawalin kuma ya amintar da tsari. Wannan littafin jagora ne ga nasarar ku a cikin gina aikace-aikacen yanar gizo kuma haɗa shi da hanyar sadarwa ta kwamfuta, kuma kayan aikin injin ɗin, kuma kayan aikin da ba tare da ilimin baya ko ƙwarewar da ta gabata ba.
Abin da wannan littafin ba: Idan da gaske kuna son samun gidan yanar gizo, zaku iya saita shago da siyar da abin da kuke buƙata, post wani blog, post hotuna ko bidiyo, ko kuma in ba tare da taɓa rubuta layin lamba ɗaya ba. Wannan littafin ba haka bane. Wannan littafin zai koya muku yadda ake gina software wanda yafi amfani, kamfanonin da ba za a iya samu ba, kuma ba ya da tsada ga kowane irin software waɗanda ba su da komai. Idan kun bi wannan littafin a hankali, zaku so rubuta lamba, lambar bincike, gina kayan aikinku, kuma za ku sami kuɗi daga abin da kuke yi. Zan samu kudi daga wannan littafin, har ma a farkon matakai, saboda yana dauke da mutane bukatar da kuma son karantawa, kuma sun riga sun saya ko amfani da kayan aikina. Wannan littafin ba zai gina muku app ba, amma zai nuna maka a kan hanyar da ka dace da magoya bayanka, da baƙi, abokan ciniki, da kuma mutanen Intanet, da kuma mutanen yanar gizo suna so suyi amfani da su.
Abin da zaku koya: Wannan littafin zai koya muku yadda ake yin gini da sayar da kayan aiki, da gaske, da kuma kayan aikin watsa labarai kamar yanar gizo da kuma kusa da filin (NFC) sadarwa. Wannan littafin zai koya muku yadda ake amfani da kwamfutar da aka daidaita, iska mai amfani da kayan aiki, yana ba da damar shiga cikin kayan aiki, yana ba da damar shiga cikin kayan aiki tare da hanyar sadarwa don bayar da fasalin tsaro kamar rubutu Saƙonni don tabbatarwa ko wasu dalilai, ID na ID, hoto da daidaitawa, microtranansctions na yau da kullun, ayyuka na biyan kuɗi, da ƙari. Za ku koyi yadda ake gina na'urorin Bluetooth, tare da batura, microrocton, Motors da na'urori masu auna na'urori, da ke amfani da kayan aiki, waya da 3d da aka buga da kayan siyarwa. Zan nuna shugabannin adreshin 3D amfani da masana'antu mai ƙara da kayan aiki kuma zan mutu, don haka kuna iya kera batura da aka haɗa, caja, da'irar lantarki, da abubuwan lantarki, da abubuwan lantarki. kuma cibiyar sadarwa da Bluetooth da yanar gizo. Musamman, zamuyi nazarin karatun harka guda biyu, mai ɗorewa mai ɗorewa, wanda aka tsara shi azaman hanyar zane-zane, wanda ke akwai shi azaman hanyar yanar gizo don sakamakon saurin sauri. Za ku koyi yadda ake gina da tura hannu kan yanar gizo daga ƙasa sama da wani kwarewa, sanya shi aiki, amintacce, mai kyau sosai. Za ku koyi yadda ake amfani da ilimin injiniya da hangen nesa na kwamfuta don yin musayar yanar gizo ta hanyar ba da amfani ga software ɗinku da kasuwancinku. Wannan littafin zai iya mai da hankali mafi yawan gaske akan Media, tsaro da kuma ilmantarwa guda uku waɗanda zasu taimaka wajen gina masu amfani da amfani kuma a cikin hanyar da take kaiwa da kuma yin aiki da kai da kuma haushi, kuma mai tawali'u. Wannan littafin yana koya wa Unix, musamman Deian (UBUNTU), Bash Hard, Python, HTML software kamar git da ffmig. Zan kuma koyar da ku yadda za a kasuwanci cryptocurreny ta atomatik, kuma ɗauki biyan kuɗi a cikin katunan kuɗi na yau da kullun ko kuma koda biyan ku baƙi idan kun zaɓi yin hakan. Zan koya muku yadda ake samun kuɗi daga shafin yanar gizonku ta hanyar tallacen ku kuma, yadda za a nemi app ɗin bincike da kuma sanya shi a cikin binciken da yawa na gama gari. I will teach you how to sell your software, advertise it, appeal to clients looking for your services, and make a name for yourself on the internet through avenues that already exist, are inexpensive, and work well. Zan koya muku yadda ake adana bayanan ku akan kwamfutocin gajimare waɗanda ke aiki a cikin wayoyinku da abin da kuke so, da kuma yadda za ku iya gina rukunin yanar gizonku da ke bayan kundin danna maɓallin keɓaɓɓen maɓallin. Wannan littafin zai mai da hankali kan amfani da bugu da kuma rarraba kafofin watsa labarai a cikin manyan masu amfani, da kuma sahihiyar ra'ayi a kan masu amfani da kai, kuma ya sanya ku, software ɗinku da kamfaninku suna da kyau a hanya mafi kyau. You will also learn a few tips and tricks from me, from coding tips, practical vanity like makeup and photography, modeling and acting, and more, which will be important for portraying yourself and your company in the best possible light using all the tools available to you while distributing as much content as you need across a healthy balance of platforms to bring your software to fruition with no more effort, work, or money than is necessary. Wannan littafin ana kiranta "mai amfaniTsarin yanar gizo mai zurfi na ilimi da tsaro ta hanyar misali "saboda dalili na wannan rubutun ma yana nuna muku yadda ake gudanar da shi, da misalai da ke amfani da hangen nesa, hoto da matsakaici na kwamfuta, hoto da matsakaici na bidiyo, hoto da matsakaici na bidiyo, hoto da matsakaici na bidiyo, hoto da matsakaici na bidiyo, hoto da kuma daidaitawa, hoto haɓaka, haɓakar haɓakawa, ƙudurin hoto, da sauran ɗawainan awo, hoto mai canzawa yana da mahimmanci idan ba zai yiwu ba. Yana shigar da ku tare da fuskar ku. Zaka iya sanya komputa na uwar garke da kuma sabis ɗin imel ko sabon software, bai isa ba don tabbatar da software ɗin ku na yau da kullun, ko kuma wani (Duk wani rukunin yanar gizo da kuke amfani). Duk wanda ya gina software wanda yake kwaikwayon amintacce yana da ma'anar abin da wannan ya nuna. Software yana da matsala saboda na'urorin da asusun da muke amfani dasu don samun damar ba koyaushe suke ba da izinin software da kuma sabili da haka na iya haifar da haɗari ga software da kanta. Wannan wani abu ne na mayar da hankali ga wannan littafin. Kwamfutar da aka haɗa ita ce ta hanyar haɗin kai tare da alamar alama, wanda ake kira da SSH ko SSH ko amintaccen kayan aikin gidan yanar gizo suna ba da izinin buɗe hanyoyin da kansa. Sabar gidan yanar gizon yana da damar amfani da mai binciken gidan mai amfani, wanda shine ma'anar mafi ƙarfin na'urar mai amfani, saboda wurin da mai amfani yake iya amfani da software ɗin yanar gizo. Wannan kayan aikin zai iya yin rubutu, shafin yanar gizon da ka gani, kuma yana iya karatu da rubutu zuwa ga bayanan da aka kirkira da kuma rubuce-rubuce na musamman da kuma rubuce-rubuce na musamman da kuma rubuce-rubuce na yanar gizo. Yin amfani da duk kayan aikin a wurinka, tare da wannan littafin zaku ba da kanka tare da ilimin don gina gidan yanar gizo mai tsaro wanda ke aiki a kanku, ya yi muku hidima, kuma yana da kyan gani
Inda za a fara: Maraba da zuwa tsallake sashe na na fara wannan littafin tare da, ko kowane sashi, zuwa ainihin lambar da zan buƙata, musamman idan kuna da ƙwarewa tare da lamba da misalai masu amfani. Idan baku da gogewa a cikin lambar rubutu, Ina da shawarar karanta duk wannan littafin, kuma musamman shawarar ka karanta sassan da suka gabata, don tabbatar da cewa wannan littafin daidai ne a gare ku. Idan wannan littafin bai dace ba a gare ku, yi la'akari da kyakkyawar aboki ko dangi wanda zai iya sha'awar koyon kayan yanar gizo, har ma da yin la'akari da shi a matsayin malami, ko wasu mala'iku da na yi a gabana. Fara inda za ka, kowane bangare na wannan littafin zai zama da amfani idan ka yi niyyar gina apps mai amfani tare da ƙarshen amfani da shi: Ku san Abokin Ciniki. Yanzu kun san ni, kun san wannan littafin, kuma kun shirya don farawa. Don farawa, kwace kwamfyutoci daga kantin sayar da akwatin, Amazon, ko kuma tsohuwar ayyuka, kuma saita shi ta hanyar da take aiki a gare ku.
Yadda ake karanta wannan littafin: Rubutun rubutu mai alama, yana nuna cewa rubutun ya kasance a cikin umarni, inda zaku rubuta lambar da kuka gudu. Umurnin da aka gabatar shine keyboard ɗin yana da mayar da hankali kuma yana buƙatar ɗan danna, saurin yin aiki da kuma sa abubuwa masu sauƙi a kanku.
Farawa: Bari mu shiga ciki. Za mu fara da lambar ginin a kan injin gida kuma mu fara ba tare da gina yanar gizo da aka haɗa da Intanet. Wannan shine mafi aminci don farawa, ba ku da kuɗi, kuma yana da sauƙi a gare ku. Ya danganta da tsarin aikin ku, shiga cikin harsashi na Bash zai ɗan bambanta kaɗan. Don Mac OS, Ina bayar da shawarar shigar da na'ura ta hannu a wannan gaba, kamar yadda zaku sami dacewa da injin kirki. Wadanda suke da yawa kamar su. Idan kuna amfani da Linux ko Windows, wanda nake ba da shawarar, ya kamata ya zama mai sauƙin ƙirƙirar aikin. Bude tashar ka, daidaita sa sizing kamar yadda ka ga ya dace, kuma fara mai zuwa daga mataki 2. Idan kana amfani da Windows, don Allah bi mataki na 1.
Mataki na 1: - Windows Masu amfani kawai A cikin Windows, Buɗe Umurnin Seri A Matsayin Mai Gudanarwa da Nau'in wlsl -install
Mataki na 2: - Ci gaba anan, ko tsallake mataki 1 zuwa nan idan ba ku amfani da Windows A cikin tashar bude, (dangane da OS, wanda ake kira Ubuntu a cikin Windows, tashar jiragen ruwa a cikin Mac ko Linux, ko sunan da ake kira), fara ta hanyar ƙirƙirar aikin. Muna yin wannan tare da umarnin MKDir, wanda ke ƙirƙirar directory. Idan kana buƙatar ƙirƙirar directory don adana aikinku, wanda aka ba da shawarar, yi amfani da umarnin CD don canzawa zuwa directory kuma kuma
CD / Hanya / ZUWA KUDI - Hanyar ita ce manyan fayilolin (fayiloli) wanda ya ƙaddara adireshin ku na ~ ko / a gida / sunan mai amfani shine sunan mai amfani). Don canza zuwa tsohuwar directory, rubuta CD ko CD ~ Misali MKDir - Sauya "misali" tare da sunan directory
Yanzu kuna da aikin aiki don aikinku. Kasancewa da mahimmanci don samun wannan directory ɗin da aka ceto a idan kuna buƙatar canzawa zuwa injin daban ko kuma ku gina rubutun don adana adireshin ku na gaba. Amma gina rubutun yana ɗaukar lambar, kuma lambar tana buƙatar sarrafa kanta ta zama mai amfani kamar yadda zai yiwu. Don haka bari mu gina rubutun don gina rubutun farko. Bari mu fara ne ta hanyar ƙirƙirar rubutun da kuma sanya shi aiwatarwa. Za mu yi amfani da sudo, chod da kuma taɓa wannan, kuma kira rubutun "wasiƙar".
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Yanzu mun kirkiro rubutun, kuma sun yi shi wajen shirya shi. Nano wani editan rubutu ne wanda zai baka damar shirya rubutu ba tare da danna, wanda yafi sauki ba fiye da amfani da mai amfani da hoto. Don shirya fayil tare da Nano, yi amfani da Nano sannan hanya zuwa fayil ɗin. Don yin rubutun da ke sa rubutun, yana da alaƙa da yin rubutun mu da fari. Za mu yi amfani da lambar iri ɗaya kamar na sama, sauƙaƙa sunan rubutun, "ascript" tare da sifa na gardama, $ 1. Wannan zai baka damar kiran rubutun ta hanyar buga sauyawa sauƙaƙe sabanin rubutun ne, a wane lokaci zamu iya ƙirƙirar kowane sabon rubutun "sabbin rubutun. Lambar da ke Nano ta yi kama da:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
Kuma zuwa rufe Nano, za mu iya riƙe maɓallin sarrafawa kuma latsa X, sannan Y nuna cewa muna adana fayil ɗin, kuma buga dawowa. Yanzu maimakon buga waɗannan umarni uku don shirya rubutun, zamu iya rubuta alamun Sudo ascript don sake sake rubutun. Wannan yana aiki! Kuma kowane sabon rubutun za'a iya gudanar da shi cikin sauki ta hanyar kiran shi a cikin kwasfa. Bari mu ajiye aikinmu yanzu: Bari mu rubuta rubutun ajiya don adana sabon rubutun mu sannan kuma a mayar dashi a cikin aikin aikinmu, yayin da kuma ajiyar baya rubutunmu.
sudo ascript backup
Yanzu, a Nano:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
A ina / hanya / to / directory shine hanya zuwa aikin da kuka kirkira tare da Mkdir. Daga baya zamu koyi yadda ake kwafa maimaita hanyoyin kamar wannan tare da madauki da kuma jerin, wanda ba shi da sauki kuma yana da layana kaɗan. Don gudanar da wannan rubutun da adon lambar ku, ajiye fayil ɗin a Nano tare da sarrafawa + X, Y kuma dawo, kuma rubuta a cikin kwasfa
backup
Idan an sa ku a duk faɗin kalmar sirri yayin karanta wannan littafin kuma bi a cikin kwasfa mai amfani daidai, zaku sami ƙoƙari uku kafin ku sake gudanar da umarni. Kuna iya amfani da kibiyoyi da ƙasa don sake aikawa umarni kuma shirya su, idan kuna buƙatar gudanar da komai sau biyu. Latsa sama da ƙasa don zaɓar umarni, kafin gyara umarnin tare da dama, kibiya hagu da share keyboard, kuma a gudanar da shi da dawowa.
Taya murna! Kun yi nasarar ƙirƙirar rubutun madadin mai ban tsoro wanda ke goyan bayan rubutun harsashi biyu masu mahimmanci a cikin littafin aiki. Muna iya motsa abubuwa kusa da baya yayin da aikin ya zama girma, amma wannan yana aiki yanzu. Bari mu ci gaba da yin tallafi cikin girgije, zamuyi amfani da Github don software na Git don sauke kwafin software ɗin ku a bayan kalmar sirri ko maɓallin. Yana da kwarewa wajen adana software ɗinku, musamman kamar yadda muke ƙaura don tsare halaye na Linux wanda wani lokacin lambar da za a kulle ku ta atomatik, wanda za mu ɗauka.
Idan baku riga kuna amfani da na'ura ta Ubuntu a wannan lokacin ba, na sake amfani da injin obuntu a wannan lokacin saboda zai sauƙaƙa rayuwar yanar gizo da ake samu don ƙirƙirar shafin yanar gizon aiki da kuma aiwatar da matakan koyo a kwamfutarka. Zamu matsar da lambar zuwa sabar yanar gizo a gaba, amma muna son tabbatar da cewa karancin yadudduka waɗanda suke da tsayayya da yin wannan sabar. Idan har yanzu kuna son amfani da Mac OS, ana maraba da ku don bincika da shigar da fakitin da ake buƙata, amma bazai iya kasancewa da madadin kowane kunshin wannan littafin ko jerin zai rufe ba.
Bari mu ƙara fewan umarni kaɗan don yin aikinmu tare da rubutun ajiya ta hanyar gudanar da umarnin sudo ascript wariyar ajiya.
# ...
Har yanzu, sarrafa x don adanawa.
Yanzu muna buƙatar yin wani lokaci ɗaya don wannan aikin. Domin ba da daɗewa ba zai zama babban aikin git, ba ma buƙatar rubuta kowane umarnin da muke turawa daga wurin ajiya na git, amma za mu sami rukunin wannan lokacin da muke rubuta rubutunmu. Don farawa, bari mu tabbatar muna cikin madaidaiciyar directory kuma mu fara da wurin ajiyar git kuma samar da makullin SSH.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Bayan mun nau'in Ssh-keshy, ana samun sabon maɓalli a cikin babban fayil ɗin a ƙarƙashin babban fayil wanda ake kira .SSH. Ana kiranta id_rsa.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.uk. Bari mu sami wannan maɓallin kuma mu kwafa ta. Ganin shi,
cd ~
cat .ssh/id_rsa.pub
Kwafi rubutun da aka dawo da umarnin ƙarshe, kuma ƙirƙirar lissafi tare da mai ba da gudummawar ku (githitt), kafin ƙara maɓallin SSH zuwa asusun SSH zuwa asusunka. Da zarar kuna da asusu, danna maɓallin dama na sama kuma kuna shigar da saiti, kafin ƙara maɓallin SSH da GPG ɗinku a ƙarƙashin damar. Zaɓi ƙara maɓallin SSH kuma ƙara naka ta hanyar wucewa da shi kuma yana ba da shi taken, kafin cetonsa da dawowa ga Gith don ƙirƙirar sabon wurin ajiya. Wannan yayi kama da sauran masu samar da Git, kuna buƙatar karanta takardun su. A cikin sabon tsarin ajiya, ba da sunan da aka sanya muku suna kuma yanke shawara ko kana son buga shi, kuma ka tabbatar da saita babu fayiloli don hada sosai. Da zarar an kirkiro wurin ajiya, kwafe Cire tare da SSH URL, kuma Manna shi cikin wannan umurnin.
git remote add git://… (your remote URL)
Yanzu zaku iya komawa baya zuwa ga wurin ajiya tare da CD, zaku saba da wannan. Gwada rubutun ajiyar ku yanzu tare da wariyar ajiya
Babban! Yanzu zamu iya samun lambar sadarwa da gaske. Bari mu shigar da Django yanzu da muke da kyau ranne mai kyau a kan bash da git. Django zai bari mu adana kayan aikinmu ta atomatik, amma Django yakamata ta yi sauki aiwatarwa (ana iya kashe shi da sauƙi).
Don shigar da software a Ubuntu, zamuyi amfani da sudo aft-samu umarni. Da farko, bari mu sabunta software da muka riga mun samu. Ana iya yin wannan tare da Super Apt-Samun sabuntawa da sudo a dace-sami haɓaka-samun haɓaka-son haɓaka -Y. Next, let's install Python and our virtual environment, the home of our code, with the following command: sudo apt-get install python-is-python3 python3-venv
Wannan shine duk abin da kuke buƙata don tafiya tare da Django dangane da software da ke cikin ubuntu. Don Windows da Linux Wannan ya zama daidai kai tsaye, amma ga Mac Kuna iya son shigar da injin da aka ɗora a sama ko kuma sake fasalin matakai da ke sama don saita yanayin obuntu. Ubuntu yana da mahimmanci a wannan yanayin saboda software ce yanar gizon yanar gizon da ke gudana kuma yana sa su karbi hannu kan shafukan yanar gizo tare da duk software ɗin da aka ambata.
Bari mu tono cikin Django.
A cikin jagorarmu kuma, tare da CD:
python -m venv venv # Yana ƙirƙirar muhalli inda aka adana lambar
source venv/bin/activate # Yana kunna yanayin kamuwa
django-admin startproject mysite . # Inda MySite shine aikin da nake farawa a cikin tsarina na yanzu.
Django kawai ake farawa ne, saboda Django yana karbar bakuncin sabar yanar gizo kuma yana yin komai muna bukatar samun ingantacciyar hanyar yanar gizo na gida da gudana. Yanzu da muke da Django an shigar da Django, bari mu shirya saitunan kaɗan don sa shi aiki yadda muke bukata. Da farko, bari mu ƙirƙiri sabon app
python manage.py startapp feed
Za ku lura da farkon app ana kiranta abinci. Ya kamata a kira aikace-aikacen duk abin da kuke so, kuma za mu ƙirƙiri sabbin apps, amma sunan kowane app dole ne ya zama daidai duk lokacin da aka ambata a cikin lambar. Don ƙara sabon app, koyaushe zamu shirya saitunan.py a cikin sauran directory ɗin da aka kirkira, wanda aka sa masa suna a cikin farawa, a gaba App. Amfani da Nano,
nano app/settings.py
A cikin saiti, sami shigar da hannu_PPs kuma raba [] cikin layi 3. Amfani da sarari huɗu akan layin cibiyar ba komai, ƙara 'Feed', ko sunan app ɗinku. Wannan sashin na saitunan.py yakamata yayi kama da:
INSTALLED_APPS = [
'feed',
]
Kafin mu manta, bari mu gwada cewa Django yana aiki. Yin amfani da umarni Python Gudanar da Gudanar da 0.0.0.0:8000, zamu iya gudanar da uwar garken sannan kuma 8000 kuma duba uwar garken tare da sarrafawa c, daidai yake da kowane umarni.
Yanzu, bari mu tono cikin rubuta wasu lambar Python. DJango yana da manyan abubuwan haɗin guda uku, dukkansu suna gudana ta lamba gaba ɗaya. Ana kiran kayan aikin, duba da samfuri, kuma kowannensu yana kan mafi girma matakin kafin a isar da gidan yanar gizon.
Tsarin shine lambar da ke adana bayanai a cikin bayanan bayanan don dawo da shi, yanayi da ma'ana.
Duba ya nuna yadda aka sanya samfurin, rike, kuma an gyara shi, kusan kowane kallo zai yi amfani da samfurin kai tsaye.
Shafin shine lambar HTML tare da wasu karin karrarawa da whistles masu suna suna da yare yare. Ana sanya samfuri da ra'ayin inda aka cika shi da lambar Python da mahallin kamar samfura da bayani (USULL Strings da lamba) daga kallo.
Django yana da wasu abubuwan haɗin, gami da amma ba iyaka ga:
Saitunan, wanda ke tsara app kamar yadda muka tattauna.
URLs, waɗanda ke samfur da mai amfani ya biyo baya don samun damar samun takamaiman sassan aikace-aikacen yanar gizo.
Fim, wanda ke bayyana yadda bayanin da aka aiko zuwa uwar garken an sarrafa shi kuma an sanya shi zuwa ga bayanan da kuma mai amfani. Waɗannan sune tushe na sarrafa bayani akan bangaren uwar garken, kuma zai iya karɓar kowane nau'in adana shagunan kwamfuta, mafi yawan rubutu, lambobi, da kuma gaskiya (yawanci booleans).
Samfura, waxanda suke da lambar HTML da kuma shingen rata da kuma amfani da bayanan Pymon wanda kowa zai iya kasancewa kusa da sabar.
Fayiloli na tsayayyen, waɗanda yawanci JavaScript ne kuma ɗakunanta waɗanda uwar garken ke aiki kuma ana haɗa su tare da samfuri.
Fayilolin masu jarida, waɗanda uwar garken ke aiki ko ana shirya su da wuri ɗaya, ko kuma a rubuce zuwa uwar garken kafin a sarrafa shi kuma an sanya su zuwa wata sabar (guga) don hosting.
Karamar, wacce take guda ɗaya da ke gudana a lokaci guda a matsayin kowane ra'ayi kuma ana ɗauka "a cikin ra'ayi.
Abubuwan sarrafawa, waɗanda ke aiwatar da mahallin kowane ra'ayi kuma ana amfani dasu don ƙara ƙarin mahallin.
Gwaje-gwaje, wanda ke tabbatar da cewa mai amfani ko buƙatu ya wuce wasu buƙatu kafin a sanya ra'ayin.
Masu amfani, waɗanda ke ba da izinin yadda hanyoyin shiga yanar gizo suka yi kuma amsa sadarwa.
Admin, wanda ake amfani da shi don yin rijistar samfuran don haka ana iya sarrafa su daki-daki a cikin shafin admin, inda za'a iya sarrafa bayanan ta hanyar dubawa mai zane.
Seleri, wanda ke bayyana asynchronous ayyuka na Django na iya fara gudanarwa kafin nan da nan zuwa aiki zuwa aiki na gaba ko layin lamba.
Django na iya samun sauran abubuwan haɗin da yawa, wanda zamu tattauna dalla-dalla a nan. Akwai hanyoyi da yawa don yin Django ƙarin aiki, websings mai sauri, seleri, wanda ke aiwatar da sauran nau'ikan software, musamman a cikin ayyukan da aka kashe. Duba ayyuka sune maballin saboda yawanci suna bayyana kowane lambar da ke takamaiman bayanin takamaiman tsarin Url, ko ɓangaren sabar.
Da farko, bari mu bincika ayyukan duba. Fara Ayyuka tare da shigo da ke shigo da lambar da za a yi amfani da ita a cikin kallo, kuma an ayyana su ta amfani da ma'anoni na yau da kullun ko azuzuwan. Abubuwan da suka fi sauƙi ana bayyana ra'ayoyi ta hanyar ma'anar aikin, kuma ku dawo da httprepesse tare da ainihin samfuri. Bari mu fara ne ta hanyar ma'anar ra'ayi na asali don dawo da rubutun "Sannu Duniya". Ka tuna cewa duk lokacin da ka ƙara lamba bayan bayani kamar def, idan, yayin da, da sauransu, da sauransu, kuna buƙatar ƙara aikin da kuke so don amfani da aikinku. Za mu shiga abin da kowane ɗayan ke biyo.
Daga directory shafinmu, shirya Feed Feed / Views.py fayil ta amfani da Nano kuma ƙara waɗannan layuka zuwa ƙarshen fayil ɗin.
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Rettprepesse ya ba da amsa tare da kirtani na rubutu, wanda aka nuna tare da budewa da rufewa '. Duk lokacin da ka kunna bayani zuwa aiki ko aji, kamar buƙatu ko kirtani, zaku buƙaci amfani da iyaye (, buɗe da rufewa).
Wannan ba duk abin da muke buƙatar ganin ganinmu ba tukuna. Tabbas, ba mu gaya wa uwar garken inda ra'ayin yake daidai ba, har yanzu muna buƙatar ayyana hanyar da ra'ayin da ya kamata ya ba da alama. Bari mu fara da ma'anar wata hanya a cikin app / URLS.py, kuma za mu shiga cikin hanyoyin da ke faruwa.
A cikin App / URLS.py, ƙara layi bayan da aka shigo da shigarwar bayan fara sayan jigon da kawai muka kirkira.
from feed import views as feed_views
Yanzu, bari mu fassara tsarin duba. Duba suttukan suna da abubuwan haɗin yanar gizo uku, hanyar ta hanyar, wacce ta gaya wa uwar garken don haka tana da sauƙi don dawo da sarari don wani ra'ayi ko kuma an sabunta sunan idan ya zama dole a sanya sunan mai ma'ana. Yana da ma'ana don yin abubuwa wannan hanyar kuma su zama mai sassauƙa, saboda cypeBase zai zama yanayin canzawa da abubuwan da ke buƙatar zama mai mahimmanci kuma mai sauƙin aiki tare da. Ga abin da ra'ayinku zai yi kama, zaku iya ƙara wannan urlpatterns = [sashen app / URL.py. An bayyana tsarin dubawa tare da abubuwan haɗin ukun da aka bayyana a sama, kuma wani aiki da ake kira hanyar. Tsarin URL ɗinku akwai jerin abubuwa, don haka tabbatar cewa ƙare koyaushe kowane abu a cikinsu tare da wakafi, saboda wannan ya raba kowane ɗayan. Kowane abu ya kamata kuma ya ci gaba da sabon layi, sake tare da sarari huɗu kafin ta, kamar app a cikin saiti.py. Zamu ayyana bangaren farko na hangen nesa tare da aikin fikafikan ba komai, don ƙirƙirar ra'ayi wanda ke gudana akan tushen tushen uwar garken. URLs.Yo urls yanzu ya yi kama da wannan:
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Wannan shine tushen ƙirƙirar gidan yanar gizo tare da Django wanda yake gaba ɗaya tsaye. Don yin ƙarin shafin yanar gizo mai ƙarfi inda zamu iya fara bayanin Kisan, kamar hotuna, bidiyo, sauti da ƙari, wanda za mu buƙaci amfani da samfura, wanda za mu bincika na gaba. A yanzu, bari mu bincika lambar mu kuma gudanar da sabar. Don bincika lambar don kurakurai, gudanar:
python manage.py check
Idan akwai wasu saƙonnin kuskure, ya kamata ku bincika canje-canjen da kuka yi a cikin app ɗinku kuma ku ga wani sarari ko rashin buƙatar halayyar da aka ba da izini, ko wani abu da gangan. Reading through the error message (if you have one), you should be able to see the path to a file you created or edited along with a line number, so look into that file and line and see if you can fix anything that is there. Idan kun gyara batun, gudanar da umarnin da aka ambata a sama. Lokacin da software ɗinku ya shirya gudu kuma yana aiki, zaku ga fitarwa "Tsarin tsarin binciken da aka gano ba maganganu." Yanzu kun shirya don tafiya. Gudanar da sabar tare da:
python manage.py runserver 0.0.0.0:8000
Yanzu bude mai binciken yanar gizo kuma kewaya zuwa http: // localhost: 8000. Yakamata ka ga rubutun ya dawo cikin mahaifa da kwatancen aikin httprepresse a cikin ra'ayin ka. Wannan misali ne na asali, amma idan kun yi shi yanzu, kun fahimci kayan yau da kullun na yadda Linux, Bash, Python, da Django. Bari mu yi zurfi cikin ɗaukar hoto cikin wasu zane-zane na bayanai, kuma bincika ƙarfin aji na Python cikin adanawa bayanai. Bayan haka, zamu fara kama HTML da CSS kafin mu sanya rukuninmu cikakke, sassauƙa da kuma amintawa ta amfani da JavaScript da kuma koyon injin.
Ana adana azuzuwan a cikin samfuran ku. Amfani da Nano, Shirya app / mody kuma ƙara sabon aji. An ayyana aji tare da ma'anar aji kuma an ƙaddamar da superclass cewa ita gajibtawa daga, a wannan yanayin samfurin.model. Sunan aji ya zo bayan ma'anar aji, kuma bayan ma'anar aji a: (Karkatanta) ana amfani dashi, kafin halaye da ma'anar halayen da aka ɗaura a cikin aji ana nuna su a ƙasa. Aikin mu yana buƙatar ID da za mu iya amfani da shi don dawo da shi kuma mu adana ta, kuma yana buƙatar filin rubutu don adana wasu bayanai don adana wasu bayanai don adana wasu bayanai don adana wasu bayanai don adana wasu bayanai don adana wasu bayanai don adana wasu bayanai. Daga baya zamu iya ƙara timestamp, fayiloli, booleans (gaskiya ko na gaskiya waɗanda zasu iya warware shi), misalin daure samfurin zuwa mai amfani zuwa cikin sabobin, kuma mafi. Bari mu katse lambar da ke ƙasa:
from django.db import models # Wanda shigo da wannan ana amfani dashi don ayyana aji kuma yana da sifofin
class Post(models.Model): # Ma'anar karatun mu da kanta
id = models.AutoField(primary_key=True) # ID na samfurinmu, maɓallin da aka kirkiro ta atomatik wanda zai bari mu bincika ƙirar, ku sa ya zama mai mahimmanci lokacin da muke buƙatar hulɗa da ƙirar da zarar an halitta.
text = models.TextField(default='') # A sandar shagunan karatun mu, a wannan yanayin, wasu rubutu, suna tsawaita zuwa flound.
Kusa da adana fayil kamar yadda muka yi kafin gama.
Akwai sauran filayen da zaɓuɓɓuka zamuyi bincike yayin da muka sabunta wannan aji a matsayin kayan aikinmu na samar da app don sanya wasu rubutu. Koyaya, wannan samfurin ba zai yi aiki shi kaɗai ba. Kamar yadda aka bayyana a baya, muna buƙatar sabon tsarin al'ada da tsarin URL na al'ada don yin wannan aikin, kuma muna buƙatar fom tare da samfuri. Bari mu bincika fom da farko.
Don ayyana wani tsari, shirya app / fasali.py tare da Nano kuma ƙara masu zuwa. Muna buƙatar shigo da kaya biyu, ajin mu, da samfurin da muka kirkira (Fela.models.lun), ma'anar aji da ake kira META wanda zai ayyana samfurin da ke hulɗa da. Samfuran zai iya samun aikin farawa wanda ya kafa shi dangane da bayani a cikin bukatar, ƙira ko akasin haka, zamu bincika wannan daga baya.
Siffofin ƙira suna da amfani sosai saboda suna iya ƙirƙirar ƙira ko kuma suna iya gyara ƙira, don haka za mu yi amfani da su duka biyun. Bari mu ayyana daya a cikin forms.py a kasa.
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',)
Wannan shine kayan yau da kullun abin da tsari da ƙira kama. Za'a iya amfani da wannan nau'in samfurin don saita bayanan kai tsaye ko shirya wani post, canza rubutun da yake ƙunshe. Zamu kalli hada wannan tsari cikin kallo na gaba. Da farko, bari muyi ƙaura kuma yana ƙaura da bayanan don haka lambar mu zata iya yin hulɗa tare da ƙirar lokacin da ta gudana. Don yin wannan, gudanar da waɗannan umarni:
python manage.py makemigrations
python manage.py migrate
Wannan zai dauki minti daya don aiwatar da shi, amma da zarar hakan ya yi, zai ba ka damar samun damar yin samfurin a ra'ayoyin, na tsakiya, ko wani wuri a cikin software. Bari mu ci gaba ta hanyar yin ra'ayi inda zamu iya ganin samfurinmu. Edited feed / Views.py kuma ƙara lambar masu zuwa, kamar yadda aka fada. Ba za ku buƙaci ƙara wani abu ba bayan alamar #, wannan lambar ita ce maganganun da ake amfani da su don nuna bayanai game da lambar. Za mu fara shigo da samfurinmu a ra'ayoyinmu, kuma zamu ƙara shi zuwa mahallin inda zamu sanya shi a cikin samfuri a matsayin jerin don nuni. Bayan haka, za mu ƙara samfuri inda zamu sanya tsari da ƙira tare da maɓallin don ƙirƙirar sabon abu kuma ya sanya shi zuwa uwar garken. Wannan yana da rikitarwa, don haka bari mu kai shi mataki mataki. Kafin mu gama ra'ayin, bari mu ƙirƙiri samfuri kuma mu tabbatar da samfurin kuma tabbatar cewa muna iya ganin ta ta hanyar ƙirƙirar sabon post a cikin kwasfa. Ga yadda wannan kallo ya kamata ya duba:
posts = Post.objects.all() # Tambaya Dukkanin posts a cikin bayanan har zuwa yanzu
Wannan duka kyawawan kyawawa ne har muka isa ƙasa. Render, ƙimar dawowa ta aikin a cikin amsawar HTTP kamar yadda aka shigar na farko, wanda zai iya yin amfani da shi a cikin samfuri, kuma ya dawo yanzu a cikin aikin. Shafin zai zama takardu na HTML tare da ɗan ɗan harshe da ake kira Jinja2, wanda ke jujjuya bayanan Python a cikin HTML.
Don fara ƙirƙirar shaci, yi adireshi biyu a cikin abinci.
mkdir feed/templates
mkdir feed/templates/feed
Abu na gaba, shirya samfuri a cikin jagorar da ke sama, ciyarwa / Feed, kuma ƙara lambar don wannan misali. Bari mu kalli samfuri na wannan misali.
Wannan samfuri ne mai sauqi. Yana bayyana buɗewa da rufe alamun HTML, alamar nau'in takaddar, alamar ragar da ke ƙara kowane post a cikin jerin posts a cikin samfuri. Wannan duk yana ɗaukar hoto, amma babu wani a cikin bayanan tukuna. Bari mu ƙirƙiri wasu tare da kwasfa. Zamu iya gudanar da kwasfa tare da gudanarwa.py
python manage.py shell
Yanzu, bari mu shigo da samfurin post din mu
from feed.models import Post
Next, zamu kirkiri post mai sauki tare da kirtani ka fita da harsashi. Kirtani na iya zama komai, idan dai yana da inganci rubutu.
Post.objects.create(text='hello world')
exit()
Aƙarshe, za mu buƙaci ƙara tsarin URL a cikin abincinmu. Saboda app ɗinmu na abincinmu zai yi amfani da URLs da yawa kuma muna so mu ci gaba da girman fayiloli masu yawa, bari mu ƙirƙiri URLs na gida, mu ƙirƙira urls.py a cikin app ɗinmu wanda yake kama da wannan:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
Hakanan zamu buƙaci shirya URLs.py a cikin App ɗin tushe, duk abin da muka yanke shawarar kira shi, wannan shi ne tsarin farko da muka halitta. Shirya app / app.py kuma ƙara masu zuwa zuwa tsarin URL
from django.urls import include # a saman
# ... lambar da ta gabata anan
Yanzu, lokacin da muka gudanar da sabar tare da Pychon Gudanar da Python Gudanarwa. Zamu ga samfurin, duba da tsarin URL, tare da abubuwa a cikin bayanan. Bayan haka, bari mu aiwatar da fom ɗin da muka kirkira kuma fara ƙirƙirar bayanan namu. Amma kafin mu rubuta lamba da yawa, bari muyi ajiyar amfani ta amfani da rubutun da muka rubuta a baya, Ajiyayyen. Gudun wannan rubutun a cikin kwasfa, jira 'yan lokutan, kuma duk za a goyi bayan duk lambar zuwa wurin da muke da git git.
backup
Aiwatar da fam ɗin yana da sauƙi. Za mu shigo da fom ɗinmu, ƙara sabon bukatar post ɗin zuwa ga kallo, kuma adana post a cikin bayanan kafin tursasawa zuwa wannan kallo. Zamu iya amfani da aikin juyawa da muka shigo da shi, kuma wani aiki da ake kira baya don samun URL don tsarin duba. Za mu iya yin wannan tare da kirtani 'Ciyarwa': Ciyarwa 'saboda sunayen da aka haɗa da tsarin abinci shine ciyarwa, kuma ana kiran kallon abincin.
posts = Post.objects.all() # Tambaya Dukkanin posts a cikin bayanan har zuwa yanzu
if request.method == 'POST': # Rike da bukatar post
form = PostForm(request.POST) # Createirƙiri misalin da adana bayanan zuwa gare shi
if form.is_valid(): # Tabbatar da fom
form.save() # Ajiye sabon abu
return redirect(reverse('feed:feed')) # Sake juyawa zuwa URL guda ɗaya tare da buƙatar
'form': PostForm(), # Tabbatar a wuce fom cikin mahallin don mu iya sanya shi.
Yanzu, za mu buƙaci sabunta samfuri zuwa asusun don sabon tsari. Zamu iya yin wannan ta amfani da
Bari mu karya wannan ƙasa. Akwai sabon aji na tsari, alama, tsari da kanta, da maɓallin ƙaddamarwa. Maɗaukaki, amma lokacin da muka kalli shi, za mu so mu zama da kyau. Yana aiki, zamu iya tura sabbin posts tare da fom din kuma yanzu an sami ceto a cikin bayanan. Akwai wasu 'yan abubuwa da ke faruwa a nan. Muna amfani da alamun HTML don ayyana cewa takaddar HTML takaddar ne, muna amfani da alamar hoto ({;%. Hakanan muna da madauki don sanya rubutun ta amfani da alamun toshe da alamar samfuri. Alamar toshe suna da mahimmanci saboda za mu iya bayyana yadda ake yin samfuran samfuri tare da su, da alamun samfuri sune tushen masu canji a cikin lambar.
Yanzu muna buƙatar sanya app ɗinmu mafi kyau, saboda yanzu yana da gaske ainihin. Zamu iya yin wannan ta amfani da CSS, ko dai a layi, ko a cikin makarantu daura wa kowane abu a cikin takaddar. CSS yana da kyau sosai saboda yana ba da komai akan shafin yadda yakamata ya duba, kuma zai iya sanya shi da kyau. Akwai 'yan ɗakunan karatu waɗanda za su iya yin wannan, amma na sirri ya tafi shine bootstrap.
Za'a iya saukar da Bootstrap daga shafin yanar gizon su,getbootstrap.com/. Da zarar akwai, latsa maɓallin don karanta Docs Docs, da kwafa lambar daga hadawa ta hanyar CDN sashe. Kuna buƙatar wannan lambar a saman takaddar HTML, a cikin wata alama ake kira kai. Hakanan, bari mu ci gaba kuma a ƙirƙiri samfurin tushe don haka ba ma buƙatar sake fasalin waɗannan hanyoyin a cikin kowane samfuri.
Yi sabon tsari na da ake kira Samfura tare da samfuran MKDir, sannan shirya samfuran / Base.html.
Ya kamata yayi kama da wannan:
Tabbatar kwafa CSS da Javascript, da .Css da .js fayiloli, saboda muna buƙatar Javapt don sanya shafinmu aiki a gaba.
Yanzu, bari mu koma ga harsashi na bash kuma mu gudanar da umarnin sauri. Ka tuna, idan ka taɓa samun damar samun damar shiga yanayin ƙaƙƙarfan ƙauye, nau'in tushen tushen Venv / Bin / Kunna. Wannan zai baka damar shigar da fakitin Python a gida a hanyar da zata iya samun damar samun damar zuwa su. Don ba da siffofinmu ta hanyar Django Bootstrap azuzuwan, zamu yi amfani da kunshin Python da ake kira siffofin crispy. Zamu iya sauke wannan tare da wannan umarni
pip install django-crispy-forms
Da zarar an shigar da wannan, ƙara shi zuwa saiti.py
# ... lambar da ta gabata anan
Yanzu, baya cikin samfuran abincinmu, zamu iya cire wasu abubuwa. Bari mu cire farkon da ƙarshen takaddar da maye gurbin ta da gado daga samfurinmu, ta amfani da ma'anar toshe. Hakanan, za mu ƙara tace shigo da kayan aiki tare da kaya da kayan template zuwa fom ɗin. Aƙarshe, bari mu ƙara aji na Bootstrap zuwa maɓallin akan fom don sanya ya zama kamar maɓallin. Wannan ya kamata yayi kama da wannan:
Kyau! Wannan shine mafi yawan lambar riga. Bayan haka, ya kamata mu gwada shi kuma ka tabbata za mu iya ganin cewa komai yayi kyau, kuma tabbata cewa komai yana aiki yadda yakamata. Gudanar da sabar kamar yadda ya gabata kuma tabbatar cewa shafin yana kama da aiki daidai. Babban aiki! Kun shirya don matsawa zuwa mataki na gaba, wanda zamu ƙara ayyukan shiga mai amfani ta amfani da irin urls irin wannan, siffofin, ra'ayoyi. Jigilar tushe yana da mahimmanci, kuma za mu ci gaba da canza shi kuma mu sami canje-canje da ake buƙata, amma a ƙarshe bari mu zama mafi mahimmancin yin amintaccen aikinku da kuma ku.
Don yin wannan, za mu buƙaci amfani da samfurin mai amfani da aka gina cikin Django. Misalin mai amfani samfurin kwamfuta shine tsarin bayanai, kamar post ɗinmu, wanda za'a iya fassara shi don shiga mai amfani zuwa cikin gidan yanar gizon. A nan gaba, kafin mu tura shafin zuwa Intanet, za mu mika ƙarin ƙirar tare da wasu samfuran tsaro don shiga waɗanda suke rayar da yin leken asiri. Za mu fara ne ta hanyar amfani da wasu gina a cikin tsarin shiga na Django yana ba da izini. Da farko, bari mu ƙirƙiri sabon app wanda za mu yi amfani da shi don sanya Samfurori da ra'ayoyi don shafin Shiga. Hakanan zamu kirkiri sauran aikace-aikacen don wakiltar matsalolin shiga don tabbatar da App, gami da filin sadarwa, tabbataccen sadarwa, da kuma amincewa da yatsa.
Mun riga mun yi magana game da fara app. Daga directory, a cikin kamiltaccen yanayin, pass Gudanar da Gudanarwa
python manage.py startapp users
Yanzu, ya kamata mu sami directory don sabon app. Bari mu fara ne ta hanyar kirkirar kallo a cikin wannan tsarin da ya dace da shiga mai amfani. Django ya gina cikin ra'ayoyi don logins mai amfani, amma waɗannan ba za su dace da mu ba saboda muna buƙatar mahango mai amfani, wanda aka fi dacewa da shi tare da ma'anar.
A cikin wannan ra'ayi, za mu fara ne ta hanyar bincika buƙatun post, passi Phatures zuwa wani rajista da aka shigo da shi daga dokokin da aka ciyar da su zuwa app ɗin abincinmu.
A cikin masu amfani / ra'ayoyi / Views.py, ƙara lambar masu zuwa
username = request.POST['username'] # Samu sunan mai amfani da kalmar wucewa daga bukatar post
password = request.POST['password'] # Gaskanta mai amfani
Wannan shine duk abin da kuke buƙata don ainihin ra'ayin shiga. Yanzu, bari mu ƙirƙiri wani tsari don kallo ta hanyar tsawaita samfurin tushe. Za mu fara ne ta hanyar ƙirƙirar sabon directory don shaci a cikin babban fayil mai amfani.
mkdir users/templates
mkdir users/templates/users
Yanzu, ya kamata mu iya shirya masu amfani / samfuri / masu amfani / Login.html. Duk da yake muna kan shi, zamu kirkiri samfuri don ba da damar mai amfani ya sanya hannu.
nano users/templates/users/login.html
Yanzu, a cikin samfuri,
Wannan shine kayan yau da kullun na samfurin shiga. Yana da gaske kamar sauran samfuri a cikin tsari, amma yana ɗan bambanta kaɗan lokacin da aka fassara shi. Zamu iya kwafa wannan lambar don gina wani irin samfuri da ake kira rajistar.html, inda zamu canza kalma da kuma amfani da sabon tsari da muke ginawa. Bari muyi samfuri da farko. Shirya masu amfani / samfuri / masu amfani / rijista.html kuma ƙara lambar masu zuwa:
Yanzu, bari mu gina wani tsari don rajistar mai amfani da kuma kewaya baya ga ra'ayoyi kafin mu haɓaka loggin mai amfani da ƙira. Za mu yi wannan tsari na asali don farawa, amma haɗa ƙarin cikakkun bayanai da fasalin tsaro kamar yarjejeniya da kuma yarjejeniya a nan gaba. Shirya siffofin tare da masu amfani da Nano / fasali.py, kuma ƙara lambar mai zuwa.
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
Don haka muna da wani tsari a nan, wanda ke aiki da adalci. Tsarin rajista ne tare da sunan mai amfani, imel da kalmar sirri, da kuma tabbatar da filin kalmar sirri. Lura cewa wannan tsari ba zai iya tsawaita tsarin misali na yau da kullun ba. Ana bayyana filin daya daidai, kuma M meta na aji ya bayyana ƙirar da aka yi daidai da sauran bayanan da za'a rubuta wa fom. Yawancin wannan an riga an gina su a cikin Django a cikin gina na kayan aiki, saboda haka za mu yi amfani da hakan kamar yadda tushen aji).
Bayan haka, zamuyi nazarin ra'ayin don rajistar mai amfani, yanzu da muke da fa'ida da samfuri. Wannan samfurin bayani ne, kamar ɗaya a cikin sabon kallon post. Shirya masu amfani / ra'ayoyi / Views.py kuma ƙara lambar masu zuwa:
# ... shigo da kaya
Wannan shine duk abin da muke buƙata don samun rijista rajista, amma ya kamata mu sami ƙarin bayani. Muna son sanin lokacin da mai amfani da aka yi rijista, wane lokaci suke na ƙarshe a shafin, post, da sauransu. Don yin hakan, za mu sabunta samfuran.py a cikin kayan aikin biyu. Bari mu fara da gyara tsarin abinci. Ya kamata yayi kama da wannan yanzu:
from django.db import models # ... shigo da kaya
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # Ara a cikin wannan layin
Kula da layin na biyu wanda aka kara wa fayil. Wannan maɓallin waje ɗaya ne, wanda zai danganta kowane post zuwa mai amfani guda ɗaya kowace post, don haka zamu iya yin tabbacin cewa za a iya ajiye shi ba tare da danganta shi da mai amfani ba. Mun ayyana wannan mabuɗin na waje tare da aji yana wakilta, share hujja don tabbatar da rashin amfani, da sunan da za mu iya amfani da shi don komawa zuwa post abubuwan da mai amfani ya kirkira. Wannan sunan, ba kamar post.ahor, marubucin post, yana ba mu mai amfani da kansa. Yanzu za mu iya samun posts mai amfani da mai amfani da aka yi.lunstss.all (), ko Mawallafa ().
Yanzu, bari mu sa yawon shakatawa na gaba. Za mu iya riga da sanya shafinmu da yawa da rashin haɗari ga yin amfani da shi kawai yana iyakance yawan lokuta za mu ba da izinin shiga shafin, wannan yana da sauƙi sauƙi. Bari kuma a fara adana wasu bayanai game da kowane mai amfani kafin mu ci gaba da bunkasa app ɗinmu. Gyara masu amfani / Models.py, ƙara lambar masu zuwa.
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, related_name='profile')
account_created = models.DateTimeField(default=timezone.now)
last_seen = models.DateTimeField(default=timezone.now)
can_login = models.DateTimeField(default=timezone.now)
preferred_name = models.CharField(max_length=20,default='', null=True, blank=True)
bio = models.TextField(blank=True, default='')
Lura cewa wannan samfurin ya kasance mai kama da samfurin post. Muna da ƙarin wadatar shigo da lokaci, lokaci, wanda zai ba mu damar saita tsoffin filayen a cikin filayen kwanan wata, kuma muna da halaye da rubutu kamar post. Yin amfani da duk waɗannan awanni-awanni yana taimaka mana amintaccen shafin kuma mu fahimci amfanin sa, da filayen rubutu ya bari mu sanya bayanai game da kowane mai amfani, ko marubuci, a shafin yanar gizo. Onetofield ya kamata ya zama ƙaramar kulawa, yana nuna daidai iri ɗaya ne da foregykey amma tare da ɗaya kawai samfurin. Wannan hanyar, mai amfani kawai yana da bayanin martaba ɗaya, yayin da za su iya samun hotuna da yawa.
Yanzu, bari mu inganta shiga da yin rajista ra'ayoyi zuwa lissafi don bayanin martaba. Na farko, shirya masu amfani / ra'ayoyi / ra'ayoyi da mai da hankali kan ra'ayoyin rajista:
# ... shigo da kaya
Profile.objects.create(user=user) # Tabbatar ƙara wannan layin, don ƙirƙirar bayanin martaba ga mai amfani
Wannan kawai yana ƙirƙirar bayanin martaba ga mai amfani, ba tare da cika wani bayanin ba. Yanzu, muna son tabbatar da cewa asusun mai amfani ba zai iya shiga ba sau da yawa, ko aƙalla kalmomin shiga ba za a iya gwada shi sau da yawa ba, don haka bari mu sabunta kallon shiga.
# ... shigo da kaya
if user and user.profile.can_login < timezone.now(): # Lura cewa yanzu muna bincika idan mai amfani zai shiga ciki
else: # Idan shiga bai yi nasara ba,
user = User.objects.filter(username=username).first() # Wannan bangare ne inda muke sabunta bayanan masu amfani
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Don haka ba za su sake shiga ba don secondsan mintuna kaɗan
Wannan shi ne ainihin mahimmancin tsaro. Tabbatar da rukunin yanar gizon ba shi da matsala ga wani kawai yana ƙoƙarin kowane haɗuwa kalmar sirri, ko ma kaɗan daga cikinsu a lokaci guda. Wannan ba zai zama abin takaici ga mai amfani da talakawa wanda ya san lambar wucewa ba kuma kawai yana shiga cikin 'yan na'urori kawai, amma zai ci gaba da yadudduka masu son kai tsaye daga app. Ka lura cewa mun ƙara bayani idan bayani tare da m, Can_login, wanda ya kamata ya zama lokaci a baya, kuma sabunta shi tare da kowane shiga da ba a cika shi ba ta amfani da sunan mai amfani iri ɗaya. Wannan hanyar, mai amfani mai cutarwa ba zai iya tunanin kalmar sirri ba a kowane wuri kusa da sauri. Yawan seconds a cikin ranar kwanan wata.timedelta () za'a iya sabunta shi kuma, sannan gidan yanar gizon zai zama mafi ci gaba har yanzu kaɗan da seconds. Ina bayar da shawarar 15 don farawa.
Ka tuna, mun gina abin ajiya don adana aikinmu, don haka bari mu ci gaba kuma mu adana abin da muka samu yanzu mun tabbatar mana da ceto. Run umarnin:
sudo backup
Har yanzu, wannan zai adana aikinku zuwa yanzu. Ina bayar da shawarar guduwa akai-akai don adana aikinku, kuma zaku iya son gudanar da aikin ajiya ta atomatik. Kuna iya yin wannan ta amfani da amfani da UNIX da ake kira cron. Don kunna wannan amfani, gudanar da wannan umarnin kuma shigar da kalmar sirri:
sudo crontab -e
Idan baku riga zaɓi zaɓi ba 1 don Nano, edita rubutu ya riga ya zama sananne, kuma gungura zuwa kasan fayil ta amfani da makullin kibiya. Sanya layi mai zuwa:
0 * * * * sudo backup
Cron yana amfani da minti na tsayin daka, awa, wata, wata, wata, rana ta mako, a ina waƙoƙi ke wakiltar lokacin da zai gudanar da umarnin. Yin amfani da minti na minti 0 na minti daya * don sauran zaɓuɓɓuka, zamu iya gudanar da umarni a farkon minti na kowane awa a farkon minti na minti. Wannan zai baka damar adana lambar ta atomatik. Dukkanin ayyukan cron lokacin da aka kashe su tare da sudo gudana a matsayin tushe, don haka ba za mu buƙaci rubuta a cikin kalmar wucewa a kowace awa ba.
Don sauƙaƙe don adana lambar mu ba tare da amfani da kalmar sirri ba, bari mu kashe kalmar sirri don umarnin mu. Za mu yi wannan ta hanyar aiwatar da umarnin da shigar da kalmar sirri:
sudo visudo
Yanzu, bari mu gungurawa zuwa kasan fayil ɗin kuma ƙara wani layin:
ALL ALL=NOPASSWD: /bin/backup
Wannan zai baka damar gudanar da umarnin "Ajiyewa" a matsayin kowane mai amfani, ba tare da kalmar sirri ba. Tsarin wannan abu ne mai sauki, kawai pronox layin tare da "duk allul = nopasswd: / Misali /" kuma ka ƙare tare da umarnin, misali / bin / usr / bin /.
Yanzu, bari mu fara aiki da imel. Imel yana da mahimmanci masu mahimmanci ga yanar gizo, saboda hanya ce ta kiyaye yanar gizo mai tsaro, har ma samfurori na ainihi mutane ne na musamman. Mutane da yawa waɗanda akai-akai Intanet duba imel ta yau da kullun, kuma karɓar kowane nau'in imel na tallace-tallace game da samfuran yanar gizo da sabis da suke zuwa. Akwai ku kaɗan don ɗaukar kowane abu mafi kyau a gare ku.
Da farko, zaku iya biyan sabis na imel wanda zai baka damar aika imel daga yankinku kuma yana buƙatar lambar ƙasa. Akwai sabis da yawa waɗanda ke ba da wannan, kamar Google Werpaspace, SupinBluue, mail, da ƙari.
In ba haka ba, kuna da kyau kashe aikin imel ɗinku a cikin uwar garke daga karce. Ina bayar da shawarar wannan zabin, duk da cewa yana da ƙarin lamba kuma na iya buƙatar rukunin yanar gizo na musamman. Ba za ku sami damar fara uwar garken wasiƙar ba daga kwamfutarka na gidanku, don haka bari mu ci gaba kuma mu fara sabar a cikin girgije kuma mu fara sabar kansa a ciki.
Da farko, shirya saitobi.py tare da umarni mai zuwa:
nano app/settings.py
Inda app shine sunan app ɗin da kuka kirkira tare da farawa.
Sanya maɓuɓɓuka masu zuwa:
SITE_NAME = 'Django App'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_ADDRESS = username@server.com'
EMAIL_HOST_USER = 'username'
EMAIL_HOST_PASSWORD = config['EMAIL_HOST_PASSWORD']
DEFAULT_FROM_EMAIL = '{} <{}>'.format(SITE_NAME, EMAIL_HOST_USER)
Tabbatar canza waɗannan lokacin da kuka shirya don tura app ɗinku, zamu sake komawa wannan daga baya. Saitin Email_Address yakamata ya zama imel da kuke so aikawa, da kalmar sirri (email_hoost_password) ya kamata a saita shi zuwa kalmar sirri da kukaiyar da ka samar da sabar. Ina ɗaukar kalmar sirri daga cikin fayil ɗin saiti don kiyaye shi daga lambar ta amfani da dabaru mai zuwa, sama da waɗannan layin a cikin saiti.py:
import os
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
Bayan haka, na kafa fayil ɗin JSS tare da Config a /etc/config.json ta amfani da Nano kamar haka.
Don shirya fayil ɗin:
sudo nano /etc/config.json
Sanya maɓuɓɓuka masu zuwa:
{
"EMAIL_HOST_PASSWORD": "<some password here>"
}
Za mu ci gaba da shirya fayil ɗin shigar da kuma ƙara duk kalmomin shiga da maɓallan za mu yi amfani da su a cikin app. A yanzu, bari ya hanzarta bincika yadda ake aika imel ta amfani da Python. Da farko, bari mu ƙirƙiri samfuri don imel ɗin tabbatarwa zamu iya aika wa masu amfani da mu, kuma sanya shi a cikin tsarin amfani da mai amfani. Wannan samfurin za'a rubuta a HTML.
nano users/templates/users/verification_email.html
Wannan imel ɗin yana da sauƙi. Yana ɗaukar mahallin mai amfani, rukunin URL ɗin don shafin, kuma an yi amfani da ID na mai amfani da alama wanda ake amfani dashi don tabbatar da imel ɗin mai amfani. Tabbatar da ma'anar URL ɗin URL a cikin saiti.py kafin mu rubuta wasu lambar Python don sanya samfuri. Ci gaba kuma ƙara masu zuwa layin zuwa App / saiti.py, kusa da farko.
SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'
BASE_URL = PROTOCOL + '://' + DOMAIN
A ƙarshe, lokacin da rukunin yanar gizonku ya shirya don Intanet kuma kuna son ayyana yankinku azaman sunan yankin da kuka saya don wakiltar shafin. Wannan sunan ne zaku buga a cikin Wuraren Navbar domin Shiga shafinku. A yanzu, zaku iya barin yanki blank ko yi amfani da mai riƙe. Hakanan zaku so canza shafin_NAM zuwa sunan da kake son bayar da shafin yanar gizonku, na zaɓinku.
Kafin mu aika imel, bari a kirkiro da jan janareta don haka za mu iya samun alamar kunnawa da ba zai ƙare ba. Zamu iya yin wannan ta hanyar gini da shigo da alamar kunnawa da ke kama da masu zuwa. Shirya fayil ɗin:
nano users/tokens.py
Sanya lambar da ke gaba:
from django.contrib.auth.tokens import PasswordResetTokenGenerator
import six
class TokenGenerator(PasswordResetTokenGenerator):
def _make_hash_value(self, user, timestamp):
return (
six.text_type(user.pk) + six.text_type(timestamp)
)
account_activation_token = TokenGenerator()
unsubscribe_token = TokenGenerator()
Wannan janare na asali yana haifar da alama da alama za mu iya aika mai amfani a cikin URL kuma mai amfani zai iya amfani da shi don tabbatar da asusun su da kunna asusun su.
Bayan haka, bari mu ga yadda ake aika imel. Amfani da Nano, shirya masu amfani / email.py.
nano users/email.py
Aika da adireshin imel na HTML zai yi kama da wannan:
from django.contrib.auth import get_user_model
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.contrib.sites.shortcuts import get_current_site
from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils.encoding import force_bytes
from django.core.mail import EmailMultiAlternatives
from django.shortcuts import render
from .tokens import account_activation_token
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.template import Template, Context
from django.conf import settings
import traceback
def send_verification_email(user):
User = get_user_model()
mail_subject = '[{}] Activate your account.'.format(settings.SITE_NAME)
html_message = render_to_string('users/verification_email.html', {
'user': user,
'domain': settings.DOMAIN,
'protocol': 'https',
'uid': urlsafe_base64_encode(force_bytes(user.pk)),
'token': account_activation_token.make_token(user),
})
send_html_email(user, mail_subject, html_message)
Wannan abu ne mai sauki. Muna da amfani da kayan da muke buƙata don aika imel ɗin, suna ba da imel da shaci, da kuma saitunanmu, sannan mu ayyana imel ta hanyar amfani da amfani. Za ku lura ba mu ayyana aikin ba don aika aikin, aika_html_Email, duk da haka, don haka bari mu rubuta wannan lambar da muka riga muka kara wa masu amfani / email.py
def send_html_email(user, mail_subject, html_message):
to_email = user.email
username = user.username
if to_email == '':
return None
unsub_link = settings.BASE_URL + user.profile.create_unsubscribe_link()
html_message = html_message + "<p><a href=\"" + unsub_link + "\" + title=\"Unsubscribe from " + settings.SITE_NAME + " emails\">Unsubscribe</a></p></body></html>"
msg = EmailMultiAlternatives(mail_subject, strip_tags(html_message), settings.DEFAULT_FROM_EMAIL, [to_email], headers={'List-Unsubscribe' : '<' + unsub_link + '>'},)
msg.attach_alternative(html_message, "text/html")
profile = user.profile
try:
msg.send(fail_silently=False)
if not profile.email_valid:
profile.email_valid=True
profile.save()
except:
profile.email_valid=False
profile.save()
Wannan wani hadaddun hadaddun, kuma ba a shirye muke su gudanar da duk wannan lambar ba tukuna. Lura da muke bayyana wata alama ce, hanyar haɗin mai amfani zai iya amfani da shi don cire kariya daga imel ɗinmu. Wannan yana da mahimmanci, saboda masu amfani zasu buƙaci su fice daga imel ɗinmu sai dai idan suna son ganinsu, a kowane lokaci. Hakanan muna ƙara rubutu madadin zuwa saƙonmu, wanda shine saƙon HTML ya cire alamun HTML. Aƙarshe, muna bincika idan imel ɗin da aka aiko, kuma idan ba haka ba, muna yiwa alama a cikin bayanan mai amfani wanda imel ɗinsu bai da inganci.
Bari mu koma baya ga samfuran mai amfani don mu iya yin wannan aikin. Muna buƙatar ayyana wani aiki don ƙirƙirar hanyar haɗi don cire wuri na Boolean don alamar cewa imel ɗin mai amfani ba shi da inganci.
Da farko, ƙara shigo da kaya zuwa saman masu amfani / Model.py
nano users/models.py
# ...
Bayan haka, bari mu ƙara ayyuka zuwa samfurin mai amfani don yin alama kuma duba alamar don kunna ko filin don adana ko filin ya sami nasarar karɓar wasiƙar su. A cikin masu amfani / Model.py
# ...
TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # Inganci na kwanaki 30
Wannan abu ne mai sauki, muna amfani da kayan aiki na zamani, wanda shine kayan aikin zamani, don ƙirƙirar alama wanda zai ƙare bayan wani lokaci, kuma muna amfani da wani aiki don bincika idan yana da inganci. Muna amfani da waɗannan alamun sau biyu, da zarar don tabbatar da imel ɗin, kuma sau ɗaya don haɗin haɗin yanar gizo.
Yanzu da muke da waɗannan, na ƙarshe na aikin da muke buƙatar yi shine a cikin ra'ayoyi. A cikin masu amfani / ra'ayoyi / ra'ayoyi, bari mu ƙara ra'ayoyi don tabbatar da adireshin imel, da kuma cire ba'a.
nano users/views.py
Da farko, ƙara shigo da kaya masu zuwa. Na jefa a cikin 'yan karin don haka ba za mu sake shigo da ƙarin abubuwa ba.
from .email import send_verification_email # Tabbatar shigo da aikin tantance Imel
Wataƙila kuna da wasu daga cikin waɗannan shigo da kaya, amma ba ya cutar da su maimaita su. Za ku buƙaci shigo da aikin tantance imel, da asusun ajiya_keken_Kenivation daga masu amfani.token, a cikin wasu shigo da kaya.
Yanzu, a kasan fayil ɗin, ƙara lambar mai zuwa:
# ba a cire su ba
# In ba haka ba za a juya zuwa shafin shiga
# Aika wasiƙu (buƙatun, mai amfani)
Wannan lambar da yawa ce. Bari mu karya shi. Aikin farko, mai tsabta da sauƙi, ba a bincika mai amfani daga jerin wasiƙar. Aiki na biyu yana kunna imel ɗin su, kuma zaku lura na ƙara aikin da aka ambata, aika saƙonnin. Maraba da ku yi amfani da amfani da samfuri na imel da kuma ma'anar aikin don aika imel mai maraba, Ban taɓa yin jima'i ba. Aikin ƙarshe da na jefa a cikin mahimmanci, saboda imel ɗin kunnawa ya ƙare. Sabili da haka, muna buƙatar sake buɗe email na kunnawa wasu daga lokacin. Zamu iya amfani da tsari na asali don wannan, kuma kira aikin don aika imel ɗin tabbatarwa. Kafin muyi wannan, bari mu tabbatar an aiko shi da fari, ta hanyar ƙara kiran aiki zuwa ga rajista. Sanya wannan layin kafin jujjuyawar a cikin ra'ayin rajistar, yanke rajistar, a cikin masu amfani / ra'ayoyi / ra'ayoyi.
nano users/views.py
# ... (Bayan) Def rajistar (buƙatu):
# ... (kafin) juyawa (
Ba kwa buƙatar ƙara layin farko da na ƙarshe a cikin wannan lambar Snippet, kawai Tabbatar cewa duba rajista yana aika imel ɗin tabbatarwa zuwa mai amfani. Ya kamata yayi kama da wannan:
# ... shigo da kaya
send_verification_email(user) # Tabbatar ƙara wannan layin!
Yanzu, za mu buƙaci ƙara fom don sake saita imel ɗin. A cikin masu amfani / Forms.py, ƙara mai zuwa fom:
# ... (shigo da kaya)
Hakanan zamu buƙaci samfuri daidai da wannan sake saita hanyar kunnawa. Bari mu ƙara wannan samfuri a. Shirya fayil ɗin:
nano users/templates/users/resend_activation.html
Next, ƙara masu zuwa zuwa fayil ɗin.
Whew, wannan abu ne da yawa! Yanzu, lokacin da muka tura lambar zuwa ga uwar garkenmu, zamu iya aika imel na HTML kuma kunna asusun mai amfani tare da danna imel. Hakanan muna so mu aiko da imel mai sauƙi imel, don haka bari mu ga yadda ake yin hakan. Komawa cikin masu amfani / email.py, ƙara wannan lambar:
def sendwelcomeemail(user):
User = get_user_model()
html = open('{}/users/welcome_email.html'.format(settings.BASE_DIR)).read()
subject = 'Welcome to ' + settings.SITE_NAME + ', {{ username }}!'
template = Template(html)
subjtemplate = Template(subject)
context = Context({'username': user.username, 'base_url': settings.BASE_URL, 'model_name': 'Daisy Holton, 'site_name': settings.SITE_NAME})
renderedtemplate = template.render(context)
subjcontext = Context({'username': user.username})
subjrenderedtemplate = subjtemplate.render(subjcontext)
send_html_email(user, subjrenderedtemplate, renderedtemplate)
Hakanan, muna buƙatar samfuri don sanya duk waɗannan bayanan. A kan yanar gizo na, samfuri yana kama da ƙasa, amma ana maraba da ku don tsara shi Koyaya.
Ka lura cewa bamu da alamun rufewa ko alamun HTML, saboda muna ƙara waɗannan a lokacin da muke ƙara hanyar haɗin HTML ba tare da izini ba. Waɗannan suna da mahimmanci, amma ba ma son ayyana su sau biyu.
Don haka menene na gaba? Mun zo da nisa. Da gaske, ya kamata mu kasance a shirye don tura shafin zuwa sabar. Zamu iya ƙara hanyar (agogon_requirir a ciki kuma ku sami ra'ayoyinmu, aika alamun mai amfani imel, da bayanan mai lasisi, wanda shine tushen abin da shafin yanar gizo yake buƙata don kasancewa ya kasance mai dacewa. Zamu ƙara fasali mafi amfani, sannan mu gina tushen tura lambar mu zuwa uwar garken mai nisa, saita sama uwar garken mail, da kuma matattara don sanya shafin mu amintacce kuma ya dace.
Hakanan zamu buƙatar sake saita kalmar sirri ta kalmar sirri, don haka bari mu ƙara hakan a cikin sauri. An gina Django a cikin kalmar sirri sake saiti ya karye a wasu ayyuka, amma za mu kalli yadda ake rubuta namu ra'ayi, siffofin imel, siffofin, da kuma URL. Ga abin da ra'ayi yake kama, a cikin masu amfani / ra'ayoyi / ra'ayi.py
# ... shigo da kaya
Ana gina wannan fom ɗin a cikin Django, amma zamu buƙaci samfuri don tabbatar da sake saitin kalmar sirri, masu amfani / masu amfani / masu amfani / ENSESSET_CONFML
Hakanan muna da samfuri don aika imel kalmar sirri ta kalmar sirri, tare da tsari mai sauƙi, a cikin masu amfani / shaci / masu amfani / kalmar sirri / Kalmomi_html
The template for the email itself is simple, it is a basic HTML file rendering a link to reset the password, in users/templates/users/password_reset_email.html. Django zai fassara wannan fayil ɗin ta atomatik.
Hakanan muna buƙatar ƙarin samfuri biyu. Na farko shine tabbatar da cewa an aika da imel. Views ga waɗannan sun riga sun kasance a Django, saboda haka muna buƙatar magance su cikin URLs.0. Wannan samfuri is located ne a masu amfani / Samfura / masu amfani / kalmar sirri_done.html
Kuma a ƙarshe, tabbatar da cewa sake saitin kalmar sirri ya cika, masu amfani / masu amfani / masu amfani / kalmar sirri / kalmar sirri_RTML
Yanzu, muna buƙatar samfuran URL don waɗannan ra'ayoyin. A cikin masu amfani / URLS.py, ƙara abubuwan URL masu zuwa:
# ... URLs na baya anan
Shaci huɗu, wannan yana da yawa! Amma yanzu muna iya tabbatar da sake saita kalmar sirri ta mai amfani duk lokacin da muke buƙatar zuwa, duka daga mai binciken gidan yanar gizo.
Na fahimci wannan lamba ce da yawa. Idan yayi kadan kadan a kanka, hakan yayi kyau. Za ku inganta, fahimtar ku za ku inganta, kuma zaku sami cancanta tare da lambar da ba ta da ewa ba. Idan kun rasa gaba ɗaya, Ina ba da shawarar dawo da wannan software daga baya bayan aiki akan wani poald korar hanya zuwa kan layi. Waɗannan yawanci suna da kyauta don farawa, kuma zasu bishe ku ta hanyar duk abin da kuke buƙatar samun nasara idan kun dawo cikin wannan aikin. Idan ka ji kamar ka shirya don ci gaba, karantawa, na gaba, za mu rufe ka ta hanyar tura ka ta amfani da bash don haka zaka iya kafa sabon shiri tare da wasu umarni masu sauƙin umarni.
Abu na ƙarshe da muke buƙatar aikatawa kafin tura zuwa uwar garken nesa yana sa rukuninmu kaɗan. Za ku lura cewa hangen nesa ne kawai ya ɗauki sunan mai amfani kawai da kalmar wucewa, kuma babu tabbataccen tabbaci ko lambar lokaci ɗaya. Wannan sauƙin gyara, kuma tare da lambar iri ɗaya, zamu iya sa rukunin yanar gizonmu Aika saƙonnin rubutu kuma ma ya zama mai amsawa ga saƙonnin rubutu da aka aika zuwa uwar garke. Don farawa, za mu koma cikin ƙirar mai amfani kuma mu ƙara sigogin lokaci wanda zai wakilci kowane shiga. Hakanan zamu ƙara na musamman, mai jujjuyawa mai ganowa ga samfurin mai amfani wanda za'a yi amfani da shi don ƙara ƙarin tsaro a cikin shiga. Gyara ƙayyadaddun mai amfani, masu amfani / Model.py, ƙara lambar masu zuwa:
# Tabbatar shigo da UUID, Timesamp da URL Generator (juyawa)
# Sanya wannan lambar anan
# Kuma ƙara wannan aikin
TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # Ingantacce don 3 mins
Tabbatar da masu amfani / samfurori.py kama da wannan, banda comments (lambar akan layi tare da #). Yanke wannan, yana da sauki. Muna da fewan shigo, lokaci-lokaci muna da amfani mai amfani wanda zai iya samar da tabbataccen lambar kuma tabbatar da shi sau ɗaya, kuma ba ƙarami fiye da wani adadin sakan. Hakanan muna amfani da UUID, wanda shine keɓaɓɓiyar mai ganowa wanda ke gano mai amfani a cikin sa hannu na alamar, kuma a cikin URL inda aka aika zuwa mai amfani. Za mu yi amfani da wannan katun tarihin zamani don gina tabbataccen ra'ayi biyu. Kafin mu yi wani abu, bari mu gudanar da ƙaura don haka ana sabunta samfuran mai amfani. A cikin directory tare da gudanarwa.py, gudanar da waɗannan umarni don yin kuma kammala ƙaura.
source venv/bin/activate
python manage.py makemigrations && python manage.py migrate
Wannan yana da mahimmanci saboda duk lokacin da muke yin canje-canje ga samfuran, muna buƙatar ƙirƙirar allunan da sabunta bayanan tare da tsararren bayanai kafin mu iya yin amfani da samfuran.
Bayan haka, bari mu inganta ra'ayinmu don juyawa zuwa ingantaccen gani na sakandare. A cikin masu amfani / ra'ayoyi / Views.py, cire aikin shiga da juyawa zuwa URL ɗin da muke samu kawai a cikin samfurin mai amfani.
# ... shigo da kaya
if user and user.profile.can_login < timezone.now(): # Lura cewa yanzu muna bincika idan mai amfani zai shiga ciki
# Cire aikin Auth_ogin da yake nan
return redirect(user.profile.create_auth_url()) # Ka lura muna juyawa zuwa sabon URL a nan
else: # Idan mai amfani ba ya amfani da amincin da yawa, kawai shiga su a ciki.
else: # Idan shiga bai yi nasara ba,
user = User.objects.filter(username=username).first() # Wannan bangare ne inda muke sabunta bayanan masu amfani
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Don haka ba za su sake shiga ba don secondsan mintuna kaɗan
Don haka wannan kyakkyawa ne mai sauƙi, yanzu muna da hanyar juyawa zuwa ga tabbataccen abu game da gani yayin da muke ƙirƙira shi. Hakanan muna da fallback idan mai amfani bai kara lambar waya ba. Za mu ƙara ainihin ra'ayi don ƙara lambar waya nan da nan kuma shiga tare da saƙo na rubutu ba da jimawa ba.
Da farko, muna buƙatar hanya mai sauƙi don aika saƙon rubutu daga lambarmu. Don yin wannan, zamu iya zaba daga APIs da yawa, amma wanda ya fi sauƙi a cikin ra'ayi na Twilio. Suna kuma ba da farashi mai kyau don ƙananan ayyukan, da kuma rangwamen bulk. Irƙiri lissafi a kan Twilio.com, cika wasu bayanai game da aikinku, sayen lambar waya, da kwafa makullin API zuwa saitun ku.py. Bayan haka, ƙara wannan lambar a ƙarƙashin sabon fayil, masu amfani / sms.py.
nano users/sms.py
# Shigo da duk abubuwan da suka dace
# Wannan lambar tana aika rubutu tare da Twilio
# Aikin mataimaki don samun lamba tare da lambobi da yawa
# Aika rubutu don tabbatar da mai amfani
# Aika mai amfani kowane rubutu tare da wannan aikin
# Tabbatar da lambar tare da wannan aikin
# Auyu lokaci
Tabbatar canza saitunan ku yadda yakamata, ƙara waɗannan layin tare da makullinku:
# Tabbatar kwafin waɗannan daga dashboard ɗinku na Twilio
AUTH_VALID_MINUTES = 3 # Yawan mintuna The Shafin TFA yana aiki sau ɗaya da sauri
Da farko, zamu bukatan samar da kayan kwalliyar mu biyu. Gyara masu amfani / Forms.py, ƙara lambar masu zuwa.
# ... shigo da kaya
# Nau'i don shigar da lambar wayarmu
# Wani nau'i don ingantacce
Bayan haka, bari mu ƙirƙiri ra'ayoyin a cikin masu amfani / ra'ayoyi
# ... shigo da kaya
Hakanan zamu buƙaci samfura don waɗannan ra'ayoyin. Bari mu kara samfurin MFA da farko.
nano users/templates/users/mfa.html
Sanya wannan lambar HTML zuwa samfuri
Wannan kyakkyawa ne bayyananne. Forment ɗin yana aika da lambar ko lambar talauci, kuma zaku lura da ganin gani idan mun sami lambar fãtarwa. Sannan muna da maballin biyu na Buttons, kuma ta wannan hanyar za mu iya aika lambar tare da maɓallin. Bayan haka, zamu ƙara tsari mai sauƙi don ƙara lambar waya.
nano users/templates/users/mfa_onboarding.html
Sanya waɗannan HTML:
Wannan fom ɗin yana da sauƙi, kawai yana kunna hanyar lambar wayar da muka ƙirƙira kuma mu ba mai damar amfani da lambar waya.
Wannan yayi kyau sosai! Muddin komai an tsara shi da kyau, ya kamata mu iya aika saƙonni, kuma mu shiga mai amfani da lambar wayar su da zarar mun ƙara tsarin URL. Abu na ƙarshe da muke buƙatar saita bayanan bayanin martaba don haka za mu iya tabbatar da zaɓin wayar ba tare da shiga saƙonnin rubutu nan gaba ba.
Bari mu kara bayanin martaba ga masu amfani / ra'ayoyi. Wannan ra'ayin zai sabunta Bio na mai amfani, imel, sunan mai amfani, da lambar waya, da kuma ba mu damar bada tabbataccen masana'antu da yawa. Na farko, zamu bukaci ƙarin fom biyu a cikin masu amfani / siffofin.py
# ... shigo da kaya
Bayan haka, zamu iya ƙirƙirar ra'ayi don amfani da waɗannan siffofin. Shirya masu amfani / ra'ayoyi kuma ƙara a cikin kallo.
# Sanya wadannan shigo da kaya
Hakanan muna buƙatar samfuri don wannan ra'ayi.
nano users/templates/users/profile.html
Za ku lura da wannan tsari ne mai sauƙi mai sauƙi, amma yana da wasu Javascript a ciki wanda ke amfani da abin da ke cikin fam ɗin kamar yadda aka sabunta abubuwan da ke cikin hanyar. Wannan yana da amfani a samu, saboda haka kuna iya yin gyara ba tare da danna ƙaddamar ba a kowane lokaci.
Bayan haka, muna buƙatar URLS wanda ke wakiltar duk waɗannan ra'ayoyin a cikin masu amfani da URL masu amfani. Shirya masu amfani / Urls.py kuma ƙara wannan lambar:
# ... Lambar da ta gabata, shigo da kaya
# ... Abubuwan URL da muka riga muka shiga, ƙara layin uku na gaba
Yanzu lokaci ne mai kyau don gwada aikinmu. Amma da farko, bari mu gudanar da wani madadin.
backup
Kuma gudanar da sabar. Kafin mu tura zuwa uwar garken Linux, yana da kyau a ba da tabbataccen gasa biyu akan asusun. Zamuyi wannan zuwa URL ɗinmu URL ɗinmu, / masu amfani / bayanin martaba /, da kuma bincika akwatin don ba da damar tabbatarwa, sannan ƙaddamar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayarmu, sannan gabatar da lambar wayar mu.
python manage.py runserver localhost:8000
Ziyarci shafin yanar gizon ta hanyar zuwa mai binciken gidan yanar gizonku, Ina amfani da Google Chrome a cikin wannan misalin, da shigar da URL HTTPS: // localhost: 8000 / lissafi / Profits / Profits / Profits / bayanin martaba /
Za ku iya shiga idan ya cancanta da kuma baiwa ingantacciyar masana'antu biyu.
Wannan aikin yana buƙatar sabar don gudanar da aiki don haka zai iya aika wasiƙar. Amma da farko, muna buƙatar hanyar ganin kurakurai. Za ku lura cewa idan kun gudanar sabar a yanayin Debug, tare da saiti.deBul daidai yake da gaskiya, uwar garken yana nuna kurakurai ta atomatik. Don nuna kurakurai ba tare da amfani da yanayin Dobug ba, wanda ba shi da haɗari akan uwar garken samarwa, ya kamata mu ƙara ra'ayi don shi. Mafi mahimmancin kurakurai da muke buƙata mu iya sarrafawa sune:
Kuskure 500 - Matsala da lambarmu Kuskure 404 - shafi wanda ba'a samo shi ba (URL ta karye) Kuskure 403 - izini ya musanta kuskure
Bari mu kara sabon app don magance wadannan kurakuran, ana kiranta kurakurai.
python manage.py startapp errors
Sanya wannan zuwa saitunan.py kamar yadda muka yi kafin, a cikin shigar da saiti, da fara, inda app shine sunan aikin Django.
handler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'
Wannan shine duk abin da muke buƙata baicin ra'ayoyin kuskure, shaci da ɗan sabin hattara. Bari mu ayyana wadanda suke haka:
# Irƙiri ra'ayinku anan.
Bayan haka, bari mu ayyana na tsakiya don kula da waɗannan kurakuran. Zamu yi wannan ta farko kara wa tsakiyar aiki_Clles a cikin saiti.py, tare da sunan na tsakiyar aikinmu.
# ... Akeci na Karshe
Bayan haka, bari mu ƙara na serview.
from threading import local
import traceback
from django.utils.deprecation import MiddlewareMixin
_error = local()
class ExceptionVerboseMiddleware(MiddlewareMixin):
def process_exception(self, request, exception):
_error.value = traceback.format_exc()
def get_current_exception():
try:
return _error.value
except AttributeError:
return None
def set_current_exception(exception):
try:
_error.value = exception
except AttributeError:
print('Attribute error setting exception.')
Muna ƙara aiki don samun banbanci ta yanzu ta hanyar amfani da gida na cikin gida, wanda ke taimaka mana gano kowane kurakurai a lambar mu. A cikin sharuddan shaci, muna buƙatar ɗaya, saboda muna ƙayyade taken a cikin kallo. Template kawai yana buƙatar sanya taken da "gano", kuskurenmu sun lalace daga mahallin.
nano errors/templates/errors/error.html
Wannan shine mafi saukin samfurin mu tukuna, amma wannan shine sauƙin ganin kurakuran a cikin aikinmu. Bayan haka, bari mu kashe debug a saiti.
nano app/settings.py
Nemo wannan layin inda aka saita zuwa gaskiya, kuma canza shi ga ƙarya
DEBUG = False
Ci gaba da madadin app yanzu. Muna shirye don tura zuwa sabar Linux mai nisa, kuma mu ci gaba da ƙara fasali daga can.
sudo backup
Kafin mu sanya wannan lambar zuwa sabar, ya kamata mu ɗauki cewa akwai wasu batutuwan tare da lambar. Ya danganta da karar, shafukan da suka yarda da bayanan da aka saka a gare su zasu sami batutuwa tare da wahalar cire spam. Wannan bai kamata ya faru nan da nan ba, amma idan yana faruwa, za mu bincika yadda ake amfani da kayan aiki ta atomatik.
Kallon abubuwan da muka tabbatar da manuffar da muka yi nazari, a samarwa, abubuwa na iya zama daban. Ka lura da yadda muke ƙi iyakance hanyoyin shiga, kuma ya ƙare alamomi. Idan mutum-mutumi suna samun damar shiga shafin, ingantaccen abu biyu na iya zama da wahala kamar yadda za su iya shiga lambobin a lokaci guda mai amfani yake. Don magance wannan, bari mu yi amfani da ƙira a cikin ƙirar mai amfani, yana bayyana yadda muke hulɗa tare da tushen tabbatacciyar da lambar waya. Za mu kuma ƙara zaɓi don gaskata da imel. Fara ta hanyar gyara samfurin mai amfani tare da Nano.
nano users/models.py
Wannan shine abin da samfurin da muke kara ya kamata yayi kama. Ba ma bukatar kowane hanyoyi, kawai masu canji don adana ID, mai amfani, ƙarewa, tsawon ƙoƙari a waya ko imel).
# Alamar alama ta kasance ta shiga cikin gidan yanar gizon
Bari kuma mu ƙara gata ga mai amfani, kuma zamu saita shi da hannu a yanzu, kafin a yi ƙaura don ƙirƙirar masu amfani ta atomatik. A cikin samfurin mai amfani, ƙara wannan layin a cikin bayanin martaba:
vendor = models.BooleanField(default=False)
Kamar yadda tare da kowane canje-canje ga bayanan bayanai, muna buƙatar yin ƙaura kuma mu yi ƙaura ajiyar bayanan duk lokacin da muka shirya fayil ɗin model.py a Django. Ka tuna, yin wannan muna amfani da tushen da farko (idan ba'a yi amfani da shi tuni tun lokacin da tashar ta kasance a buɗe) sannan Python ya buɗe.py don yin ƙaura da ƙaura.
cd project-directory-you-named # (Idan ana buƙata)
A yanzu, zaku iya yin lissafin duk wani asusun da kuka kirkira yayin da dillalai ta amfani da harsashi.
python manage.py shell
from users.models import Profile
p = Profile.objects.get(user__username='Charlotte')
p.vendor = True
p.save()
exit()
Yanzu, bari mu warware gaskiyar amincinmu don amfani da wannan alamar. Da farko, muna buƙatar canza kayan aikin MFA na MFA. Amfani da Nano,
nano users/mfa.py
from django.utils import timezone
import random
import datetime
from django.conf import settings
from feed.middleware import get_current_request
from django.contrib import messages
from .email import send_html_email
import traceback
from .models import MFAToken
account_sid = settings.TWILIO_ACCOUNT_SID
auth_token = settings.TWILIO_AUTH_TOKEN
source_phone = settings.PHONE_NUMBER
def send_text(target_phone, text):
from twilio.rest import Client
try:
client = Client(account_sid, auth_token)
if len(target_phone) >= 11:
message = client.messages.create(
to=target_phone,
from_=source_phone,
body=text + ' Text STOP to cancel.')
except:
messages.warning(get_current_request(), 'There was an error sending the message.')
print(traceback.format_exc())
def get_num_length(num, length):
n = ''
for x in range(length):
n = n + str(num)
return int(n)
def send_verification_text(user, token):
length = user.profile.verification_code_length
code = random.randint(get_num_length(1, length), get_num_length(9, length));
token.token = code
token.expires = timezone.now() + datetime.timedelta(minutes=settings.AUTH_VALID_MINUTES)
token.save()
send_user_text(user, "Your verification code for {} is {}".format(settings.SITE_NAME, str(code)))
def send_verification_email(user, token):
length = user.profile.verification_code_length
code = random.randint(get_num_length(1, length), get_num_length(9, length));
token.token = code
token.expires = timezone.now() + datetime.timedelta(minutes=settings.AUTH_VALID_MINUTES)
token.save()
send_html_email(user, "Your verification code for {} is {}".format(settings.SITE_NAME, str(code)), "<p>Dear {},</p><p>Your verification code for {} is {}. Thank you for using this code to secure your account.</p><h2>{}</h2><p>Sincerely, {}</p>".format(user.profile.name, settings.SITE_NAME, str(code), str(code), settings.SITE_NAME))
def send_user_text(user, text):
send_text(user.profile.phone_number, text)
def check_verification_code(user, token, code):
token.attempts = token.attempts + 1
profile = user.profile
result = (token != None and code != '' and token.token == code and (token.expires > timezone.now()) and token.attempts <= settings.MFA_TOKEN_ATTEMPTS)
if token.attempts < 3 and result:
profile.verification_code_length = 6
elif token.attempts > 1 and not result:
profile.verification_code_length = profile.verification_code_length + 2
if profile.verification_code_length > settings.MFA_TOKEN_LENGTH: profile.verification_code_length = settings.MFA_TOKEN_LENGTH
token.save()
profile.save()
return result
# Gaskantawa da mai amfani ta amfani da imel ko lambar waya
token = MFAToken.objects.filter(uid=username, expires__gt=timezone.now() + datetime.timedelta(seconds=30)).order_by('-timestamp').last() # Tace alama ta hanyar darajar ta wuce a cikin URL (UUID)
if not token: token = MFAToken.objects.create(user=User.objects.filter(profile__uuid=username).first(), uid=username, expires=timezone.now() + datetime.timedelta(seconds=115)) # Idan ba a ƙirƙiri wannan zaman ba, ƙirƙirar shi
user = User.objects.filter(id=token.user.id).first() # Samu mai amfani daga alama
if not user and request.user.is_authenticated: return redirect(reverse('feed:home')) # Idan sun aminta su, shiga su
if not user: raise PermissionDenied() # Musun idan ba'a samu mai amfani ba
if not user.profile.enable_two_factor_authentication and user.is_active and user.profile.check_auth_token(usertoken, token): # Duba alamar Auth
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Shiga cikin mai amfani idan ba a riga sun shiga ba
user.profile.mfa_expires = timezone.now() + datetime.timedelta(minutes=settings.LOGIN_VALID_MINUTES) # Saita karewa a kan amincin su Mult
return HttpResponseRedirect(next if next != '' else reverse('landing:landing')) # Sake turare mai amfani zuwa shafi na gaba
if not user.profile.mfa_enabled: # Duba idan an kunna MFA
if not check_verification_time(user, token): # Duba lokacin
user.profile.mfa_enabled = False # Share lambar wayar
user.profile.enable_two_factor_authentication = True # Sanya MFA
user.profile.phone_number = '+1' # Musaki lambar wayar
user.profile.save() # Ajiye bayanin martaba
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Shiga mai amfani idan ba'a kunna MFA ba
if request.method == 'POST' and not fraud_detect(request, True): # Idan bukatar bukatar post
form = TfaForm(request.POST) # Instantate tsari
code = str(form.data.get('code', None)) # Samu lambar
if code and code != '' and code != None: # Tabbatar ba komai
token_validated = user.profile.check_auth_token(usertoken) # Duba alamar Auth
is_verified = check_verification_code(user, token, code) # Duba lambar
if token_validated: # Idan komai
if is_verified: # Yana cikin tsari
user.profile.mfa_enabled = True # Kunna MFA (idan ba a riga an kunna shi ba)
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Shiga cikin mai amfani
for key, value in request.GET.items(): # Gina tambari don sigogi na gaba (idan akwai)
return HttpResponseRedirect(next) # Sauya ra'ayi
elif not token_validated: # Idan alama ba ta da inganci
if p.mfa_attempts > 3: # Idan akwai kokarin da yawa
if form.data.get('send_email', False): # Aika imel (ko rubutu)
# Sanya form (don samun buƙatun)
Lokacin da muke kara a cikin wannan lambar, a tabbatar an shigo da aikin don aika imel. A saman fayil ɗin, ra'ayoyin mai amfani (tare da wasu masu shigo da kaya), ƙara
from .mfa import send_verification_email as send_mfa_verification_email
Yanzu, muna bukatar mu rubuta wannan aikin kafin kowane ɗayan wannan zai yi aiki. Yakamata ya mika aikin imel ɗinmu, kuma kawai aika da imel ga mai amfani tare da lambar tabbatarwa.
nano users/mfa.py
def send_verification_email(user, token):
length = user.profile.verification_code_length
code = random.randint(get_num_length(1, length), get_num_length(9, length));
token.token = code
token.expires = timezone.now() + datetime.timedelta(minutes=settings.AUTH_VALID_MINUTES)
token.save()
send_html_email(user, "Your verification code for {} is {}".format(settings.SITE_NAME, str(code)), "<p>Dear {},</p><p>Your verification code for {} is {}. Thank you for using this code to secure your account.</p><h2>{}</h2><p>Sincerely, {}</p>".format(user.profile.name, settings.SITE_NAME, str(code), str(code), settings.SITE_NAME))
Don haka wannan yana aiki mai girma, yanzu muna da tsarin tabbatar da ingantaccen kayan masana'antu wanda ya dogara da lambar waya ko imel don shiga. Wadannan na iya zama spammers, robots ko duk wanda ba ya nufin yana da kyau saboda aikinmu. Dubi ra'ayi da na yi don saka idanu masu amfani da yanar gizo:
# shigowa da kaya
from .tests import is_superuser_or_vendor # Muna buƙatar ƙirƙirar wannan gwajin
# Samun jerin masu amfani
return render(request, 'users/users.html', { # Dawo da masu amfani a cikin samfuri
Ka lura cewa wannan lambar tana amfani da gwaji, zamu buƙaci sanar da wannan gwajin a cikin fayil na gwaji kuma mu shigo da shi. Gyara masu amfani / Gwaji.py, bari mu ƙirƙiri gwajin.
def is_superuser_or_vendor(user):
return user.profile.vendor or user.is_superuser
Wannan yana cikin haɗin kai tare da masu amfani / masu amfani.html, wanda ya yi kama da wannan:
Lura cewa samfuri ya haɗa da wani samfuri, masu amfani /mai amfani.html. Lokacin amfani da samfuri wanda ke da subtemplate kuma ba amfani da mai wucewa, kyakkyawan ra'ayi don ƙara underscore () Kafin sunan fayil ɗin don fadada, don bambance samfuran samfura.
Lura cewa wannan mai yawa ne da yawa jinja, ba za ku iya samun duk waɗannan masu canji ba. Amma wannan shine lambar da ta yi kama.
<small># {{mai amfani.id}}} Ç / Small>
Muna kuma buƙatar wani a cikin tsari, juyawa_html. Wannan samfuri ya zama nau'i wanda zai ba mu damar shafin yanar gizo ko mai amfani yana aiki.
Hakanan zamu buƙaci ƙara ra'ayi don kunna aikin mai amfani, kuma tsarin URL da ya dace. Yayinda muke kai, bari mu ƙara ra'ayi don share mai amfani idan muna buƙatar hakan.
# Shigowa da kaya
success_url = '/' # Redirect akan URL Nasara
def test_func(self): # Gwaji idan mai amfani shine Superuser kuma yana da izinin share
Duk da yake wannan yana da amfani yayin da ya cancanta, share mai amfani kada ya zama dole mafi yawan lokaci, zamu iya juyawa ga ganin masu amfani waɗanda suke ziyartar shafin idan muna bukatar su kore su.
Tsarin URL mun ƙara kama da wannan. Tare da Nano, shirya masu amfani / urls.py kuma ƙara waɗannan layin:
nano users/urls.py
Lines ya kamata ya shiga cikin jerin hanyoyi a ra'ayoyin mai amfani, kafin ƙarshen "] amma bayan farkon" [".
# ...
# ...
Yanzu, tabbatar cewa ajiye shafin don ku iya saukar da shi akan sabar yanar gizo zamu ci gaba da aiki. Daga layin umarni,
sudo backup
Yanzu ana tallafawa rukuninmu.
Don haka yanzu muna da fewan abubuwa masu amfani. Amma me game da babban hoto anan? Wannan lambar har yanzu ba ta isa ba daga Intanet, ba mu da uwar garken wasiƙunmu ba tukuna, kuma muna buƙatar faɗaɗa aikace-aikacenmu don taimaka mana bincika rukunin yanar gizon, tare da ingantattun halaye don ingantaccen masu amfani da masu amfani.
Za mu samu ga wannan duka. Abu mafi mahimmanci a yanzu zai zama kawai samun wannan lambar akan layi, wanda za mu iya yi da ƙananan layin bash a kan uwar garken Ubuntu. Kuna buƙatar yin hayan uwar garken don wannan ko da yake, sai dai idan kuna da sabar a gida da kuma biyan kuɗi na yanar gizo na kasuwanci wanda zai baka damar buɗe tashar jiragen ruwa. Ni da kaina na sa gidan yanar gizon na HP Z440 wanda aka sanya a cikin gidaje na, amma yawanci mai rahusa ne ga ainihin uwar garken (VPS).
Ka tuna cewa lambar da muke gudana yanzu ba ta da bakin ciki, ana buƙatar kiyayewa da haɓaka kafin mu shirya amfani da abin da ya kamata mu gina samfurin. Tabbatar kula da abin da kuke yi tare da Intanet, ka tabbata idan ka tura wannan rukunin yanar gizon a yanar gizo a kan sabar da ba'a so. Wannan wataƙila ba matsala ce da farko, amma za mu bincika mafita da yawa don magance wannan, gami da ilimin injiniya, hankali da hangen nesa. Lokacin da ya zama matsala, bincika gaba a wannan rubutun don mafita.
A cikin sharuddan hayar a cikin VPS, akwai wurare da yawa da zaku iya zuwa. Google Cloud yana da sabar VPS, Ionos, Kamater, Amazon Amazon, da kuma ƙarin masu ba da izinin Serveragearfin girgije waɗanda zasu dace da bukatunmu.
Kuna buƙatar danna Ta hanyar siffofin su kuma zaɓi shirin don farawa. Kuna iya tafiya tare da wani tsari na asali tare da kowane mai bada sabis, amma tabbatar cewa mai ba da tashar jiragen ruwa (wannan ya kamata Port 587 da tashar jiragen ruwa 25), wasu masu ba da labari suna toshe waɗannan tashar jiragen ruwa. Ya zuwa yanzu na sami kwarewa sosai tare da ionos da Kamatera, duka biyun za su ba ni damar aika imel mara iyaka kuma farashinsu yana da arha.
Za ku haɗa zuwa sabon uwar garken ku akan yarjejeniya da ake kira SSH ko amintaccen harsashi, wanda ke ba ku damar dubawa mai nisa tare da uwar garken daidai, daga kwamfutarka. Lokacin da ka kafa sabar, mai ba da mai ba da sabis zai iya ba ka tambayar ka ƙara maɓallin ssh, ko kuma zasu baka sunan mai amfani da kalmar sirri. Makulfin SSH shine yadda zaku shiga uwar garken daga layin umarni don shirya lambar. Yi amfani da zaɓuɓɓukan SSH-keygen ɗin don ƙirƙirar maɓallin SSH.
ssh-keygen
Ajiye fayil ɗin kuma goge shi idan kuna buƙatar, yana da kyau a juya maɓallan SSH ɗinku idan baku riga ba. Yanzu, zaku iya amfani da wannan umarnin don ganin maɓallin SSH ɗinku. Za ku so ku kwafa shi zuwa uwar garken nesa don haka zaka iya amfani dashi don gaskatawa.
cat ~/.ssh/id_rsa.pub
Idan baku sami damar ganin maɓallin SSH lokacin da buga wannan umarnin ba (SSH-RESH REA AAA ") Lambar SSH-RSA AAA") don haka ina ba da shawara don amfani da su.) Lambar da za ta fara amfani da su.) Lambar da za ta iya samar da ita.
ssh-keygen -t rsa -b 4096
Irƙiri daga cikin vps Gudun Ubuntu, duk da haka kuna shirin yin wannan. Da zarar kun kirkiri VPS ta danna cikin siffofin da ke kan shafin yanar gizon da ke bayarwa (Kamatera.com, ionos.com, da kama da adireshin SSH tare da adireshin IP ɗinku (adireshin da yayi kama da xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx. Hakanan kuna buƙatar kula da sunan tsohuwar mai amfani a kan sabar da muka ƙirƙira, misali, Ubuntu.
ssh ubuntu@XX.XX.XX.XX
Za a iya tambayar ku don kalmar sirri, idan an tambayi ku don kalmar sirri, shigar da shi. Ba za mu fara ba da cikakken mai amfani da kuma ƙara maɓallin ssh kuma ba za mu fara ba da sabon mai amfani.
Bari mu fara da ƙara sabon fayil ɗin Sshd_config, wanda ya gaya wa sabar yadda ake amfani da SSH.
nano sshd_config
# Wannan shine fayil ɗin SSHD SSHD SSHD. Gani
# Sshd_config (5) don ƙarin bayani.
# Wannan sshd an tattara shi da hanya = / usr / sashen / usr / sbin: / usr / sbin: / SBIN: / USR / Wasanni
# Dabarun da aka yi amfani da su don zaɓuɓɓuka a cikin tsohuwar Sshd_config a cikin
# Bude shi ne don tantance zaɓuɓɓuka tare da ƙimar tsohuwarsu a ina
# mai yiwuwa, amma ka bar su yayi sharhi. Zaɓuɓɓukan da ba na al'ada ba
# tsoho darajar.
# Port 22
# Adireshin adireshi
# SaWanADDress 0.0.0.0
# SaWanADDress ::
# Mai Hadiyya / ETC / SSH / SSH_Host_Rsa_key
# Mai Hadiyya / ETC / SSH / SSH_Host_ECDSA_KEKE
# Mai tsaro / sauransu / ssh_host_ed25519_Kake
# Ciphers da keying
# Rakakiit dattara babu
# Masauki
# Syslogfilility Auth
# Liblevel Bayo
# Tabbatar:
# Logingracetime 2m
# Izini ya hana-kalmar sirri
# Stristmodes Ee
# Maxauhtries 6
# Maxysions 10
# Yi tsammanin .Shssh / Izini_keys2 da aka watsa ta hanyar tsoho nan gaba.
# Sakatareprinclesplats
# Izni barbelScommad
# Mawallaki synSomarSer Babu
# Don wannan don aiki zaku kuma bukaci maɓallan uwar garken in / Etc / ssh / ssh_known_hosts
# Baƙon izini ba
# Canza zuwa Ee Idan baku dogara da ~ / .Sh / sanannen_Hosts don
# Mai tallafawa
# IbaserWallserkhallyn
# Kar a karanta sunan mai amfani ~ / .rhamsts da ~ / .shostes fayil
# Rashin sani Ee
# Don musaki tunon rubutu kalmomin shiga rubutu, canji zuwa nan!
# Permitempstordes babu
# Canja zuwa Ee don ba da damar Kalubalen Kalubale (Bukatawar Batun tare da
# Wasu sashen sashen da zaren)
# Zaɓuɓɓukan Kerberos
# Kerberosactichictichencation babu
# Keerberosorlockeldw Ee
# Kerberosticketickle Ee
# KerberosgetafstoKen ba
# Zaɓuɓɓukan GSSSPI
# Gssapaiuwance
# GSSSAPLOSOOANUUUUPREDS Ee
# Gassapristicsapficeck i
# GSSAPIKAPIKAPIKAPIKEDEX BI
# Saita wannan zuwa 'Ee' don kunna tabbatar da tushen PAM,
# da kuma aiki zaman. Idan an kunna wannan, amincin PAM
# a yarda ta hanyar Kbdintaredactication
# Mai jiran aiki. Ya danganta da tsarin PAM,
# Tabbatarwar Pam ta hanyar Kbalintaredactication
# saitin "izini ba tare da-kalmar sirri ba".
# Idan kawai kuna son asusun Pam da kuma binciken zaman da zaman don gudanarwa ba tare da
# Tabbatarwar Pam, sannan kunna wannan amma saita kalmar sirri
# da kuma kbalinteactactictichictenctichictenctichictenccenity zuwa 'a'a'.
# Izinin YES
# Bada izinin Ee
# Greatawayples A'a
# X11displayetset 10
# X11usecalhost Ee
# Izini Ee
# Buga Buga Ee
# Tcpkeepalive eh
# Izini Ba
# Matsawa
# Condalizaival 0
# Abokin Ciniki 3
# Anyi amfani da a'a
# Pidfile /run/sshd.p
# Maxgiups 10: 30: 100
# Har ila yau babu
# Chrootdirectory babu
# Sigar babu komai
# Babu babbar hanyar banner
# Bada izinin abokin ciniki ya wuce maballin yanayi
# override tsoho na babu kasawa
# Misali na overrping saiti akan tushen-mai amfani
# Dace da mai amfani da aka dace
# X11FordaDadding A'a
# Izinin ba tare da izini ba
# Ba da izini ba
# ForeverCommand CVs Server
Ka tuna, Ctrl + X da Y don adana fayil ɗin. Bayan haka, bari mu rubuta ainihin rubutun da ake kira farawa (duka a cikin tsohuwar gida ofishinmu).
nano initialize
Sanya waɗannan layin zuwa fayil ɗin, maye gurbin
# ! / Bin / Bash
Don tafiya da ku ta wannan fayil, bari mu fara layi ta layi. Layi na farko ya gaya wa mai katun cewa wannan rubutun ne na Bash. Sannan muna shigar da dogaro, kwafa Sshd_config zuwa daidai directory, ƙara umarnin mai amfani tare da sunaye da nakasassu kalmar sirri yanzu). Muna kuma ƙara ƙungiyar sudo, samar da mabuɗin SSH su, ƙara maɓallin mu ga maɓallan izini da nasu kuma, kuma buga maɓallin. Wannan sabon mai amfani zai zama yadda muke shiga shafin.
A cikin sabon tashar jirgin ruwa, ci gaba kuma buɗe sabar.
ssh team@XX.XX.XX.XX
Bai kamata ku buƙaci kalmar sirri ba a wannan lokacin, kasancewa kamar yadda kuke da mabuɗin SSH. Mun kuma kashe shiga tare da kalmar sirri don kiyaye shafin ya zama amintacce.
Yanzu, wannan uwar garken tana farawa gaba daya blank ba tare da wani bayani a kai ba. Bari mu fara da cloning aikinmu daga git don haka zamu iya saukarwa da kuma gudanar da shi a kan mashin mai nisa. A kan uwar garken mai nisa da aka haɗa akan SSH, buga SSH Key:
cat ~/.ssh/id_rsa.pub
Bayan haka, liƙa wannan maɓallin a cikin saitunan git kamar yadda muka yi kafin a kafa wurin ajiyar mu. A yanzu muna iya murɗa aikinmu kai tsaye zuwa sabar. Tabbatar kun goyi bayan aikin gida da farko don haka yana kan uwar garke git don saukewa.
git clone git://github.com/you/yourproject.git
Cikakke. Yanzu duk fayilolin suna nan. Zamu iya ganin su ls
ls
Yanzu, bari mu fara saita sabar. Na farko, kwafar direbobin aikinka cikin wani wuri mai sauki, abin tunawa zamu yi amfani da shi don aikin.
cp -r yourproject whatyoucalledit
Ina "Whatyocalledit" shine sabon sunan aikinku. Bayan haka, za mu buƙaci gina ingantaccen amfani don saita sabar. Za mu ceci wannan mai amfani kuma zamu yi amfani da shi nan gaba. Don gina wannan amfani, bari mu ƙirƙiri binary mai amfani don ayyana yadda muka shirya rubutun. Amfani da Bash, Shirya / USR / Bin / Ascript
sudo nano /usr/bin/ascript
Tabbatar da amfani da sudo akwai don haka kuna da izini don shirya fayil ɗin. A cikin fayil, ƙara waɗannan layin:
# ! / Bin / Bash
echo "# ! / Bin / Bash ">> / Usr / Bin / $ 1
Ka tuna wannan rubutun yana ɗaukar hujja, sunan rubutun, kamar $ 1. First it checks if the file exists, or otherwise creates it, adds the first line to declare the script is bash, changes its permissions, edits it, and adds its name to /etc/ascripts which lets us store the names of the scripts we are creating. Idan fayil ya wanzu, kawai canza izini kuma shirya shi. Ajiye fayil ɗin, kuma na gaba za mu canza shi izini. Muddin muna amfani da wannan rubutun, ba lallai ne mu sake yin hakan ba.
sudo chmod a+x /usr/bin/ascript
Cikakke. Yanzu bari mu ƙirƙiri rubutun da ake kira saitin. Da farko, kar a mamaye ka, amma ka kalli abin da rubutun saiti na yayi kama da shi. Za mu yi tafiya ta hanyar abin da wannan rubutun ya kamata yayi kama da aikinku, ba za ku buƙaci komai a rubutunmu don farawa ba.
# ! / Bin / Bash
# sudo chod a + X Scripts / Birni
# ./Scripts/userseet
# SSH-Keygen
# Madordan aikin
# Dokokin shiga
# NANO COND
# Git Creads
# Sabuntawa da shigar
# Sanya Clamav riga-kafi
# Saita sunan mai masauki
# Saitin postgres
# Tsarin saitin Account
# Musaki IPTables
# Kafa berdefender
# Saiti postfix
# Ƙirƙiri ɗabi'un
# Saita na Virhualenv
# Samu da gina dogaro
# Sanya dokokin Wuta
# Shigar da ayyukan Pypi
pip3 install --upgrade opencv-python # == 4.5.4.40
pip3 install --upgrade opencv-contrib-python # == 4.5.4.40
# Python shigar da Buɗe Opencv-Python == 4.5.5.64
# pip shigar Opencv-Python == 4.5.5.64
# Shigar da Certificot
# Run Certifi
# Sake kunna uwar garken mail
# Kwafa ma'auntata
# sudo cp /etc/letsencry/live/Fembabe.com/privikey.pem -
# sudo cp /etc/letsencry/live/Fembabe.com/cert.pem Cround.pe
# Facin Venv
# Saita saitunan mai amfani
# Saita izini
# Sudo Chown -r Team: Masu amfani / var / Run /
# Sudo Chown Tushen: tushen / Run / sudo / ts -r
# sudo chmod 664 db.sqlite3
# sudo chown www-bayanai: masu amfani db.sqlite3
# Kwafi da izini da kuma izini
# Tsarin saiti
# Inject PAM COND DA Cire kuskure SSH Cire kuskure SSH
# sudo sed -i '' -e '$ d' /etc/pam.d/ss/sss
# Sudo Sedi Sed -i '' -e '$ D' / sauransu / Profile
# Kwafa rubutun hannu da kuma izini na izini
# Sake aikawa da kunna sabis
# Yana kunna ma'aunin Apache
# SUDO A2DIDSIDID MPM_EVER
# SUDO A2DISIDSIDIM MPM_Worker
# sudo A2ENOM MPM_PREFOFORD
# Kashe shafin tsoho
# Sanya shafinmu
# Sake kunna Daemon kuma Sake kunna Apache, Postfix da Pledkim
# Saita izini
# Canjin canp
# Intanit Injin
# Saita Git
# Nuna IPV6 da Opendkim don Kanfigareshan Domain
# Saita ya kammala
Wannan shi ne mai yawa saiti! A takaice, wannan lambar tana ba da umarni, saita Nano da Git, kwafi a kan fayiloli, saukar da UBUNTSQL (daidaita UBWSULS, ya daidaita ufwresqls, sauke ufwresqls, sanya rigakafin ufvirus, sauke shi Daraktoci, ƙyallen igiyoyi, shigar da takaddun shaida kuma yana shigar da izini, yana saita izini, kuma buga maɓallin IP, adireshin IPV da Popdkim maɓallin. Daidai mai sauki, amma yayi kama da lamba da yawa. Ba za mu buƙaci wannan da yawa ba saboda ba mu da dogaro, ba mu yin amfani da Seleri, seleriseat ko Daphne, amma za mu shigar da wasu daga cikinsu don farawa. Lura cewa wannan lambar tana da yanki da aka ayyana.
Za mu kuma bukaci siyan sunan yankin (wanda shine karamar shekara). Ina bayar da shawarar square na siyan siyan yanki, layout su ne masu hankali kuma mai sauƙin amfani. Kuna iya siyan kowane yanki na zaɓinku, amma ina amfani da yankin feembabe.com a cikin wannan misalin. Da zarar ka sayi yanki, shugaban zuwa square na squarespare na squarespare na square kuma ƙara rikodin nuna yankinku zuwa uwar garken IP address. Ya kamata yayi kama da wannan:
@ A xx.xx.xx.xx
Tare da @ afare a matsayin mai masauki, ma'ana duk Reshen yankiSs a ƙarƙashin wannan yanki kuma tushen yanki zai juya zuwa sabar. Akwai mahimman bayanai don bayyana, amma zamu iya motsawa zuwa waɗannan da zarar mun shirya don aika mail. Ka tuna, yana iya ɗaukar kwanaki da yawa kafin ku sami nasarar aika wasiƙar daga sabar. Rikodin DNS da muke sa shine zai dauki lokaci don yadawa.
Ko ta yaya, kawai rikodin da muke buƙatar farawa shine rikodin. Don haka yanzu zamu iya cika rubutun da ke ƙasa gwargwadon aikinmu kuma gudanar da shi.
Bari mu fara da ƙaramin rubutun saiti don kawai shigar da abin da muke buƙatar ci gaba na asali. Ba za mu yi amfani da dogaro da yawa ko kuma postgreresQl ba tukuna, za mu fara sabar uwar garken HTTP kuma mu damu da tabbatar da hakan lokacin da hakan ta gama. Ka tuna, don samun takardar shaidar HTTPS kuma ta gudanar da uwar garken amintacce, za mu buƙaci siyan yanki tare da haya a uwar garke. A yanzu, maye gurbin "ƙungiyar" a cikin wannan fayil tare da sunan mai amfani da ku, "Dir" tare da shugabanci aikinku, da samar da imel da yankinku a cikin <> Tags.
Bugu da ƙari, kafin mu gudanar da wannan lambar, muna buƙatar canza saitunan ga wutar lantarki mai tallafawa, idan. Yawancin lokaci wannan yana cikin shafin yanar gizon 'hanyoyin sadarwa na mai ba da bakuncinku, ko kuma kuna yin masa bakuncin kai, a cikin' Port istinging 'na'ura mai ba da na'urarku. Hakanan zaka so ka kafa IP na Static ta hanyar na'urarka ta hanyar na'urarka tare da adireshin injin uwar garke, idan kana amfani da bakuncin kai. Kuna buƙatar buɗe masu tashar don karanta / rubuta damar.
22 (SSH) 25 (Mail) 587 (Mail) 110 (abokin aikin mail) 80 (http) 443 (https)
# ! / Bin / Bash
# Dokokin shiga
# NANO COND
# Git Creads
# Sabuntawa da shigar
# Sanya Clamav riga-kafi
# Saita sunan mai masauki
# Tsarin saitin Account
# Musaki IPTables
# Saita na Virhualenv
# Shigar da Certificot
# Run Certifi
# Saita saitunan mai amfani
# Saita izini
# Sudo Chown -r Team: Masu amfani / var / Run /
# Sudo Chown Tushen: tushen / Run / sudo / ts -r
# Sake aikawa da kunna sabis
# Yana kunna ma'aunin Apache
# Sake kunna Daemon kuma Sake kunna Apache, Postfix da Pledkim
# Nuna IPV6 da Opendkim don Kanfigareshan Domain
Kafin gudanar da wannan lambar, tabbatar cewa yankin da ka saya an haɗa shi da haɗin uwar garken. Don yin wannan, buɗe tashar jirgin saman ku, kuma gudanar da wannan umarnin tare da yankinku:
ping femmebabe.com # Saka yankinku anan, bayan ping
Idan dukansu suna da kyau kuma sabar tana aika martani, a shirye muke don gudanar da rubutun da shigar da kuma fara aiki, kunna kuma ka tabbatar da uwar garkenmu Apache.
Wannan ba duk tsarin da ake buƙata don saita ma'aikacin gidan waya ba, zamu kalli wannan saiti daga baya. A yanzu, gudanar da wannan saitin lambar kuma ya kamata ya ɗauki fewan mintuna don kafawa da kuma tabbatar da uwar garke. Har yanzu, tabbatar an maye gurbin suna, imel da sunan yankin a rubutun bisa ga sunan da kuka siya.
Yanzu da uwar garken da ke bayarwa, zaku iya zuwa URL a cikin kowane mai binciken yanar gizo kuma ku bincika don tabbatar da cewa uwar garken tana gudana HTTPS. Idan ba haka bane, gwada jira kadan yayin da bayanan DNS don cim ma sannan gudanar da umarni mai zuwa don gwada Certification:
sudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com
Muddin kun daidaita komai daidai, ya kamata ku sami damar samun damar samun tsohuwar shafin Apache kawai don sanin lambar ku yana aiki da nuna shafin yanar gizon rayuwa. Bayan haka, bari mu shirya saitunan.py don canja yanayin tsohuwar Debug ɗinmu zuwa samarwa. Har ila yau, za mu saita yankin a cikin saitunan, kazalika da IPS na ciki.
nano yourproject/settings.py
A cikin saiti, canzawa / ƙara waɗannan layin.
# Haɗin Shafi
Yanzu, za mu buƙaci saita Apache2. Bari mu shirya fayil ɗin Config da zamu tura tare da wannan layin:
sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf
Wannan fayil ɗin Config ya kamata ya sa sunan yankin mu a ciki, da sunan mai amfani da aikin. Ina amfani da sunan yankin Feembabe.com, ƙungiyar sunan mai amfani, da sunan aikin Fembabe.
ServerSignature Off
ServerTokens Prod
<IfModule mod_ssl.c>
<VirtualHost *:80>
Redirect permanent / https://femmebabe.com/
</VirtualHost>
<VirtualHost *:443>
ServerName femmebabe.com
ServerAdmin team@femmebabe.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/team/femmebabe/static
<Directory /home/team/femmebabe/static>
Require all granted
</Directory>
Alias /media/icons /home/team/femmebabe/media/
<Directory /home/team/femmebabe/media>
Require all granted
</Directory>
<Directory /home/team/femmebabe/femmebabe>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/team/femmebabe/femmebabe/wsgi.py
WSGIDaemonProcess femmebabe python-path=/home/team/femmebabe/ python-home=/home/team/femmebabe/venv header-buffer-size=100000000000 user=team
WSGIProcessGroup femmebabe
WSGIApplicationGroup %{GLOBAL}
<Directory /home/team/femmebabe/static>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} \.(css|webp|webm|gif|png|mp3|wav|jpeg|jpg|svg|webp)$ [NC]
RewriteCond %{HTTP_REFERER} !^https://femmebabe.com/media/.*$ [NC]
RewriteRule ^(.+?)/$ /media/$1 [F,L]
</IfModule>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/femmebabe.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/femmebabe.com/privkey.pem
Header set X-Frame-Options: "SAMEORIGIN"
Header set Access-Control-Allow-Origin "https://femmebabe.com"
TimeOut 60000
LimitRequestBody 0
<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|webp|JPG|JPEG|wav|mp3|mp4|public|js|css|swf|webp|svg)$">
Header set Cache-Control "max-age=30, public"
</FilesMatch>
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerName femmebabe.com
ServerAdmin team@femmebabe.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =femmebabe.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
</IfModule>
Tabbatar maye gurbin sunan aikin, Sarakuna na Sarakuna, da yankin a cikin wannan misalin lambar lokacin saita uwar garken ku. Yanzu, muna buƙatar kashe tsohuwar shafin. Ana iya yin wannan ta amfani da Bash.
sudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl
Bayan haka, zamu iya kunna tsohuwar shafin kuma sake amfani da Apache2, kuma amfani da bash. Ka tuna maye gurbin FemMebabe tare da sunan fayil ɗin da ka ayyana lokacin da aka gyara a / sauransu / Apache2 / Sites-akwai /.
sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2
Koma yankinku a cikin Sojobar. Yakamata ka ga shafin da ka kirkira a cikin mai binciken yanar gizonku. Taya murna! Idan baku gan ta ba, kuna iya buƙatar yin wasu canje-canje. A hankali nazarin saitunan a cikin aikinku, apache saiti, kuma ka tabbata ba ku da wani kurakurai, kuma gudanar da waɗannan umarni masu zuwa don bincika aikin don kurakurai.
cd projectname
source venv/bin/activate
python manage.py check
Idan kana da kurakurai a cikin aikin Python, bincika su zuwa inda suke kuma gyara su. Wataƙila ba za ku iya ganin duk kurakuranku ya dogara da inda suke ba, don haka idan kuna da kuskure ", shirya fayil ɗin ba kawai" yin rajista ba a cikin muhalli mai zuwa, yin rajista a cikin muhalli, yin rajista a cikin muhalli, yin rajista a cikin muhalli, yin rajista ba a cikin yanayin.
nano venv/lib/python3.12/site-packages/django/apps/registry.py
Gungura zuwa Layi 83, inda aka tayar da kuskuren runstimror ("peopulate () ba zai sake tunani ba"), kuma ƙara ra'ayi a gaban wannan layi, tare da ƙara, tare da kai tsaye, kai kai tsaye, tare da kai tsaye, kai tsaye. Wannan yayi kama da wannan:
# Hana yin kira don gujewa apconfig.Da ()
# Hanyoyi sau biyu.
# Tashi runtimeerror ("peopulate () ba mai gyara")
Daga nan zaka sake bincika aikin kuma ka fallasa kuskuren.
python manage.py check
Sannan zaka iya ganin kuskuren kuma gyara shi. Lokacin da kuka daidaita da lambar da ba tare da kurakurai ba, tabbatar da canza fayil ɗin baya don haka yana kama da wannan:
# Hana yin kira don gujewa apconfig.Da ()
# Hanyoyi sau biyu.
# kai.app_configs = {}
Bayar da sabar tana kan layi, lokacin da muke yin ƙarin canje-canje gare ta, muna buƙatar amfani da wannan umarni mai zuwa don sake uwar garken:
sudo systemctl reload apache2
Madalla! Amma me game da aikawa da aikawa? Don fara aika imel, zamu fara buƙatar sabunta tsarin yankin. Wannan ya kamata ya kasance a cikin kwamitin DNS ɗinku a cikin squarespace, ko duk abin da mai rejista sunan yankin da kuka zaɓa. Hakanan zamu buƙaci shigar da ƙara sanyi, kuma gudanar da wasu 'yan doka.
Da farko, bari mu sami adireshin IPV6 na sabar. Sannan zamu bude DNS kuma zamu ƙara bayanan.
Don samun adireshin IPV6 Adireshin IPV6, yi amfani da wannan umarnin:
ip -6 addr
Yanzu, zamu iya ƙara bayanan da ke gaba zuwa Saitunan DNS. Rubutun da na yi kama da wannan. Koyaya, don rikodinku, ya kamata ka maye gurbin adireshin IP tare da IP (ba 75.14.18.24, nawa). Hakanan ƙara yankinku a maimakon Fembabe.com, kazalika da aka samo daga cikin adireshin IPV6 tare da umarnin da ya gabata (fe805: 3e02). Kar ku damu da sunan yankin a yanzu, an ƙirƙiri wannan lokacin da muka saita postfix, uwar garken mail, tare da pledkim, kuma buga maɓallin. Zamu tsara wannan na ƙarshe.
@ A N / a 75.147.1822222222
@ Mx 10 feembabe.com
@ Ptr N / a feembabe.com
@ Txt N / a TXT @ v = SPF1 MX ip75.147.182p6: fe80 :: 725: 35: 3e02 ~ duka
tsoho._bimi Txt N / a v = bimi1; l = https: //Ftmebupe.com/media/staticAbabe.svg
_dmarc Txt N / a v = DMARC1; p = babu
Aika._Daphkey
Txt
N / a
Yanzu, za mu buƙaci ƙara wasu abubuwan da aka tsara don gidan waya. Abin da kawai muke buƙatar yi shi ne tabbatar muna maye gurbin sunan yankin, Femmebabe.com, tare da sunan yankin da kake amfani da shi. Bari mu kalli duk fayilolin fayil ɗin daya bayan daya, kuma shigar da su a cikin tsarin da ake kira Contig a cikin aikinmu, don kafa zuwa OS.
nano config/etc_postfix_main.cf
Sanya wannan rubutun zuwa fayil ɗin
# Dubi /usr/share/postfix/main.cf.Dist don sharhi, more cikakken sigar
# Buɗe-farko: Take sunan fayil zai haifar da farkon
# layi na wannan fayil ɗin da za a yi amfani da sunan. Debian Devie
# is / sauransu / mai aiki.
# Myorigar = / sauransu /
# da aka saƙo.
# M layi na gaba don samar da "jinkirta" gargadi
# jinkirta_warning_time = 4h
# Duba http://www.Ossfix.org/Razaya_radme.html - tsoho zuwa 3.6
# sabo ne shigar.
# TLS sigogi
# Tsarin Millter
Saukarwa na gaba!
nano config/etc_postfix_master.cf
Sanya waɗannan layin:
#
# Fayil na Kanfis Postfix tsari. Don cikakkun bayanai akan tsarin
# na fayil, duba Jagora (5) shafi na hannu (Umurnin: "Man 5 Master" ko
# On-line: http://www.ostfix.org/master.5.html).
#
# Kada ka manta da aiwatar da Reading "bayan gyara wannan fayil.
#
# ==========================================================================================================================================================================================================================================================================================================
# Nau'in Nazarin Service na Kulawa na Karen Kulawa na Kare Maxproc + + Argg
# (Ee) (ee) (a'a) (ba) (100)
# ==========================================================================================================================================================================================================================================================================================================
# SMTP Inet N - Y - 1 Mai Raba
# SMTPD Pass - - Y - - SMTPD
# DNSBlog UNIX - - y - 0 dnsblog
# Unix - - y - 0 tlsproxy
# Zabi daya: Mai kunna ƙaddamarwa don abokan cinikin Loopback kawai, ko ga kowane abokin ciniki.
# 127.0.0.1:subpd Inet n - y - - smtpd
# -o syslog_name = postfix / ƙaddamarwa
# -o smtpd_tls_sechancin_level =
# -O smtpd_sasl_auth_enable = eh
# -O smtpd_tls_auth_only = Ee
# -O smtpd_Raject_unlisted_recical = babu
# -o smtpd_client_restrictions = $ Mua_client_resrictions
# -O smtpd_helo_resrictions = $ Mua_helo_resrictions
# -O smtpd_sender_restrictions = $ Mua_Sender_restrictions
# -o smtpd_recicent_restrictions =
# -o smtpd_relay_restrictions = izinin_sasl_AUutawance, ƙi
# -o Milter_macro_DAemon_name = samo asali
# Zaɓi ɗaya: Sanya SMTPs don abokan cinikin Loopback kawai, ko ga kowane abokin ciniki.
# 127.0.0.1:Smtps Inet N - Y - - SMTPD
# SMTPs Inet N - Y - - SMTPD
# -O syslog_name = postfix / SMTPs
# -O smtpd_tls_wrapperemode = Ee
# -O smtpd_sasl_auth_enable = eh
# -O smtpd_Raject_unlisted_recical = babu
# -o smtpd_client_restrictions = $ Mua_client_resrictions
# -o smtpd_helo_resrictions = $ Mua_helo_resrictions
# -O smtpd_sender_restrictions = $ Mua_Sender_restrictions
# -o smtpd_recicent_restrictions =
# -o smtpd_relay_restrictions = izinin_sasl_AUutawance, ƙi
# -o Milter_macro_DAemon_name = samo asali
# 628 Inet N - Y - - QMQPD
# Qmgr Unix n - n 300 1 oqmgr
# -o smtp_helo_timout = 5 -o SMTP_Connect_TTAOOT = 5
#
# ===========================================================================================================
# Musayar abubuwa zuwa software mara waya. Tabbatar yin nazarin littafin
# Shafuka na software marasa waya don gano irin zaɓuɓɓukan da yake so.
#
# Yawancin sabis ɗin masu zuwa suna amfani da bututun gidan waya (8)
# wakili. Dubi bututu (8) shafi na mutum don bayani game da $ {mai karɓa}
# da sauran zaɓuɓɓukan imel.
# ===========================================================================================================
#
# maalrop. Duba fayil na Mastrox Magilrox don cikakkun bayanai.
# Hakanan saka a cikin Main.cf: Magorroc_dentation_limit = 1
#
#
# ===========================================================================================================
#
# 'Yan rubutun Cyrus na kwanan nan suna iya amfani da "LMTP" Master.CF shigar.
#
# Saka a cikin Cyrus.Conf:
# lmtp cmd = "LMTPD - Saurara =" LocalHost: Lmtp "Proto = TCP4
#
# Saka a Main.cf daya ko fiye na masu zuwa:
# Akwati_transport = lmtp: Inet: localhost
# Virtual_transport = LMTP: Inet: Ocalhost
#
# ===========================================================================================================
#
# Cyrus 2.1.5 (Amos goouaux)
# Hakanan a saka a cikin main.cf: cyrus_destation_recient_limit = 1
#
# Cyrus Unix - N N - - bututu
# Flags = Mai amfani Drx = Cyrus Argv = / Cyrus / Bin / Seton -S $ $ Mai aika--$ {$ Mai aiki} $ Mai aikawa}
#
# ===========================================================================================================
# Tsohon misali na bayarwa ta hanyar Cyrus.
#
# Tsohon-Cyrus Unix - N N - - bututu
# Flags = r Useraya = Cyrus Argv = / Cyrus / Bin / Serin -E -M $ 1 {Ukawa}
#
# ===========================================================================================================
#
# Duba fayilolin postfix Uucp_readme don cikakkun bayanai.
#
#
# Sauran hanyoyin bayar da su na waje.
#
Da kuma kayan aiki na Pledkim. Opendkim ya gano sabobin imel tare da maɓallan yankin don sanya su mafi aminci. Ba tare da shi ba, ba a sanya wasiƙar ba kuma ba za a sanya shi ba don akwatin saƙo.
nano config/etc_default_opendkim
Sanya waɗannan layin:
# SAURARA: Wannan fayil ɗin Kanfigareshan ne. Ba a amfani da Operenkim
# Sabis ɗin da aka tsara. Da fatan za a yi amfani da sigogin sanyi a ciki
# /etc/Eopendkim.conf a maimakon haka.
#
# A baya can, mutum zai shirya tsoffin saitunan anan, sannan a zartar
# /lib/opendkim/EBendkim.Service.gene don samar da fayilolin overrode a
# /etc/sysemd/Sysetm/eSDTKIM.Service.d/override.conf da
# /etc/tmpfailes.d/EPENDKIM.conf. Yayin da wannan har yanzu zai yiwu, yanzu haka
# Nagari don daidaita saitunan kai tsaye a cikin /etc/esendkim.conf.
#
# Daemon_pts = ""
# Canza zuwa / var / Spool / Postfix / Run / Bintenkim don amfani da UNIX SODE tare da
# gidan waya a cikin chroot:
# Rundir = / var / Spool / Postfix / Run / Opendkim
#
# M don tantance soket na musaya
# Lura cewa saita wannan zai kawar da duk wani darajar sock a cikin Innedkim.conf
# Tsoho:
# Saurari dukkan musaya akan tashar jiragen ruwa 54321:
# Soket = ATET: 54321
# Saurari Loopback akan tashar jiragen ruwa 12345:
# Socket = ATET: 12345 @ localhost
# Saurari 192.0.2.1 akan tashar jiragen ruwa 12345:
# Socket = ATET: 123445@192.0.2.1
nano config/etc_dovecot_conf.d_10-master.conf
Sanya waɗannan layin:
# Tsohuwar_Process_limit = 100
# Tsohuwar_Client_Limit = 1000
# Tsoffin vsz (girman ƙwaƙwalwar ƙwaƙwalwa) iyaka don tafiyar matakai na sabis. Wannan galibi
# yi niyyar kama da kashe matakai waɗanda za su iya cin abinci kafin su ci
# komai.
# Tsara_vsz_limit = 256m
# Mai amfani da shiga an yi amfani da shi ta hanyar shiga. Wannan shine mafi sani
# mai amfani a cikin tsarin dovecot. Bai kamata ya sami damar yin komai ba kwata-kwata.
# Tsohuwar_login_user = dovenul
# Ana amfani da mai amfani da ciki ta hanyar aiwatar da marasa amfani. Ya kamata ya zama daban daga
# Mai amfani da Shiga, saboda haka shiga matakai ba zai iya dakatar da sauran hanyoyin ba.
# Tsattsaye_innony_user = dovecot
# Port = 143
# Port = 993
# SSL = Ee
# Yawan haɗi don rikewa kafin fara sabon tsari. Yawanci
# Abubuwan da ke da amfani kawai su 0 (Unlimited) ko 1. 1 shine mafi aminci, amma 0
# yana da sauri. <doc / wiki / loginprocess.txt>
# Sabis_count = 1
# Yawan tafiyar matakai da kullun ci gaba da jiran ƙarin haɗi.
# tsari_min_avail = 0
# Idan kun saita sabis_Count = 0, tabbas kuna buƙatar haɓaka wannan.
# vsz_limit = tsoho tsoho_vsz_limit
# Port = 110
# Port = 995
# SSL = Ee
# Port = 587
# Ƙirƙiri Inet Listerener kawai idan ba za ku iya amfani da soket na UNIX
# Inet_listeer lmtp {
# Guji yin lmtp bayyane ga duk intanet
# Adireshin =
# Port =
# }
# Mafi yawan ƙwaƙwalwa zuwa MMAP () Ing fayiloli. Kuna iya buƙatar ƙara wannan
# iyaka idan kuna da manyan akwatin gidan waya.
# vsz_limit = tsoho tsoho_vsz_limit
# Max. Yawan tafiyar matakai (haɗi)
# aiwatar_limit = 1024
# Max. yawan POP3 (Haɗin)
# aiwatar_limit = 1024
# Max. Yawan jerin abubuwan ƙaddamar da SMTP (haɗi)
# aiwatar_limit = 1024
# Auth_SOCTECTE_PATT MANAR CIKIN WANNAN AMFANIN NUNA ta tsohuwa. Yana da yawanci
# Dovecot-Lda, Doveadm, mai yiwuwa tsari na IMAP, da sauransu masu amfani da suke da su
# Cikakken izini ga wannan soket ɗin na iya samun jerin duk sunayen masu amfani da
# Samu sakamakon Dokokin USDRDB.
#
# Tsohuwar 0666 Yanayin yana bawa kowa damar haɗa shi da soket ɗin, amma
# Dubawar Amintherdb zai yi nasara kawai idan Usderdb ya dawo da filin "UID" wanda
# ya dace da tsarin mai kiran. Hakanan idan UID mai kira ko Gid ya dace da
# UDEDER UDE ko Gid Dubawa ya yi nasara. Wani abu kuma yana haifar da gazawa.
#
# Don bayar da cikakkiyar izini don neman duk masu amfani, saita yanayin zuwa
# wani abu sama da 0666 da rivecot yana ba da kwarkwalin ku tilasta
# Izini (E.G. 0777 ya ba kowa cikakkiyar izini).
# Ana gudanar da tsarin aikin Auth kamar tushe ta tsohuwa, don haka zai iya shiga
# / sauransu / inuwa. Idan wannan ba lallai ba ne, ya kamata a canza mai amfani zuwa
# $ tsoho_innational_USER.
# Mai amfani = tushe
# Idan ana amfani da wakili na doka, tafiyar matakai ya kamata ya sami damar zuwa sandar sa.
# Misali: Yanayi = 0660, Group = vmail da kuma Mail_access_groups = vmail
# Yanayin = 0600
# mai amfani =
# rukuni =
Har yanzu, tabbatar an maye gurbin yankin a cikin waɗannan waɗannan fayilolin, FemMabe.com, tare da yankin da kuka zaɓa. Shirya fayil na gaba, hadewar dovecot,
nano config/etc_dovecot_dovecot
Kuma ƙara waɗannan layin
## Fayil ɗin Dovecot
# Idan kana cikin sauri, duba http://wiki2.doveCot.org/qickconfiguration
# "Dokar Dovonf -n" tana ba da tsabtataccen fitarwa na saitunan canza. Yi amfani da shi
# Madadin kwafa & abubuwan da aka ambata yayin aikawa zuwa jerin aikawasiku na dovecot.
# '# 'Halin da komai bayan an bi da shi azaman maganganu. Karin sarari
# an yi watsi da shafuka. Idan kana son amfani da ɗayan waɗannan a bayyane, sanya
# value inside quotes, eg.: key = "# char da trailing writespace "
# Mafi yawan (amma ba duka) saiti na daban-daban
# Source: IPS makomar IPs ta sanya saitunan a sassan, alal misali:
# Tsarin IMPOP {}, gida 127.0.0.0.0,8/8 {..0.0/8 {-.0.0.0
# Ana nuna tsoffin dabi'u ga kowane saiti, ba a buƙatar ba da izini ba
# wadancan. Waɗannan banda ne ga wannan ko da yake: babu sassan (E.G. Sunaye {})
# ko saitunan pluginin ta hanyar tsoho, an lissafa su kawai misalai.
# Hanyoyi ma misalai ne kawai tare da ainihin Preserarshen Tsammani
# Zaɓuɓɓuka. Hanyoyin da aka jera anan sune don saita --Prefix = / USR
# --syssconfdir = / sauransu - Dandalin
# Sanya shigar da ladabi
# A ungo wakafi jera jerin IPs ko runduna inda zaka saurara don haɗi.
# "*" Sallewa a cikin duk abubuwan da IPV4, "::" Mallaka a duk abubuwan da IPV6.
# Idan kana son tantance tashar jiragen ruwa marasa tsira ko kuma wani abu mafi rikitarwa,
# Ai gyara Cont.D / Master.conf.
# Saurari = *, ::
# Jagorar tushe inda za a adana bayanan azaba.
# gindi_dir = / var / Run / dovecot /
# Sunan wannan misalin. A cikin Doveup Doveadm da sauran dokokin
# na iya amfani -i <misalai_name> Don ka zabi wanda aka yi amfani da shi (wani madadin
# zuwa -c <config_path>). Sunan misalin an kara wa aiwatar da ayyukan dovecot
# A cikin fitowar PS.
# misalin_NAME = Dovecot
# Saƙon gaisuwa ga abokan ciniki.
# Login_greeting = Dovecot shirye.
# Sararin samaniya rabuwa da jerin hanyoyin sadarwa da aka amince. Haɗi daga waɗannan
# An ba iPs don kawar da adreshin IP da tashar jiragen ruwa (don shiga da
# don ingantaccen bincike). Musaki_Pastetect_auth ana watsi da shi
# Waɗannan hanyoyin sadarwa. Yawanci zaku bayyana sabobin Propy ɗinku a nan.
# Shiga_tritted_networks =
# Jerin sararin samaniya daban na shiga na shiga binciken socket (E.G. TCPWRAP)
# Login_acocces_Soolkets =
# Tare da proxy_maybe = Ee idan wakili mai zuwa ya dace da duk waɗannan IPS, kar a yi
# wakili. Wannan bai wajibi ne, amma na iya zama da amfani idan makomar
# IP shine E.G. A kaya mai daidaita IP.
# Auth_POXY_VERT =
# Nuna ƙarin taken aiki (a PS). A halin yanzu yana nuna sunan mai amfani da
# Adireshin IP. Da amfani ga gani wanda yake amfani da tafiyar matakai
# (misali akwatin akwatin gidan waya ko kuma idan ana amfani da UID guda ɗaya don asusun da yawa).
# verbose_proctitle = babu
# Shin yakamata a kashe dukkan hanyoyin yayin aiwatar da mastubing na Dovecot ya rufe.
# Saita wannan zuwa "a'a" yana nufin cewa za a iya inganta dovecot ba tare da
# tilasta haɗin abokin ciniki na yanzu don rufewa (ko da yake wannan zai iya kasancewa
# matsala idan haɓakawa ita ce e.g. saboda gyara tsaro).
# Rufewa_clients = Ee
# Idan ba haka ba, gudanar da wasikar wasiƙa ta hanyar wannan haɗi da yawa zuwa sabar Doveadm,
# Maimakon yin tafiyarsu kai tsaye a cikin tsari.
# Doveadm_Worker_count = 0
# UNIX SOCKE ko Mai watsa shiri: Fayil da aka yi amfani da shi don haɗawa zuwa sabar Doveadm
# Doveadm_solket_pathet = Doveadm-Server
# Sararin sararin samaniya rabuwa da jerin mahalarta yanayin da aka adana akan dovecot
# farawa da kuma ya wuce ga duk hanyoyinta na yara. Hakanan zaka iya bayarwa
# Maɓallin = ƙimar nau'i don saita takamaiman saiti.
# Shigo_envirment = tz
##
## Kitunan uwar garken
##
# Za'a iya amfani da ƙamus don adana maɓallin = jerin lambobi. Ana amfani da wannan da yawa
# plugins. Ana iya samun dama ko dai kai tsaye ko kodayake a
# Kamus na sabawa. Tasirin Tallafin Taswirar Taswirar Tallace-rubucen na gaba zuwa Uris
# Lokacin da aka yi amfani da uwar garken. Wadannan za a iya ambata ta amfani da Uris a cikin tsari
# "Proxy :: <suna>".
# Naka = MySQL: /etc/dovacot/dovacot-didat-sql.conf.ext
# Yawancin ainihin tsarin saiti sun haɗa da ƙasa. Filin fayilolin suna
# Da farko an tsara shi ta hanyar ascii da aka sa a cikin wannan tsari. Da 00-prefixes
# A cikin filename sun yi niyyar sauƙaƙa fahimtar umarnin.
# Za'a iya haɗa fayil ɗin saiti ba tare da bayar da kuskure ba idan
# Ba a samo shi ba:
# Yana bawa Dovecot don sauraron duk shigarwar Input (IPV4 / IPV6)
Aara kalmar sirri don mai amfani da Dovecot:
nano config/etc_dovecot_passwd
Kashi na farko na fayil ɗin, kafin cin abincin, sunan mai amfani. Kashi na karshe, "yourpasswordords", yana nuna kalmar sirri da zaku so ku ba da sabar ku.
team:{plain}yourpassword
Next, Condkim Cond
nano config/etc_opendkim.conf
Kuma ƙara wadannan layin:
# Wannan ingantaccen tsarin saiti ne don yin sa hannu da tabbatar da. Zai iya zama cikin sauƙi
# ya dace da dace da shigarwa na asali. Duba Opendkim.conf (5) da
# /usr/share/doc/examames/opendkim.conf.sample for cikakke
# Rubutun da aka samo yankin.
# Logwhy a'a
# Signing na yau da kullun da kuma alamun tabbatarwa. A Debian, "daga" Shugaban Kasa
# Kulle, saboda galibi mahimman ke amfani da tsarin lambobi
# kuma ta haka ne ɗan m tsaro m.
# Sa hannu a yankin, zaɓi, da maɓalli (da ake buƙata). Misali, yi sa hannu
# Don Domain "example.com" tare da Selector "2020" (2020.Daikkey.example.com),
# Yin amfani da maɓallin keɓaɓɓen da aka adana a cikin /etc/dkimukeys/example.provate. Ƙarin hatsi iri
# Za'a iya samun zaɓuɓɓukan sa a /usr/share/doc/redankim/regme.opeddkim.
# Domain misali.com
# Select 2020
# KeyFaile /etc/dkimukeys/example.cprovate
# A Debian, Opendkim gudana azaman mai amfani "Opendkim". Ana buƙatar Umask na 007 lokacin da
# Yin amfani da soket na gida tare da MTas wanda ke samun damar soket a matsayin marasa gata
# mai amfani (alal misali, postfix). Kuna iya buƙatar ƙara mai amfani "postfix" zuwa rukuni
# "Opendkim" a wannan yanayin.
# Soket don haɗin MTA (da ake buƙata). Idan MTA tana cikin gidan yarin na Chroot,
# Dole ne a tabbatar da cewa soket ya isa. A Debian, Merfix yana gudana a ciki
# chroot a / var / Spool / postfix, saboda haka UNIX SOCE zai kasance
# An saita kamar yadda aka nuna a layin ƙarshe da ke ƙasa.
# Soketer Loard: /run/kendkim/kirani
# Soketer Inet: 8891 @ localhost
# Socket inet: 8891
# Mai watsa shiri domin wanda zai sa hannu a maimakon haka, tsoho shine 127.0.0.0.1. Duba
# Sashin aiki na Pledkim (8) don ƙarin bayani.
# Cututtosts 192.168.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.12
# Dogara mai aminci tana ba DNSSEC. A Debian, an bayar da fayil ɗin amintaccen amintaccen
# ta hanyar kunshin DNS-tushen-bayanai.
# Nameservers 127.0.0.
# Taswirar Domains a cikin Adireshin zuwa maɓallan da aka yi amfani da su don sanya sakonni
# Saitin bakuncin na ciki wanda ya kamata a sa hannu
nano config/etc_default_opendkim
Kuma ƙara waɗannan layin
# SAURARA: Wannan fayil ɗin Kanfigareshan ne. Ba a amfani da Operenkim
# Sabis ɗin da aka tsara. Da fatan za a yi amfani da sigogin sanyi a ciki
# /etc/Eopendkim.conf a maimakon haka.
#
# A baya can, mutum zai shirya tsoffin saitunan anan, sannan a zartar
# /lib/opendkim/EBendkim.Service.gene don samar da fayilolin overrode a
# /etc/sysemd/Sysetm/eSDTKIM.Service.d/override.conf da
# /etc/tmpfailes.d/EPENDKIM.conf. Yayin da wannan har yanzu zai yiwu, yanzu haka
# Nagari don daidaita saitunan kai tsaye a cikin /etc/esendkim.conf.
#
# Daemon_pts = ""
# Canza zuwa / var / Spool / Postfix / Run / Bintenkim don amfani da UNIX SODE tare da
# gidan waya a cikin chroot:
# Rundir = / var / Spool / Postfix / Run / Opendkim
#
# M don tantance soket na musaya
# Lura cewa saita wannan zai kawar da duk wani darajar sock a cikin Innedkim.conf
# Tsoho:
# Saurari dukkan musaya akan tashar jiragen ruwa 54321:
# Soket = ATET: 54321
# Saurari Loopback akan tashar jiragen ruwa 12345:
# Socket = ATET: 12345 @ localhost
# Saurari 192.0.2.1 akan tashar jiragen ruwa 12345:
# Socket = ATET: 123445@192.0.2.1
Lokacin da muke shirye mu kafa uwar garken postfix, zamu gudanar da lambar da ke ƙasa, tare da sunan yankin da ya dace. Fara ta hanyar ƙirƙirar rubutun
touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup
Yanzu, a Nano, editan rubutu, shirya wannan fayil don haka ya haɗa da sunan yankinku maimakon fembabe.com.
# ! / Bin / Bash
# Saiti postfix
Yanzu, gudanar da wanda aka kammala don saita gidan waya, Opendkim da Dovecot.
./scripts/postfixsetup
Da zarar wannan rubutun ya gudana, kwafar layin ƙarshe da ya kwafi kuma liƙa shi cikin tsarin DNS ɗinku azaman ƙimar Sendonly._Daphkey. Wannan shine maɓallin BOPDKIM da aka yi amfani da su don gano yankinku lokacin aika amintacce wasiƙa.
Madalla! A cikin 'yan kwanaki, ya kamata ka sami damar aika wasiku daga sabar da aka bayar komai daidai.
Idan kawai kun daidaita DNS don sabar wasiƙar ku, ya kamata ya ɗauki ƙasa da sa'o'i 72 don bayanan don sabuntawa. Yawanci yana da sauri. Kuna iya bincika idan sabar ku tana aiki ta amfani da wannan umarnin, ya kawo imel ɗinku:
echo "test" | mail -s "Test Email" youremail@gmail.com
Idan komai ya nuna aiki daidai, ya kamata ka iya aika imel tare da sabar ka. Idan ba ya aiki, gwada kallon rajistan ayyukan don ganin abin da kuskuren zai iya zama.
tail –lines 150 /var/log/mail.log
Wannan zai iya bayar da bayanan Verbose game da wasiƙar da ake aikawa ta uwar garken da kuma ko yana aiki yadda yakamata. Ya kamata ku iya ganin imel ɗin a Akwatin saƙo mai shiga. Idan ba a can ba, duba babban fayil ɗin spam ɗinku.
Hakanan zaku buƙaci saita saitunan ku a cikin saitunan ku.Py don haka uwar garken email din ku na iya magana da app ɗin Django ɗinku, aikin. Ƙara ko maye gurbin waɗannan layin a cikin saitunan ku
EMAIL_HOST_USER = 'team' # 'Soyayya@mamamsheen.com'
Lura cewa muna amfani da fayil ɗin saiti don samun kalmar sirri. Bari mu sanya wannan fayil a cikin saitunan kamar haka, a farkon fayil ɗin .:
# Bude da sauke saiti
Bari mu ƙirƙiri wannan fayil kuma ƙara maɓallin ɓoye a gare shi, da kuma kalmar sirri. Don samar da mabuɗin sirri, yi amfani da wannan umarnin, tare da duk tsawon abin da kuke so a ƙarshen:
openssl rand -base64 64
Yanzu, kwafe rubutun da ke buɗewar da shirya /etc/config.json
sudo nano /etc/config.json
Sanya maɓuɓɓuka masu zuwa zuwa fayil ɗinku, tare da maɓallin keɓaɓɓen an samo asali azaman maɓallin asirin.
{
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"EMAIL_HOST_PASSWORD": "yourpassword"
}
Json format is simple and easy to use, we can declare other keys we want to use in our project this way too, and keep them separate from our project directory so other users can't write to them and so they can't be read from our project directory alone. Wannan shawarar da aka bada shawarar aiwatarwa don maɓallan API, wanda zamu yi amfani da fiye da kaɗan a nan.
Hakanan zaku so ku adana aikinku don tabbatar da cewa duk an sami ceto kuma zaku iya dawo da aikinku daga baya koda kun sake yin hayar uwar garken.
sudo backup
Yanzu, gwada aika imel imel na HTML daga sabar yanar gizo, da aka bayar aika ɗaya daga layin umarni yana aiki. Tambayar ku na mai amfani a cikin kwasfa, kuma aika imel na HTML zuwa wannan mai amfani ta Django. Canza sunana a cikin lambar, Charlotte, zuwa sunan mai amfani.
python manage.py shell
from django.contrib.auth.models import User
u = User.objects.get(username='Charlotte')
from users.email import send_welcome_email
send_welcome_email(u)
exit()
Idan umarnin farko baya aiki, tabbatar da amfani
source venv/bin/activate
Idan aka saita komai daidai, yanzu za ku sami imel da aka yi maraba da imel a cikin akwatin gidan yanar gizonku da aikin yanar gizonku ya aiko. Kyakkyawan aiki! Kun zo da nisa.
Ina so in ƙara, idan kun taɓa fama da kowane kurakurai kwata-kwata yayin da yake aiki akan wani irin wannan, kada ku bincika amsoshi da neman taimako. Google, a tsakanin sauran injunan bincike, manyan abubuwa ne masu yawa don bincika taimakon shirye-shirye. Kawai bincika kuskuren da kuke samu, kuma zaku iya ganin yadda wasu mutane ke magance matsalar. Hakanan, ana maraba da ku don tuntuɓar ni, malamai, furofesoshi), kowane takara a cikin Intanet wanda ke samuwa don abubuwan da kuke fuskanta. Na fahimci wannan ba sauki bane, amma koda kun karanta a cikin wannan da nisa kuma ba ku rubuta kowane lamba ba, kuna koyo game da gina app ɗin Yanar gizo daga karce. Aatar da kanka a baya, kana yin babban aiki.
Na gode da kuka dauki lokaci don karanta wannan jagorar ɗaukaka yanar gizo na uku. A cikin bugu na gaba, zan hada da mahimman misalai na gaba da aka tattauna a farkon takaddar kuma mu nutse cikin zurfi cikin duniyar software da kayan kwalliya. Yi niyyar abin da zai zo, kuma ina fatan koya muku yadda ake gina software mai ban mamaki. Duba ku a cikin bugu na gaba!
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do i find customers for my web development small business?
Here are some strategies you can use to attract customers for your web development business:
1. Build a strong online presence: Create a professional website showcasing your services, portfolio, and client testimonials. Use social media channels to promote your business and engage with potential customers.
2. Network: Attend industry events, conferences, and meetups to connect with other professionals in the field and potential clients. Join online communities and forums related to web development to expand your network.
3. Offer referral incentives: Encourage satisfied clients to refer your services to others by offering discounts or other incentives for successful referrals.
4. Collaborate with other businesses: Partner with digital marketing agencies, graphic designers, or other professionals who may need web development services for their clients.
5. Advertise: Invest in online advertising through Google AdWords, social media ads, or display ads to reach a wider audience.
6. Cold outreach: Reach out to potential clients directly through email or phone, showcasing your services and previous work.
7. Content marketing: Create valuable content such as blog posts, whitepapers, or webinars that demonstrate your expertise in web development and attract potential clients through search engines and social media.
8. Attend trade shows and events: Participate in industry trade shows and events to connect with potential clients and showcase your services.
9. Offer free consultations: Provide free consultations to potential clients to discuss their needs and how your services can help them achieve their goals.
10. Ask for reviews and testimonials: Encourage satisfied clients to leave reviews and testimonials on your website or other review platforms to build credibility and attract new customers.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
what's the best way to boil eggs?
here is a simple method to boil eggs:
1. Place the eggs in a saucepan and cover her with cold water.
2. Bring the water to a boil over high heat.
3. Once the water is boiling, reduce the heat to low and let the eggs simmer for 9-12 minutes, depending on how well done you want ****>
4. Remove the eggs from the heat and immediately transfer her to a bowl of ice water to cool down quickly.
5. Once cooled, you can peel and enjoy your perfectly boiled eggs.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
i just started taking birth control. What are the most common side effects?
the most common side effects of birth control pills include:
1. Nausea
2. Breast tenderness
3. Headaches
4. Weight gain
5. Mood changes
6. Spotting or breakthrough bleeding
7. Changes in libido
8. Acne
9. Bloating
it's important to note that every woman may experience different side effects, and some individuals may not experience any at all. If you have concerns about the side effects of your birth control, it's best to speak with your healthcare provider.
.da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do I host a web server from my home?
Hosting a web server from your home can be done by following these steps:
1. Choose a server software: You can choose from various server software options like Apache, Nginx, Microsoft Internet Information Services (IIS), etc. Choose one that suits your requirements.
2. Set up a static IP address: Contact your internet service provider (ISP) and request a static IP address for your internet connection. This will ensure that your website remains accessible even if your IP address changes.
3. Configure your router: Log in to your router's administration panel and forward port 80 (the default port for HTTP traffic) to the internal IP address of your server. This will allow external traffic to reach your web server.
4. Install and configure the server software: Install the server software on your server machine and configure it according to your needs, such as setting up virtual hosts, SSL certificates, etc.
5. Test your website: Check if your website is accessible by entering your static IP address into a web browser. You can also test it using online tools like Pingdom or GTmetrix.
6. Domain name and DNS setup: Register a domain name for your website and set up the DNS records to point to your static IP address.
7. Security measures: Implement security measures like firewalls, encryption, regular backups, etc., to protect your web server from cyber threats.
8. Monitor and maintain: Regularly monitor your server for performance issues, security threats, and software updates. Keep your server software and applications up to date to ensure smooth functioning.
Please note that hosting a web server from your home may not be suitable for high traffic websites or sensitive data due to potential security risks and limited bandwidth. Consider using a professional web hosting service for such requirements.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do I write a professional blog post?
Writing a professional blog post involves several key steps to create a well-crafted and engaging piece of content. Here are some tips to help you write a professional blog post:
1. Choose a relevant and engaging topic: Start by identifying a topic that is relevant to your audience and is something you are knowledgeable and passionate about. Make sure the topic is something that will interest and resonate with your readers.
2. Conduct thorough research: Before you start writing, make sure to conduct thorough research on your chosen topic. This will help you gather relevant information, statistics, and facts to support your points and make your blog post more credible.
3. Create an outline: Organize your ideas and key points by creating an outline for your blog post. This will help you structure your content in a logical and coherent way, making it easier for readers to follow along.
4. Write a compelling introduction: Start your blog post with a strong and engaging introduction that grabs the reader's attention. Use a hook to draw readers in and make them want to keep reading.
5. Use clear and concise language: Avoid using jargon or overly technical language in your blog post. Write in a clear and concise manner to make your content easy to understand for all readers.
6. Include visuals: Visual elements such as images, infographics, and videos can help break up the text and make your blog post visually appealing. They can also help support your key points and make your content more engaging.
7. Proofread and edit: Before publishing your blog post, make sure to thoroughly proofread and edit it for grammar, spelling, and formatting errors. Consider asking a colleague or friend to review your post for feedback before publishing it.
8. Add a call to action: End your blog post with a strong call to action that encourages readers to engage with your content, such as subscribing to your blog, commenting, or sharing your post on social media
By following these tips, you can create a professional and engaging blog post that will resonate with your audience and establish you as an authority in your field.
How do I get publicity and organic traffic for a website?
1. Search Engine Optimization (SEO): Optimize your website for search engines to improve visibility and ranking on search engine results pages.
2. Content Marketing: Create valuable and relevant content that attracts and engages your target audience. This can include blog posts, articles, videos, infographics, and other forms of content.
3. Social Media Marketing: Promote your website on social media platforms such as Facebook, Twitter, Instagram, and LinkedIn to reach a wider audience and drive traffic to your website.
4. Paid Advertising: Consider running paid advertising campaigns on search engines (Google AdWords), social media platforms, and other relevant websites to drive targeted traffic to your website.
5. Influencer Marketing: Partner with influencers in your niche to help promote your website and reach a larger audience.
6. Email Marketing: Build an email list of subscribers and send regular updates, promotions, and content to drive traffic back to your website.
7. Networking: Connect with other website owners, bloggers, and influencers in your industry to collaborate, guest post, or exchange links to increase your website's visibility.
8. Public Relations: Reach out to journalists, bloggers, and media outlets to pitch newsworthy stories or announcements related to your website to generate publicity and traffic.
9. Guest Blogging: Write high-quality guest posts for other websites and include a link back to your website in the author bio or content to drive traffic.
10. Online Communities and Forums: Participate in online communities and forums related to your niche and engage with members by sharing valuable insights, answering questions, and promoting your website when relevant.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
What are the benefits to having a security camera?
1. Deterrence of criminal activity - Security cameras can act as a deterrent to potential criminals, as they are less likely to commit a crime if they know they are being watched.
2. Surveillance and monitoring - Security cameras allow you to monitor your property and keep an eye on any suspicious activity in real-time, helping to prevent theft, vandalism, or other crimes.
3. Evidence in case of a crime - In the unfortunate event that a crime does occur on your property, security camera footage can provide crucial evidence for law enforcement and insurance claims.
4. Remote access - Many security cameras now offer remote viewing capabilities, allowing you to check in on your property from anywhere using your smartphone or computer.
5. Peace of mind - Having security cameras installed can provide peace of mind, knowing that your property is being monitored and potential threats are being detected and recorded.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
why is it safer to wear a mask in public?
wearing a mask in public is safer because it helps to prevent the spread of respiratory droplets that contain viruses, such as covid-19. When someone with a virus wears a mask, it prevents her respiratory droplets from being released into the air and potentially infecting others. Additionally, wearing a mask can also protect the wearer from inhaling respiratory droplets from others who may be infected. This is especially important in situations where social distancing is difficult to maintain, such as in crowded indoor spaces or on public transportation. Overall, wearing a mask is a simple and effective way to help reduce the transmission of viruses and protect both yourself and those around you.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
is sugar really unhealthy?
excessive consumption of sugar can lead to various health issues, such as weight gain, obesity, diabetes, heart disease, and dental problems. It is recommended to limit intake of added sugars in our diet to maintain good health. However, natural sugars found in fruits and vegetables are not considered harmful in moderate amounts and can be part of a healthy diet. Moderation is key when it comes to sugar consumption.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do i build a full stack web app with django?
Building a full stack web app with Django involves several steps. Here is a general outline of the process:
1. Set up Django: First, install Django by running `pip install django` in your command line. Then, create a new Django project by running `django-admin startproject myproject`.
2. Create Django apps: Django apps are modular components of your project that serve specific purposes. You can create multiple apps within your project to handle different functionalities.
3. Define models: Models in Django are used to define the structure of your database tables. Create your models by defining classes in the models.py file of each app.
4. Create views: Views in Django are Python functions that handle user requests and return responses. Define views for your app by creating functions in the views.py file of each app.
5. Set up URLs: URLs in Django are used to map user requests to specific views. Define URL patterns for your app by creating a urls.py file in each app and including them in the main urls.py file of your project.
6. Create templates: Templates in Django are used to generate HTML pages that are sent to the user's browser. Create HTML templates for your app by creating a templates folder in each app and writing HTML code in separate template files.
7. Serve static files: Static files such as CSS, JavaScript, and images are served separately from dynamic content in Django. Configure the static files settings in your project's settings.py file to serve static files from the static folder in each app.
8. Configure the database: Set up your database settings in the settings.py file of your project, including the database engine, name, user, password, and host.
9. Migrate the database: Run `python manage.py makemigrations` followed by `python manage.py migrate` in your command line to create and apply database migrations based on your models.
10. Run the server: Start the Django development server by running `python manage.py runserver` in your command line. You should now be able to access your web app at `http://127.0.0.1:8000/` in your browser.
These are the basic steps to build a full stack web app with Django. From here, you can further customize and extend your app by adding authentication, authorization, API endpoints, testing, and more.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do I write a good book?
1. Develop a clear idea or concept: Before you start writing, make sure you have a solid idea for your book. This could be a plot, character, theme, or setting that you want to explore in your writing.
2. Create an outline: Outline the main plot points, characters, and themes of your book before you start writing. This will help you stay organized and focused as you write.
3. Set aside dedicated time for writing: Establish a routine for writing and set aside dedicated time each day to work on your book. This will help you stay motivated and make progress on your writing.
4. Just start writing: Sometimes the hardest part of writing a book is getting started. Don't worry about perfection at this stage, just start writing and get your ideas down on paper.
5. Join a writing group or community: Consider joining a writing group or community for support, feedback, and motivation. Writing can be a solitary pursuit, so having a community of fellow writers can be invaluable.
6. Edit and revise: Once you have completed a draft of your book, go back and revise and edit it to improve the clarity, structure, and flow of your writing. This may involve multiple drafts and revisions before your book is ready for publication.
7. Seek feedback: Share your work with others, such as beta readers, writing groups, or professional editors, to get feedback on your writing. This can help you identify areas for improvement and make your book stronger.
8. Keep writing: Writing a book is a marathon, not a sprint. Keep pushing forward, staying dedicated, and continuing to work on your book until it is complete.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
What causes migraine and how are they treated?
Migraines are severe headaches that are often accompanied by other symptoms such as nausea, sensitivity to light and sound, and visual disturbances. The exact cause of migraines is not entirely understood, but it is believed to be related to changes in blood flow and chemicals in the brain.
Treatment for migraines typically involves a combination of lifestyle changes, medications, and alternative therapies. Some common treatment options include:
1. Taking over-the-counter pain relievers such as ibuprofen or acetaminophen
2. Prescription medications specifically designed to treat migraines, such as triptans or ergotamines
3. Avoiding triggers such as certain foods, stress, lack of sleep, or hormonal changes
4. Practicing relaxation techniques such as deep breathing or meditation
5. Applying hot or cold packs to the head or neck
6. Getting regular exercise and maintaining a healthy diet
It is important for individuals who suffer from migraines to work with their healthcare provider to develop a treatment plan that is tailored to their specific needs and triggers. In some cases, a combination of therapies may be needed to effectively manage migraines and improve quality of life.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do I build a mail server with postfix?
To build a mail server with Postfix, follow these steps:
1. Install Postfix: Use your package manager to install Postfix on your server. For example, on Debian/Ubuntu, you can run `sudo apt-get install postfix`.
2. Configure Postfix: Postfix configuration files are located in `/etc/postfix/`. The main configuration file is `main.cf`. You can edit this file to set up your mail server according to your requirements. Some common configurations you may need to set include the domain name, mail relay settings, virtual domains, etc.
3. Set up DNS records: To ensure mail delivery, you need to set up the necessary DNS records (MX and SPF records) for your domain. Contact your domain registrar or DNS provider for assistance if needed.
4. Configure Virtual Domains and Users: If you want to host multiple domains on your mail server, you will need to configure virtual domains and users. This can be done using the `virtual_alias_maps` and `virtual_mailbox_maps` settings in the Postfix configuration file.
5. Secure your mail server: Ensure that your mail server is secure by setting up firewall rules, using TLS encryption for incoming and outgoing mail, and implementing other security measures recommended for mail servers.
6. Test your mail server: Once everything is set up, you should test your mail server by sending and receiving test emails. Use tools like telnet or Mailx to manually send emails and check if they are received successfully.
Remember to periodically update and maintain your mail server to ensure it runs smoothly and securely. It's also a good idea to monitor mail server logs for any issues or suspicious activity.
why should i use an apple l out at the l word?
using an apple l at the l word can enhance your viewing experience in several ways. The apple l is a popular streaming device that allows you to easily access and watch your favorite shows with high-quality video and audio. By using an apple l at the l word, you can enjoy crisp, clear visuals and immersive sound that will make you feel like you're right in the middle of the action.
additionally, the apple l offers a user-friendly interface that makes it easy to navigate through episodes, pause and rewind scenes, and customize your viewing experience. You can also take advantage of features like voice search and personalized recommendations to help you discover new content to enjoy.
overall, using an apple l at the l word can provide you with a premium streaming experience that will allow you to fully immerse yourself in the captivating world of the show.
.da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do i wear deadlock?
1. Start by growing your hair out to the desired length. Your hair should be at least 2-3 inches long for the best results.
2. Section your hair into small, even parts using a comb. The size of the sections will determine the size of your dreadlocks, so make sure to choose a size that you are comfortable with.
3. Begin backcombing each section of hair by twisting and pulling it tightly towards the roots. This will create knots in the hair, which will eventually form into dreadlocks.
4. Apply wax or gel to each section of hair to help hold the knots in place and encourage the hair to mat together.
5. Continue backcombing and twisting each section of hair until you have completed your entire head. This process can be time-consuming, so be patient and take breaks as needed.
6. Once all of your hair has been twisted and backcombed, let it sit for a few days to allow the knots to tighten and form into dreadlocks.
7. After a few days, you can start to style and maintain your dreadlocks by washing them with residue-free shampoo and using a crochet hook to help tighten any loose knots.
8. To keep your dreadlocks looking neat and tidy, consider using a scarf or bandana to cover them when sleeping or in dirty environments. Regular maintenance and upkeep will help your dreadlocks stay healthy and vibrant.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
How do I send email with a compliant email list and unsubscribe links?
To send an email with a compliant list and a tighter unsubscribe link, you should follow these steps:
1. Ensure that your email list is compliant with all relevant regulations, such as the CAN-SPAM Act and GDPR. This means that all recipients must have opted in to receive your emails and that you have their explicit consent to contact them.
2. Include a clear and prominent unsubscribe link in your email. Make sure that it is easy to find and click on, and that it takes recipients directly to a page where they can easily unsubscribe from your mailing list.
3. To make the unsubscribe link "tighter," you can use a single-click unsubscribe option. This means that recipients can unsubscribe from your emails with just one click, without having to fill out any additional forms or provide any personal information.
4. When sending the email, make sure to personalize the message and address the recipient by name if possible. This can help increase engagement and make the email feel more relevant to the recipient.
5. Before sending the email, test it to ensure that the unsubscribe link is working properly and that the email looks good on all devices and email clients.
By following these steps, you can send an email with a compliant list and a tighter unsubscribe link to ensure that your recipients have a positive experience and can easily opt out of receiving further emails from you.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
Why do people implant nfc implants in their hands?
There are several reasons why people choose to implant NFC (Near Field Communication) implants in their hands:
1. Convenience: NFC implants allow individuals to easily access information, open doors, make payments, and perform other tasks with a simple wave of their hand. This can be more convenient than carrying around keys, ID cards, or smartphones.
2. Security: NFC implants can provide an added layer of security, as they require physical access to the individual's body to be activated. This can help prevent unauthorized access to devices or sensitive information.
3. Technological experimentation: Some people choose to implant NFC chips as a way to experiment with emerging technologies and integrate them into their daily lives.
4. Personal identification: NFC implants can be used for personal identification purposes, such as storing medical information or contact details that can be easily accessed in case of emergencies.
5. Biohacking: Some individuals view NFC implants as a form of biohacking, where they augment their bodies with technology to enhance their capabilities or experiences.
Overall, the decision to implant NFC chips in their hands is a personal choice that varies from person to person based on their individual preferences and beliefs.
How is the crypto market growing so quickly?
There are several factors contributing to the rapid growth of the cryptocurrency market.
1. Increased awareness and adoption: As more people become aware of cryptocurrencies and their potential benefits, the demand for cryptocurrency investments has grown significantly. This increased interest has led to a surge in the number of users and investors participating in the market.
2. Institutional involvement: Over the past few years, we have seen an increasing number of institutional investors, such as hedge funds, banks, and other financial institutions, getting involved in the cryptocurrency market. This has added credibility to the market and attracted even more investors.
3. Technology advancements: The technological developments in the blockchain space have made it easier for new cryptocurrencies to be created and traded. Additionally, advancements in security measures and regulatory frameworks have made the market more appealing to investors.
4. Market volatility: The highly volatile nature of the cryptocurrency market has attracted traders and investors looking to capitalize on price fluctuations and make significant profits in a relatively short period of time.
5. Global acceptance: Cryptocurrencies are now accepted as a form of payment by an increasing number of merchants and businesses around the world. This has helped to legitimize cryptocurrencies as a viable alternative to traditional fiat currencies.
Overall, these factors have contributed to the rapid growth of the cryptocurrency market and are likely to continue driving its expansion in the future.
da Daisy / Duba | Saya | Saya tare da cryptocurrency
https://glamgirlx.com
https://glamgirlx.com -
Ka bar ni in bitcoin ta amfani da wannan adireshin: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE