Fianarana sy fiarovana ara-pinoana ara-pinoana sy fiarovana amin'ny alàlan'ny ohatra Fanabeazana fahatelo Charlotte Harper 3 Jolay 2024 Nohavaozina / niova fo 3 jona 2025
Forword:
Ny fiheverana ny fiarovana ny tranokala ho an'ny Internet dia ampahany manan-danja amin'ny drafitry ny mpamorona sy ny fanatanterahana tranonkala raha ny prototype iray izay azo itokisana, maharitra ary ilaina amin'ny tanjona azo ampiharina. Ny fanamboarana ny dom (antontan-taratasy momba ny antontan-taratasy), miaraka amin'ny fampiharana ny HTML, JavaScript, ary ny rindrambaiko Backend ary ny fampiasa amin'ny Internet dia manome fahafaham-po sy fampiasa amin'ny alàlan'ny fanehoana faneva sy ny fanetren-tena ary ny fanehoana ny fampiasana sy ny serivisy sy ny serivisy manan-danja izay mahasarika sy ny serivisy izay mahasarika sy ny serivisy rehetra Ho an'ny salanisa salanisa, ny mpampiasa farany dia mitady hamono fotoana na hanao zavatra atao amin'ny Internet, mazàna amin'ny fitaovana finday mampihetsi-po. Ny ankamaroan'ny olona dia tsy hahafantatra hoe aiza no hanombohana azy ireo rehefa te-hanorina tranokala avy amin'ny tranokala izy ireo ary hanangana ny fitaovana iray amin'ny alàlan'ny fanindriana ny vola ary ny fandoavana ny rindrambaiko dia ny olona vitsy dia naniry ny hampiasana azy ireo fa ny olona dia te-hampiasa azy ireo ny fetrany. fandanjalanjana. Raha manana minitra vitsivitsy ianao hamaky ity boky ity ary hianarako izay tiako hampianarana anao, na hiresaka amiko manokana momba ny tanjonao ary manorata ny rindrambaiko hianaranao, dia ny tranokala mahery sy manan-danja, izay misy anao rehetra ary manao izay tianao sy ny zavatra tadiavinao.
Momba ahy: Mpanamboatra rindrambaiko misy traikefa be dia be ao amin'ny C / C ++, Java, Python, HTML, CSS ary JavaScript. Manorina tranonkala te-hampiasaina aho, te-hitsidika, ary mbola zatra ny mampiasa fotsiny mba hianarana fotsiny, hanalefaka sy hamono fotoana, ary ny tena zava-dehibe, dia mivarotra rindrambaiko aho. Raha manana hevitra momba ny tena tianao ny tranokala hijery sy hiasa ianao, dia vonona ny hanohana ahy ny vola, ary hanangana anao ny YouTube, Tiktok, Twitter, Google, Google, na ny Google Security, na i Google ihany no afaka miditra. Raha tokony hiezaka ny hivarotra anao aho, dia miezaka ny hividy anao aho: Te-hiresaka anao amin'ny fananganana fampiharana (tranonkala) miaraka amin'ny fampahalalana efa misy ianao, ary mampianatra anao ny mpikarakara rindrambaiko mahaleo tena, izay mitarika asa mahomby amin'ny sehatra rehetra tadiavinao. Ary avelao ho mazava aho, tsy ho takatry ny saina ny fampianarana homeko anao. Azonao atao ny mandeha mianatra ary mianara an'izany amin'ny fanabeazana ofisialy, na am-pianarana na mamaky an'io boky io aza, fenoy ny andraikinao, ary esory amin'ny fianaranao, fa tsy hametraka anao amin'ny seza mafana aho ary hangataka anao hamita andraikitra. Tsy mpampianatra anao aho, afaka mieritreritra ahy toy ny namana te hitari-dalana anao amin'ny asa entin'ny fahombiazanao manokana. Ary tsy amidy anao ny fahombiazana, mila mividy izany amin'ny fotoananao ianao. Ny fianarana ny code dia manana curve fianarana mideza ary tsy mora na oviana na oviana na oviana na oviana. Mila miasa mafy toa anao ianao ary afaka manohy manandrana sy tsy mahomby ary manandrana indray na dia diso fanantenana aza ianao mba hianaranao sy hanangana ny tenanao. Izany no fototry ny kaody. Ny kaody dia tarihin'ny mpamorona iray izay natao hanomezana ireo hafatra diso momba ny programmer, ary ireo dia hampianatra anao ny fomba code, na dia mandika fotsiny ny hadisoana ao anaty motera fikarohana ianao ary mamaky ny ohatra fikarohana hafa. Ary tsy maintsy milaza aho fa tsy mila manankarena be loatra ianao, maranitra, mahomby, na antsipirihany na fandaminana na fandaminana hanamboarana fampiharana. Ny solosaina dia mikarakara an'io fikambanana io ho anao. Mila maharitra fotsiny amin'ny fitsapana sy ny hadisoana ianao, tariho ny fifantohana ary hiasa mafy amin'izay ataonao, ary hanana asa mahomby ianao amin'ny fanatanterahana izay ataonao.
Iza aho: Tsapako fa ny fizarana farany dia ny fianarana sy ny fomba hianaranao amin'ny fomba iray amin'ity boky ity. Iza marina aho? Izany no fanontaniana sarotra sarotra. Tsy hadino ny momba ahy, satria mijaly amin'ny toe-pahasalamana aho, izay afaka manasarotra ahy na dia ny code na ny fanoratana io boky io indraindray, raha manatrika olana amin'ny fiaraha-monina sy ny maha-izy azy ny mampiditra ny tenako. Raha fintinina, raha mamaky ity boky ity ianao, dia nentinao an-trano satria nandalo azy ianao ary nieritreritra fa ilaina izany, na raha vao mamaky izao ianao, dia olona toa azy izay te hahita anao hahomby amin'ny zavatra rehetra ataonao. Injeniera aho, mpamorona rindrambaiko, ary mpianatra, ary manoratra ity boky ity ho an'ny mpianatra hafa aho izay maniry ny hanamora ny fiainany amin'ny alàlan'ny piozila iray izay mety amin'ny fampiharana sy ny fampiasa ary ny fiasa izay mety hahasarika ny fahombiazana, izay mety handroaka ny asa. Raha ny marina, izao no ataoko: Manamboatra fampiharana aho mba hanampiana ny tenako sy ny olon-kafa hahomby. Izaho koa dia mpanoratra ihany koa, na dia izao no boky voalohany nataoko mba hamita ny portfolio-ko ho antontan-taratasy mahasoa, ary mpanakanto ihany koa aho. Ekeko izany aminao, dia manana endrika hafahafa aho. Tsy lavorary aho, efa nihazakazaka tamin'ny Lalàna aho na dia nitarika ahy handao oniversite sy oniversite ary avelao ny fanjakana mba hiezaka hanao anarana ho an'ny tenako amin'ny fahombiazana bebe kokoa. Vehivavy aho amin'ny fahaterahana, manao akanjo makiazy aho, maka sary ny tenako, mitafy akanjo sy akanjo hafa, ary tsy mahatsiaro tena ho vehivavy aho. Nanana olana tamin'ny olon-kafa aho taloha izay nitarika ady amin'ny fanoratana sy fanorenako webapps, ary miala tsiny aho fa tsy afaka nahazo ity boky ity tamin'ny tananao haingana: Nila izany ianao. Te-hamaky sy hanoratra fehezan-dalàna toa ny ahy ianao ary miasa toy ny ahy ary manao toy izany ihany fa na dia afaka mividy io boky io aza ianao dia tsy afaka mividy vola fotsiny, fa manana ny loharano ilainao amin'ny fiainanao ianao. Nanana olana isan-karazany tamin'ny fitomboana ny fianakaviana, ny toe-pahasalamana, ny dokotera, ny haino aman-jery ary ny lalàna, ary ny fitsipiko ary ny fitsipiko dia maneho ny tolona izay misy ny maha-vehivavy sy ny vehivavy. Na izany aza, ity boky ity dia zavatra tena tiako be, ny zanako, ny portfolio-ko, ary ny fivelomako, ka mankasitraka ny fandinihanao aho rehefa maka ilay lahatsoratra ianao ary manindrona azy io mba hianarana avy amiko. Azafady, tsarovy fa tsy lavorary aho, ity boky ity dia hanana hadisoana, fanitsiana, ary fanontana vaovao, ary mila mieritreritra ny atidohanao lojika tsara indrindra ianao mba hananana traikefa mahomby amin'ny fanoratanao. Fantaro ihany koa fa ny tiako holazaina aminao na dia miatrika fanamby aza ianao rehefa manoratra. Saintsaino izao: Rehefa afaka manofa rafitra informatika ianao mba hanao izay azonao eritreretina ao amin'ny habaka nomerika, dia asaina ny fampahalalana rehetra iainanao, ary ho fantatrao fa hiatrika zava-tsarotra ianao ary hahita olana amin'ny fampahalalana ataonao sy ny famoahana azy. Lazaiko aminao izany satria sendra zava-tsarotra mitovy aho. Ampiasao ity boky ity amin'ny risika anao manokana, miara-miasa amin'ny vondrom-piarahamoninao sy vondrom-piarahamoninao izay manorina rindrambaiko ao anaty toerana azo antoka, ary tsy maintsy hahomby amin'ny fomba ratsy ianao, ary tsy hahomby amin'ny fomba ratsy rehetra noho ny fombafomba eran-tsotra Asa, Internet. Mety tsy ho fantatrao tsara hoe iza aho, fa ny teny vitsivitsy monja, fa mamporisika anao aho hamaky, hahalala ahy ianao rehefa manohy mamaky sy manohy ny tetikasanao hamita ny asanao manokana hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao manokana mba hamita ny asanao. Tsy hisy ny enti-mody miaraka amin'ity boky ity, raha mbola tsy manendry anao ny mpampianatra na mpampianatra anao, fa tena mamporisika anao aho hanorina portfolio an'ny tetikasa momba ny tenanao rehefa mamaky, ary koa ny tetik'asa Capstone mampiseho ny fomba hianaranao. Ny tetik'asa CAPSTONE no fototry ny ankamaroan'ny zavatra novakianao tao amin'ity boky ity, satria ny kaody sy ny toro-hevitra iray izay nanampy ahy dia afaka nanoritra sy nanoritra azy ireo ny namanao na ny fianakavianao, amin'ny Internet, amin'ny Internet, na amin'ny vaovao.
Inona ny boky hoe: Ity boky ity dia fampianarana amin'ny alàlan'ny ohatra. Azonao atao ny mahita ny kaody eto, torolàlana momba ny fomba hianaranao code, ny fampahalalana momba ny code debugging sy ny fanamboarana ny fomba fiasa, ny famerenanao ny kaody, ary ny maha-zava-dehibe anao, ny maha-zava-dehibe azy, ary ny fomba hanehoana ny tenanao, ny sarinao ary ny sarinao ary koa ny rindrambaiko izay haorinao amin'ny hazavana tsara indrindra indrindra mba ho tsara tarehy indrindra araka izay azo atao amin'ny mpampiasa farany anao, ny mpitsidika ny tranokalanao. Ao amin'ity boky ity, dia hasehoko ohatra maromaro momba ny famolavolana rindrambaiko misy fifantohana amin'ny tranonkala amin'ny sehatra ho sehatra ary koa ny fiarovana. Hanomboka ny traikefa fianarana amin'ny alàlan'ny fananganana tetikasa fototra amin'ny fampiasana ny akorandriaka Unix, miaraka amin'ny endri-javatra sy ny script. Avy eo, handinika tranonkala bilaogy fototra isika, hanavao ny bilaogintsika miaraka amin'ny sary sy ny horonantsary ary koa hampiasana ireo endri-javatra ireo hampiasa vahaolana amin'ny fiarovana amin'ny fampiasana rindrambaiko maimaim-poana, ary azo antoka ny mpizara iray (pam). Hodinihintsika avy eo ny fitantanana ny rakitra sy ny fanodinana, ny famolavolana ny fanitsiana horonantsary, fanomezana feo, fanodinana ny barcode ary ny fankatoavana optika, anisan'ireo hevitra hafa. Amin'ny fomba hizahantsika ny apis izay hanampy antsika hanao rindrambaiko ilaina sy azo antoka kokoa, miaraka amin'ny safidy malalaka sy karama. Teny an-dalana, dia handinika ireo fitaovana fiarovana sy fitaovam-piadiana sy ny famolavolana monisipaly sy ny famoaham-bolam-peo sy ny famoizam-po sy ny famoizam-po sy ny drone isika, ary ny birao hafa dia hiarahanay amin'ny tambajotra efa misy mba hiarovana ny rindrambaiko ary haneho ny fiarovan-tena sy ny fialan-tsasatra. Hanao fiatoana isika amin'ny fanamboarana lalao, ny milina 2D sy 3D, ary miara-miasa amin'ny fitaovana voampanga raha toa ka misy ohatra momba ny rindrambaiko fandoavam-bola ambany sy fametahana elektronika izay voaroaka amin'ny vy vita amin'ny silicone. Mandritra ny lalana, dia hampiasa vahaolana fianarana milina efa misy ihany koa isika mba hahazoana antoka tsara ny rindrambaiko. Izahay koa dia hampiasa fitaovana tahiry azo alaina amin'ny Internet mba hahafahana mihetsika sy hiaro ny dingana. Ity boky ity dia torolàlana ho an'ny fahombiazanao amin'ny fananganana tranonkala tranonkala ary mampiditra azy amin'ny rafitra matihanina matihanina sy ny rafitra mekanika, ary ny torolàlana amin'ny ankapobeny hananganana rindrambaiko sy ny fanamboarana fitaovana tsy misy dikany na ny traikefa teo aloha.
Tsy ity boky ity: Raha tena te hanana tranonkala ianao, dia afaka mametraka fivarotana tsotra fotsiny ary amidio ny zavatra ilainao, mandefa bilaogy, sary na horonan-tsary, na raha tsy izany dia tsy misy tsipika tokana. Tsy izany ity boky ity. Ity boky ity dia hampianatra anao ny fomba hanamboarana ny rindrambaiko izay mahasoa sy azo aseho ary azo antoka kokoa noho ny rindrambaiko izay mbola tsy hita, ary tsy mitsoaka ny orinasa taloha, ary tsy misy fiangaviana ny orinasa izay tsy nanao na inona na inona. Raha manaraka akaiky ity boky ity ianao dia te hanoratra kaody, kaody fikarohana, amboary ny fampiharana anao manokana, ary hahazo vola amin'ny zavatra ataonao ianao. Hahazo vola avy amin'ity boky ity aho, na dia amin'ny ambaratonga voalohany aza, satria misy ny fampahalalana ilain'ny olona sy te hamaky, ary efa mividy rehefa mividy na mampiasa ny fampiharana azy ireo. Ity boky ity dia tsy hanangana fampiharana ho anao, fa hanondro anao amin'ny lalana marina sy ny sandrinao miaraka amin'ny fitaovana ilainao sy ny fizaram-bola ianao, ary ny mpomba anao, ny mpitsidika, ny mpiadidy, ny mpiadidy, ny mpiadidy, ny mpiady, ny mpiady, ary ny vahoaka amin'ny Internet dia te hampiasa sy hanohana.
Inona no hianaranao: Ity boky ity dia hampianatra anao ny fomba hananganana sy hivarotra rindrambaiko, rindrambaiko tena ilaina, ny fampahalalam-baovao, ny filaharahana dia manamarina, rakitsoratra ary sary, ary ny hafatra momba ny serasera (NFC). Ity boky ity dia hampianatra anao ny fomba fampiasana solosaina tambajotra, ny fomba hanamboarana ny kaody Bash, ny fanamboarana ny rindrambaiko ho an'ny Bootstrap, ary ny fanamboarana ny logins sy ny fampifangaroana amin'ny tambajotra, hanangana ny haino aman-jery sy ny tambajotra miaraka amin'ny tranonkala hafa Maneho ny endri-javatra fiarovana toy ny hafatra momba ny fanamarihana na tanjona hafa, ny fanodinana ID, ny sary sy ny fanetren-tena, ny drafi-dratsy mba hitazomana ny rindrambaiko, ny fanodinana fandoavam-bola, ny asa fanaovana krizy, ary ny asa fanatanjahan-tena, ary ny asa fanatanjahan-tena, ary ny asa maizim-pitondrana, sy ny asa ratsy, ary ny asa maditra, ary ny maro hafa. Hianaranao ny fomba hanamboarana ny fitaovana Bluetooth anao, miaraka amin'ny bateria, ny mpamboly, ny microcontroller, ny fizaran-tarehy, ny motera ary ny sensor, ny fampiasana ny solder, tariby ary ny 3D ary ny fanontana 3D ary ny fitaovana fanoratana ary ny fitaovana 3D. Hampiseho defitée amin'ny alàlan'ny famolavolana 3D aho amin'ny fanamboarana sy ny fitaovana ary ho faty, mba hahafahanao manamboatra fitaovana misy anao sy ny hardware miaraka amin'ny bateria, chargers, siramamy ary fiasa. ary navoakan'ny Bluetooth sy ny tranonkala. Raha mandinika manokana isika, dia handinika fanadihadiana roa, ny fametahana mandoto ary ny basy an-trano, na ny fandaharam-potoam-pandaminana, izay misy ao amin'ny OpenScad, izay azo ampiasaina ho toy ny fampidirana an-tsary na fampivoarana andalana ary azo ampidirina ao anaty tranonkala haingana. Hianaranao ny fomba hananganana sy hametraka tranokala avy amin'ny tany tsy misy traikefa mialoha, ataovy azo ampiharina sy tsara ary lehibe indrindra. Hianaranao ny fampiasana ny fianarana milina sy ny fahitana amin'ny solosaina mba hanamboarana tranonkala sy rakitsoratra sy firaketana an-tsoratra amin'ny alàlan'ny tranokala izay ahafahanao mampifanaraka ny fampahalalana mahasoa anao, ary na dia ny zavatra ilaina rehetra aza dia ento ny olona rehetra amin'ny rindrambaiko sy ny orinasanao. Ity boky ity dia hifantoka indrindra amin'ny haino aman-jery, ny fianaram-pirenena ary ny fianarana milina, izay singa lehibe telo izay hanampy anao hanangana ireo mpampiasa mahasoa amin'ny alàlan'ny hetsika izay tena misy, azo ampiharina ary mandray tanana ary mandray an-tanana ary mandray anjara amin'ny fotoana sy ny fandraisana andraikitra. Ity boky ity dia mampianatra Unix, Debian (Ubuntu (Ubuntu), Bash Shell, Python, HTML, CSS, JavaScript, ary fonosana rindrambaiko mahasoa ho an'ny fangatahana, ary koa ny rindrambaiko Bash mahasoa toa an'i Git sy FFMPEG. Hampianariko anao koa ny fomba hividianana cryptocurricanda, ary handray vola amin'ny cryptocurrency na avy amin'ny carte de debit tsy tapaka na dia mandoa ny mpitsidika anao aza ny fidiram-bolanao raha misafidy ny hanao izany ianao. Hampianariko anao ny fomba hahazoana vola avy amin'ny tranonkalanao amin'ny alàlan'ny dokam-barotra ihany koa, ny fomba hanomanana ny fampiharana anao amin'ny milina fikarohana ary hampifamadihao azy ireo amin'ny laharana voalohany ho an'ny mpanjifanao hitadiavana anao, ary ny laharana amin'ny fikarohana mahazatra araka izay tratra. Hampianariko anao ny fomba amidy ny rindrambaiko, ny hametraka izany, antsoy ny mpanjifa mitady ny serivisinao, ary hanao anarana ho an'ny tenanao amin'ny Internet amin'ny alàlan'ny fomba tsy misy, ary miasa tsara. Hampianariko anao ny fomba hamonjy ny angon-drakitrao amin'ny solosaina Cloud izay miasa ho anao ary manangona ny tranokalanao, ary ny fomba handraisan'ny mpampiasa anao dia miverina ao amin'ny tranokalanao ao ambadiky ny kitapom-bolanao ao ambadiky ny kitapom-bolanao. Ity boky ity dia hifantoka amin'ny fampiharana ny famoahana sy ny fizarana haino aman-jery amin'ny sary mankany amin'ny sary mankany amin'ny sary amin'ny sary, ary ny famokarana ny tenanao sy ny tenanao ary ny orinasanao sy ny orinasanao sy ny orinasanao dia tsara amin'ny fomba tsara indrindra. Hianaranao toro-hevitra vitsivitsy sy tricks avy amiko, avy amin'ny toro-hevitra momba ny coding, ny fanaovana zava-poana sy ny sary, ny fanodinana ny tenanao sy ny fandraisam-bahiny amin'ny alàlan'ny fanao amin'ny fotoana mahasalama dia tsy misy ezaka intsony, tsy misy ezaka, asa, na vola tsy ilaina. Ity boky ity dia antsoina hoe "azo ampiharinaNy fianarana sy ny filaminana mifototra amin'ny tranokala "noho ny antony: Miresaka momba ny fianarana, indrindra amin'ny Internet, ary misy ny fomba fiasa izay hikarakarana ny sary, ny sary sy ny fanamboarana sary, ny fanatsarana sary, ny fanatsarana ny sary, ny sary ny captioning, ary ny asa hafa toy ny metaly faminaniana nalaina avy amin'ny sarin-tsary, toy ny sarin'ilay sary, na sary azo antoka, na ny sarin-tsambo), fa mety hampiasaina izany raha toa ka misintona anao izany. Azonao atao ny manao Ny solosaina mpizara ity dia azo antoka, solosaina izay hangataka anao amin'ny anarana sy ny passcode ary ny adiresy IP vaovao, toy ny serivisy mailaka, toy ny serivisy mailaka na ny serivisy an-tsoratra, na ny sekolin'ny hafatra, na ny sekolin'ny lahatsoratra, na ny olona iray izay ampiasainao). Na iza na iza manorina rindrambaiko izay azo antoka tsy azo ekena dia misy dikany ny dikan'izany. Ny rindrambaiko dia tsy milamina satria ny fitaovana sy ny kaonty izay ampiasainay hidirana dia tsy ao amin'ny tanantsika foana, mety ho eo am-pelatanan'izy ireo ny olona marary mafy noho ny rindrambaiko ary noho izany dia mety hampidi-doza ny rindrambaiko izy ireo. Ity no zavatra ifantohan'ny boky ity. Ny solosaina iray mifandraika amin'ny tamba-jotra dia azo antoka miaraka amin'ny marika lava sy ny fanalahidy lava, ary ny fanalahidin'ny akorandriaka tsara indrindra, ary azo antoka tsara indrindra amin'ny mpizara tranonkala iray, satria ny mpizara tranonkala dia manome ny fidirana malalaka ary ny toeran'ny fiarovana ny kanto mandeha amin'ny mpizara. Ny mpizara tranonkala dia miditra amin'ny tranonkalan'ny mpampiasa mpampiasa, izay azo inoana fa ny ampahany mahery indrindra amin'ny fitaovan'ilay mpampiasa, satria io no toerana ahafahan'ny mpampiasa miditra rindrambaiko network network. Ity kitapom-pitaovana ity dia afaka manome lahatsoratra, ny tranokala hitanao ary afaka manoratra sary, audio ary video (sorat-pilazana na sôkôla izay azo vakiana ary nosoratan'ny mpizara tranonkala iray izay mifatotra amin'ny tranonkala. Mampiasa ny fitaovana rehetra amin'ny alàlan'ny famatsiam-bola anao, izay hahalalanao ny tenanao amin'ny fahalalana ny tranokala azo antoka, ary amin'ny ankapobeny ny rafitra informatika azo antoka izay miasa ho anao, dia ny tolotrao ary ny fijerinao sy ny fijerinao
Aiza no hanombohana: Tongasoa ianao raha te-hitsambikina ilay fizarana izay atombohiko ity boky ity miaraka amin'ny boky, na ny fizarana tena ilainao, indrindra raha manana traikefa amin'ny fanoratana an-tsipiriany aho na koa ny fampiroboroboana ny tranga sy ny ohatra azo ampiharina ao aminy. Raha tsy manana traikefa amin'ny fanoratana ianao, dia manoro hevitra anao aho hamaky ity boky rehetra ity, ary indrindra ny hanoro hevitra anao hamaky ireo fizarana teo aloha, mba hahazoana antoka fa mety aminao ity boky ity. Raha tsy mety aminao ity boky ity, dia diniho ny mampiavaka azy amin'ny namana na havana mety hahaliana ny fianarana momba ny fampandrosoana ny tranonkala, ary heverinao fa hindrana azy ireo ary hangataka ny hantsana izay tsy nandalovako anao tamin'ny maha-mpampianatra anao aho, na mpampianatra hafa teo anoloako. Atombohy amin'ny toerana misy anao, ny faritra rehetra amin'ity boky ity dia ilaina raha mikasa ny hanorina fampiharana mahasoa ianao, ary hevero fa ny fampiharana tsara indrindra dia namboarina miaraka amin'ny mpampiasa farany ao an-tsaina: Fantaro ny mpanjifanao. Ankehitriny mahalala ahy ianao, fantatrao ity boky ity, ary vonona ny hanomboka ianao. Hanombohana, hisintona solosaina (na dia ny solosaina mora indrindra aza avy amin'ny fivarotana boaty, dia ny Amazon, na ny desktop taloha, ary apetraho amin'ny fomba izay miasa ho anao.
Ahoana ny fomba hamakiana ity boky ity: Ny lahatsoratra nasongadina, dia manondro fa ny lahatsoratra dia ao anaty baikon'ny baiko, izay hanoratanao ny kaody radinao. Ny baikon'ny baiko dia mifantoka amin'ny fitendry be dia be ary tsy mila mipetaka, manafaingana ny asanao ary manamora ny zavatra aminao.
Hanomboka: Andao hisintona ao. Hanomboka amin'ny alàlan'ny fanorenana ny kaody fananganana eo an-toerana iray isika ary hanomboka tsy hanangana tranokala mifandray amin'ny Internet. Ity dia azo antoka kokoa ny manomboka, tsy maninona ary tsy mora ho anao. Miankina amin'ny rafitra fandidiana anao, ny fidirana amin'ny akorandriaka iray dia ho somary hafa kely. Ho an'ny Mac OS, manoro hevitra ny mametraka milina virtoaly aho amin'izao fotoana izao, satria hahazo ny mifanaraka amin'ny milina virtoaly ianao. Ny mpamatsy isan-karazany toy ny virtoaly sy ny parolells dia afaka mihazakazaka milina virtoaly ho anao, na dia azo atao ihany koa ny mametraka mivantana ny Ubuntu eo amin'ny milina, raha aleonao ny mampiasa teratany teratany izay atolotra anao mba hamoronana traikefa haingana sy haingana. Raha mampiasa linux na varavarankely ianao, izay atoroako dia tokony ho mora be ny mamorona tetikasa. Sokafy ny terminal anao, amboary ny size araka izay hitanao fa mety, ary atombohy manaraka ny Dingana 2. Raha mampiasa Windows ianao dia araho ny Dingana 1.
Dingana 1: - mpampiasa Windows ihany Ao amin'ny Windows, Open Command Command Prompt ho mpitantana sy karazana wsl -install
Dingana 2: Ao amin'ny terminal misokatra, (miankina amin'ny OS anao, antsoina hoe Ubuntu ao amin'ny Windows, terminal amin'ny Mac na Linux, na anarana mitovy), atombohy amin'ny famoronana tetikasa. Izahay dia manao izany amin'ny baiko MKDIR, izay miteraka lahatahiry. Raha mila mamorona lahatahiry ianao hitahiry ny tetik'asa, izay atolotra, ampiasao ny baiko CD hiova amin'ny lahatahiry sy
CD / Lalana / to / directory - Ny lalana dia ny lahatahiry (rakitra) izay mialoha ny lisitry ny lahatahiry anao, ny làlanao default dia ~ na / trano / anarana / anarana (izay anaranao). Mba hiova amin'ny lahatahiry default, karazana CD na CD ~ Mkdir Ohatra - manolo ny "ohatra" miaraka amin'ny anaran'ny lahatahiry
Manana lahatahiry asa ho an'ny tetik'asa ianao izao. Ny maha-zava-dehibe azy dia ny fananana io lahatahiry io dia mila mitodika amin'ny milina hafa na manafoana ny kaody izay soratanao ka vonona ny hanangana script izahay mba hamerenanao ny lahateninao amin'ny dingana vitsivitsy. Saingy ny fanamboarana script dia misy kaody kely, ary ny kaody dia mila automatique mba ho ilaina araka izay azo atao. Koa andao hanangana script hanorina script aloha. Andao atombohy amin'ny famoronana ny script ary hanatanteraka izany. Izahay dia hampiasa sudo, chmod ary hikasika an'io, ary antsoy ny soratra hoe "Ascript".
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Ankehitriny dia namorona ny script isika, natao ho tanterahana ary vonona ny hanova azy. Nano dia mpanonta lahatsoratra izay hamela anao hanova ny lahatsoratra tsy misy tsindrio, izay mora kokoa noho ny fampiasana interface tsara mpampiasa. Hanova ny rakitra miaraka amin'i Nano, mampiasa Nano ary avy eo ny lalana mankany amin'ny rakitra. Mba hanaovana script izay manao script dia mitovy amin'ny fanaovana ny sora-pianay amin'ny toerana voalohany. Izahay dia hampiasa ny kaody mitovy amin'ny etsy ambony, ny fanoloana ny anaran'ilay script, "Ascript" miaraka amin'ny tarehimarika mifamaly, $ 1. Ity dia mamela antsika hiantso ny script amin'ny fanoratana sary an-tsary momba ny sary an-tsary Sudo, izay afaka mamorona script vaovao amin'ny alàlan'ny fanoloana ny "Gazety" amin'ny script. Ny kaody ao Nano dia tokony ho toy ny:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
Ary ny hanakatonana nano, afaka mitazona ny lakilen'ny fanaraha-maso isika ary manindry an'i X, avy eo ny hanondroana ny rakitra, ary hikapoka. Ankehitriny, fa tsy soraty ireo baiko telo ireo mba hanovana ny script, dia ho afaka hanao karazana fanondro hosoka hanoratana ny sudo hanitsiana ny script indray isika. Ity asa ity! Ary ny script vaovao dia afaka mihazakazaka mora foana amin'ny fiantsoana azy ao anaty akorandriaka. Andao isika hamonjy ny asantsika izao: Andao hanoratra script backup mba hamonjy ny script vaovao ary avy eo avereno ao amin'ny lahateninay amin'ny tetikasa izahay, raha manohana ny script backup.
sudo ascript backup
Ankehitriny, ao Nano:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
Aiza / lalana / to / directory no lalana mankany amin'ny tetikasa noforoninao niaraka tamin'i Mkdir. Taty aoriana dia hianarantsika ny fomba handefasana ny lalan-dresaka toy izao miaraka amin'ny tadivavarana sy lisitra iray, izay tsy dia misy code, fa izao dia avelao ho tsotra sy hanana tsipika vitsivitsy isika. Mba hampandehanana ity script ity sy ny famerenanao ny kaody anao, ny fametahana ny rakitra ao Nano miaraka amin'ny fanaraha-maso + x, y ary miverina, ary soraty ao anaty akorandriaka
backup
Raha amporisihana amin'ny tenimiafina rehetra ianao raha mamaky ity boky ity sy manaraka ny akorandriaka, azafady ampidiro tsara ny tenimiafinao mpampiasa anao, dia hanana fiezahana telo ianao alohan'ny ilainao indray ny baiko. Azonao atao ny mampiasa ny zana-tsipìka miakatra sy midina amin'ny famerenam-bokatra sy hanova azy ireo, tokony mila mihazakazaka na inona na inona indroa ianao. Press Press up ary midina tsy hifidy ny hisafidy baiko, alohan'ny hanitsiana ny baiko miaraka amin'ny zana-tsipìka havanana, havia ary hamafa ny fanalahidy ary ny fitendry ary ny fandehanana azy.
Arahabaina! Nahavita namorona script backup ianao izay manohana script manan-danja roa ao amin'ny lahatahiry miasa. Azontsika atao ny mamindra zavatra any aoriana any rehefa mihalehibe ny tetikasa, fa izao dia miasa izao. Andao isika hanohana ny rahona, hampiasa an'i Github isika (na dia maro aza ny vahaolana amin'ny backup, dia mitovy amin'ny rindrambaiko ianao, ary mamela anao ihany koa mba hampiditra ny dika mitovy amin'ny rindrambaiko iray na ny fanalahidy. Izy io dia fitaovana amin'ny fitahirizana ny rindrambaiko, indrindra fa raha mifindra amin'ny tranga Linux dia tsy mahomby isika rehefa misy tsipika tokana tsy mahomby, dia tsy azo fehezina ny kaody anao raha tsy afaka mamerina azy io ianao, izay hosoratantsika.
Raha mbola tsy mampiasa milina virtoaly ubuntu ianao amin'izao fotoana izao dia miverina milina virtoaly ubuntu amin'izao fotoana izao satria hahamora ny fiainanao izany rehefa mametraka ny tranokala ilaina ary hikarakara ny asa fiasa ao amin'ny solosainao. Hodidinay amin'ny mpizara tranonkala iray tsy ho ela ny code, fa te-hahazo antoka isika fa misy antontan-taratasy vitsivitsy farafahakeliny ao ambadiky ny mpizara Web sy ny fonosana Linux iray mba hanaovana izany. Raha mbola te hampiasa Mac OS ianao, dia raisina am-pikarohana sy mametraka ireo fonosana ilaina amin'ny Internet, saingy mety tsy hisy safidy hafa ho an'ny fonosana rehetra ity boky na andian-dahatsoratra ity.
Andao isika hanampy baiko vitsivitsy mba hanatanterahana ny asantsika miaraka amin'ny script backup amin'ny alàlan'ny fihazonana ny baikon'ny Command Ascript Backup.
# ...
Indray, mifehy X hamonjy.
Izao dia mila manao fanitsiana fotoana iray ho an'ity tetikasa ity isika. Because it soon will be a Git project, we don't need to type every command every time we deploy from a Git repository, but we'll get the hang of this when we write our deployment scripts. Hanombohana, andao ho azo antoka fa eo amin'ny lahatahiry mety isika ary hanombohana ny tahiry git ary hiteraka fanalahidy SSH.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Aorian'ny karazana SSH-Keygen, ny fanalahidy vaovao dia tokony ho voavonjy ao amin'ny lahatahiry an-trano eo ambanin'ny lahatahiry antsoina hoe .ssh. Antsoina hoe id_rsa.pub izy io. Andeha hojerentsika io lakile io ary kopy. Mba hahitana azy,
cd ~
cat .ssh/id_rsa.pub
Adikao ny lahatsoratra izay naverin'ilay didy farany, ary namorona kaonty amin'ny mpamatsy Git (tsara indrindra), alohan'ny hanampiana ny fanalahidin'ny SSH. Vantany vao manana kaonty ianao dia tsindrio ny menio havanana havanana ary ampidiro ny toe-javatra, alohan'ny hanampenana ny lakile SSH anao amin'ny SSH sy GPG Keys ao anaty fidirana ao amin'ny Menu. Safidio ny fanalahidy SSH ary ampio ny anao amin'ny alàlan'ny fandalinana azy ao ary manome anaram-boninahitra, alohan'ny hamonjeny sy hiverina any GitHub mba hamoronana tahiry vaovao. Mitovitovy amin'ny mpamatsy goavambe hafa izany, mila mamaky ny antontan-taratasiny ianao. Ao amin'ny fanitsiana vaovao fitahirizana, omeo anarana famaritana ny tahiry ary manapa-kevitra raha te hamoaka azy ianao, ary ho azo antoka fa hanitsy ny rakitra ho an'ny fidirana. Vantany vao noforonina ny tahiry dia mandika ny clone miaraka amin'ny URL SSH, ary apetaho ao anatin'ity baiko manaraka ity.
git remote add git://… (your remote URL)
Ankehitriny afaka miverina amin'ny tahiry amin'ny alàlan'ny CD ianao, dia ho fantatrao tsara izany. Andramo izao ny script backup anao amin'izao fotoana izao
Tsara! Ankehitriny afaka mahazo coding isika izao. Andao hametraka an'i Django izao fa hahatakatra tsara ny fatiantoka sy ny git isika. Django dia hamerina antsika hamerina ny rindrambaiko ataontsika, afaka manao izany ihany koa i Bash fa ny DJango dia tokony hanana fampiharana azo antoka kokoa (azo atao ny tsy manan-kilema ary namboarina mora kokoa).
Mba hametrahana rindrambaiko ao Ubuntu, dia hampiasa ny baiko Sudo Apt-Gar izahay. Voalohany, andao isika hanavao sy hanavao ny rindrambaiko efa ananantsika. Ity dia azo atao amin'ny sudo apt-Get update sy sudo apt-up upgrade -y. Manaraka, ndao hametraka python sy ny tontolo virtoaly, ny tranon'ny kaody eto aminay, miaraka amin'ireto baiko manaraka ireto: sudo apt-get install python-is-python3 python3-venv
Izany dia izay rehetra ilainao hiarahana amin'i Django amin'ny resaka rindrambaiko Applalls ao amin'ny Ubuntu ohatra. Ho an'ny Windows sy Linux dia tokony ho mivantana, fa ho an'ny Mac azonao atao ny mametraka milina virtoaly sy linux iray amin'ny alàlan'ny fampiasana virtoaly maimaimpoana na karama toy ny virtoaly na parasy ary mamerina ny dingana etsy ambony mba hananganana tontolo iainana etsy ambony. Ubuntu dia manakiana amin'ity tranga ity satria io no rindrambaiko ny tranokala mihazakazaka ary mamela azy ireo hampiantrano tranonkala miaraka amin'ny rindrambaiko rehetra voalaza etsy ambony.
Andao hidina ao amin'ny Django.
Ao amin'ny lahatahiry indray, miaraka amin'ny CD:
python -m venv venv # Mamorona ny tontolo virtoaly izay voatahiry ny kaody
source venv/bin/activate # Manetsika ny tontolo virtoaly
django-admin startproject mysite . # Izay Mysite dia ny tetikasa izay manomboka amin'ny lahatahiry misy ahy izao.
Django dia vao manomboka anay, satria i Django dia mampiantrano ny mpizara tranonkala ary manao izay rehetra ilainay ny fahazoana tranonkala fototra eo an-toerana sy mihazakazaka. Izao dia efa napetraka i DJango, andao hanova kely ny toe-javatra mba hahatonga azy io hiasa izay ilaintsika. Voalohany, andao isika hamorona fampiharana vaovao
python manage.py startapp feed
Ho hitanao fa ny fampiharana voalohany dia antsoina hoe Famahanana. Ny fampiharana dia tokony hantsoina izay tianao, ary hamorona fampiharana vaovao isika, fa ny anaran'ny fampiharana tsirairay dia tsy maintsy miovaova isaky ny misy ny fampiharana ao amin'ny code. Mba hampiana fampiharana vaovao, hanova hatrany ny setting.Py ao amin'ny lahatahiry hafa ny fampiharana, nomena anarana, antsoina hoe Startproject, apetraka eto aorian'izay. Mampiasa nano,
nano app/settings.py
Ao amin'ny setting, tadiavo ny fametrahana_apps ary manasaraka ny [tsipika 3]. Mampiasa sehatra efatra eo amin'ny tsipika afovoany tsy misy, ampio ny 'Fed', na ny anaran'ny fampiharana anao. Ity fizarana ity dia tokony ho toy ny:
INSTALLED_APPS = [
'feed',
]
Alohan'ny hadinonay dia andao hizaha toetra fa miasa i DJango. Mampiasa ny baiko python fitantanana.py runserver 0.0.0.0:000, afaka mihazakazaka ny mpizara ary avy eo dia mandehandeha amin'ny solosaina amin'ny solosaina mandeha amin'ny solosaina
Ankehitriny, andao isika handavaka ny fanoratana ny kaody python sasany. Django dia manana singa telo lehibe, izy rehetra dia mihazakazaka amin'ny alàlan'ny kaody tanteraka. Ny singa dia antsoina hoe Model, View sy Modely, ary ny tsirairay avy dia eo amin'ny ambaratonga ambony sy ambany kokoa isaky ny alohan'ny fotoana ananan'ny mpampiasa azy.
Ny modely dia ny fehezan-dalàna izay mitahiry fampahalalana ao amin'ny angona ho an'ny famerenana sy ny fandaharana ary ny fandikana.
Ny fomba fijery dia manapa-kevitra ny fomba ametrahana ilay modely, fanodikodinana ary ovaina, saika ny fomba fijeriny rehetra dia hampiasa modely mivantana.
Ny môdely dia ny kaody HTML miaraka amin'ny lakolosy sy karazan-tsofina fanampiny antsoina hoe fiteny modely. Ny môdely dia nateraky ny fomba fijery izay feno ny kaody sy ny toe-javatra python sy ny toe-javatra toy ny maodely sy ny fampahalalana (kofehy sy integer Usuall).
Django dia manana singa hafa koa, ao anatin'izany fa tsy voafetra amin'ny:
Settings, izay manamarina ny fampiharana rehefa noresahinay.
URL, izay modely izay manaraka ny mpampiasa dia mahazo miditra amin'ny ampahany manokana amin'ny fampiharana tranonkala.
Ireo endrika, izay mamaritra ny fomba fanazavana izay alefa any amin'ny mpizara dia raisina ary raisina amin'ny angona ary koa ny mpampiasa. Ireo no fototry ny fanodinana ny fampahalalana momba ny mpizara, ary afaka manaiky karazana fampahalalana ny fivarotana solosaina, ny tady an-tsoratra, isa ary isa ary Boole marina / sandoka (mazàna (matetika Boole).
Ny maodely, izay ny kaody HTML sy ny fiteny ary ny tetezamita ny elanelana eo amin'ny python sy html, ny fampahalalana momba ny html dia afaka mahazo ny tranokala html izay mety hidirana amin'ny tranokala ary ilaina amin'ny fitaovana iray izay tsy mila akaiky ny mpizara.
Ireo rakitra static, izay mazàna JavaScript ary tranomboky izay manompo ny mpizara ary mifandray amin'ny modely.
Ireo rakitra media, izay ampidirina na hosted ny mpizara, na an-tsoratra ivelany, na an-tsoratra fotsiny amin'ny mpizara alohan'ny hanaovana azy ary alefa any amin'ny mpizara hafa (siny) ho fampiantranoana.
MiddleWare, izay sombin-kaody izay mandeha amin'ny fotoana mitovy amin'ny fomba fijeriny rehetra ary heverina ho "tafiditra ao" raha jerena.
Ireo mpiasan'ny tontolon-kira, izay dingana izay ny tontolon'ny fomba fijerin'ny tsirairay ary ampiasaina hanampiana ny toe-javatra fanampiny.
Fitsapana, izay manan-kery fa ny mpampiasa na ny fangatahana dia mandalo ny fepetra takiana amin'ny fomba fijery sasany alohan'ny handraisana azy.
Ny mpanjifa, izay manitsy ny fomba fitantanana ny tranonkala sy ny famaliana ny fifandraisana.
Admin, izay ampiasaina hanoratana modely ka azo atao an-tsipiriany ao anaty pejy django admin ao amin'ny pejy DJango, izay azo tanterahina amin'ny alàlan'ny fidirana an-tsary.
Ny celery, izay mamaritra ny asa Asynchronous dia afaka manomboka mihazakazaka alohan'ny hanohizana ny asa na ny laharana manaraka.
Afaka manana singa maro hafa i Django, izay horesahantsika amin'ny antsipirihany eto. Betsaka ny fomba ahafahana mampifanaraka ny django bebe kokoa, manampy ny tranonkala, ary ny fantsom-pifandraisana mifamaly, izay manamboatra ny asa Asynchronous, ary ny sombin-taratasy hafa ho an'ny fanitarana, indrindra amin'ny fomba fijery. Ny fijerena ny fiasa dia fanalahidy satria matetika izy ireo dia manambara ny sombin-kaody rehetra izay voafaritra manokana amin'ny endrika URL manokana, na fizarana mpizara.
Voalohany, andao hodinihintsika ny fomba fijery. Hizaha ny fiasa manomboka amin'ny fanafarana ny kaody manondro izay hampiasaina amin'ny fomba fijery, ary voafaritra amin'ny famaritana tsy tapaka na kilasy mahazatra. Ny fomba fijery tsotra indrindra dia nofaritan'ny famaritana fiasa, ary avereno ny HTBP HTTPPRESSSPENSE miaraka amin'ny modely fototra. Andao atombohy amin'ny famaritana ny fomba fijery fototra hamerenany ny lahatsoratra hoe "Manan'izao tontolo izao". Tsarovy fa isaky ny manampy kaody ianao aorian'ny fanambarana toy ny fanambarana toy ny def, raha, raha, raha, sns, dia mila manampy habaka 4 ho an'ny famaritana tsirairay ianao. Hiditra amin'ny zavatra tsirairay isika tsy ho ela.
Avy amin'ny lahatahiry ny tranokalanay, hanova ny rakitra famahanana / views.py mampiasa Nano ary ampio ireto manaraka ireto amin'ny faran'ny rakitra.
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Ny HTTPPREST HTFANGO DJANGO dia mamaly amin'ny kofehy soratra, nasiana fanokafana sy fanidiana '. Isaky ny mandalo vaovao amin'ny fiasa na kilasy ianao, toy ny fangatahana na ny kofehy, dia mila mampiasa parentesis (, fanokafana sy fanidiana) ianao.
Tsy izay ihany no ilaintsika ny mijery ny fomba fijerintsika. Mazava ho azy fa tsy mbola nolazainay tamin'ny mpizara izay marina ny fomba fijery, dia mbola mila mamaritra ny lalana tokony hotsarovan'ny fomba fijery isika. Andao atombohy amin'ny famaritana ny lalana fototra amin'ny fampiharana / urls.py, ary hiditra amin'ny vondrona lalana isika aty aoriana.
Ao amin'ny App / URLS.PY, ampio ny tsipika aorian'ny fanambarana fanafarana taorian'ny fanombohana ny fijery izay noforoninay fotsiny.
from feed import views as feed_views
Ankehitriny, andao hamaritana ny fomba fijery. Ny fomba fijery dia manana singa telo, ny singa amin'ny lalana, izay milaza ny fijery ao anaty mpizara (ny fomba fijery izay misy ny fomba fijery, indrindra dia azo ovaina sy havaozina raha ilaina ny fomba fijery hafa na ilaina amin'ny fomba lojika hafa. Mahagaga ny manao zavatra toy izao sy ho mora tohina, satria ny codebase anao dia ho tontolo miova tsy miova sy ny fanitsiana mba ho sarobidy sy ho mora miasa. Ity no fomba fijerinao, ny fomba fijerinao, azonao atao ny manampy an'io amin'ny URLPATTERNS = [Fizarana App / URLS.py. Ny fomba fijerin'ny fahitana dia voafaritra amin'ireo singa telo voalaza etsy ambony, ary ny fiasa antsoina hoe lalana. Ny lamina URL anao dia lisitra, koa ataovy azo antoka fa hampitsahatra hatrany ny zavatra tsirairay ao aminy miaraka amin'ny komma, satria mampisaraka ny tsirairay avy izy ireo. Ny singa tsirairay dia tokony handeha amin'ny tsipika vaovao, indray mandeha miaraka amin'ny habaka efatra eo anoloany, toy ny fampiharana amin'ny Settings.py. Hamarininay ny singa voalohany amin'ny fomba fijery miaraka amin'ny fiasa tady tsy misy fotony, mba hamoronana fomba fijery izay mihazakazaka eo amin'ny lahatahiry faka ao amin'ny mpizara tranonkala. Ny URLS.PY dia tokony hoatran'ity:
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Io no fototry ny famoronana tranokala miaraka amin'i Django izay mifanentana tanteraka. Mba hanamboarana tranonkala mavitrika kokoa izay ahafahantsika manomboka ny fampahalalana momba ny fampakaram-bady, toy ny sary, horonan-tsary, Audio ary maro hafa, dia mila mampiasa modely isika, izay hotsidihinay manaraka. Amin'izao fotoana izao, andao hodinihintsika ny kaody sy ny mpizara. Hamarino ny fehezan-dalàna ho an'ny hadisoana, mihazakazaka:
python manage.py check
Raha misy hafatra diso, dia tokony handinika tsara ireo fanovana nataonao tamin'ny fampiharana ianao ary nahita raha misy zavatra tokony hapetraka, toy ny habaka iray tsy manam-petra na tsy misy na tsy misy na inona na inona, izay misy typo tsy nahy, na zavatra hafa. Ny famakiana ny hafatra diso (raha manana iray ianao), dia tokony ho afaka mahita ny lalana mankany amin'ny rakitra noforoninao na novaina miaraka amin'ny laharana andalana ianao, ka jereo raha afaka manamboatra na inona na inona ianao. Raha namolavola ny olana ianao dia andao indray ny baiko etsy ambony. Rehefa vonona hihazakazaka ny rindrambaiko ary miasa dia hahita ny famoahana ny famoahana "ny rafitra tsy fantatra anarana hoe tsy misy olana." Izao dia vonona handeha ianao. Ampandehano ny mpizara:
python manage.py runserver 0.0.0.0:8000
Manokatra browser tranonkala ary mandehana mankany amin'ny http: // localhost: 8000. Tokony ho hitanao ny lahatsoratra niverina tao amin'ny mari-pahaizana sy ny teny nindramina tamin'ny HTTPPResponse fiasa araka ny hevitrao. Ohatra iray ihany izany, fa raha tsy izany dia nataonao hatreto, dia azonao ny fototry ny fomba ahoana ny hoe Linux, Bash, Python, ary i DJango. Andeha isika handinika lalina kokoa ao amin'ny modely an-tsehatra sasany, ary hizaha ny herin'ny kilasy python amin'ny fitahirizana vaovao. Avy eo, hanomboka hikoropaka amin'ny HTML sy CSS izahay alohan'ny hanombohantsika ny tranokalanay feno, haingo ary azo antoka amin'ny fampiasana JavaScript sy Milina fianarana.
Ny kilasy dia voatahiry ao amin'ny Models.py amin'ny fampiharana anao. Mampiasa Nano, Hanova ny App / Models.py ary manampy kilasy vaovao. Ny iray kilasy dia voafaritra amin'ny famaritana ny kilasy ary ampitaina ny superclass izay nolovany, tamin'ity tranga ity dia Models.model. Ny anaran'ilay kilasy dia avy aorian'ny famaritana ny kilasy, ary aorian'ny famaritana ny kilasy A: Mila id ny kilasintsika, azontsika atao ny mamerina azy io ary mitazona azy tsy manam-paharoa, ary mila saha iray ihany koa izy io mba hitehirizana vaovao. Any aoriana dia afaka manampy fe-potoana, rakitra, booleans (marina na diso na diso isika izay afaka manampy ny fitsipi-pitondran-tena izay tokony hatao amin'ny modely, ary azo atao ny mamatotra azy ireo), ary maro ny mamatotra ny modely ho an'ny mpampiasa iray, sy ny maro hafa. Andao hanafaka ny kaody eto ambany:
from django.db import models # Ny fanafarana izay ampiasaina hamaritana ny kilasintsika ary ny toetrany
class Post(models.Model): # Ny famaritana ny kilasinay
id = models.AutoField(primary_key=True) # Ny karatry ny modely, fanalahidy iray avy hatrany izay hahatonga antsika hanontany ny modely, arovy fa tsy manam-paharoa ary ilaina rehefa mila mifanerasera amin'ny modely izy io.
text = models.TextField(default='') # Ny antontan-kevitra momba ny fivarotantsika kilasy, amin'ity tranga ity, ny sasany, ny sasany, izay tsy mety amin'ny tady tsy misy dikany.
Manantona ary vonjeo ny rakitra tahaka ny nataonay alohan'ny hamaranana.
Betsaka ny sehatra sy safidy hianarantsika rehefa manavao ity kilasy ity isika rehefa mivoatra ny fampiharana antsika, fa ity no tena ilaina amin'ny famoronana fampiharana iray handefasana lahatsoratra vitsivitsy. Na izany aza, ity modely ity dia tsy hiasa irery. Araka ny voalaza teo aloha, dia mila fomba fijery mahazatra sy ny url mahazatra isika mba hahatonga ity asa modely ity, ary mila endrika miaraka amin'ny modely ihany koa isika. Andao hodinihintsika ny endrika voalohany.
Mba hamaritana endrika iray, hanova ny fampiharana / form.Py miaraka amin'i Nano ary ampiana ireto manaraka ireto. Mila fanafarana roa izahay, ny kilasintsika roa, ary ny modely noforoninay (feed.models.Post), ny famaritana kilasy mitovy amin'ny modely, ary ny saha iray antsoina hoe Meta izay hanararaotra ny modely amin'ny fifandraisana. Ny endrika dia afaka manana fiasa fanombohana ihany koa izay mametraka izany mifototra amin'ny fampahalalana amin'ny fangatahana, modely na raha tsy izany, dia hizaha izao isika any aoriana any.
Ny endrika modely dia tena ilaina satria afaka mamorona modely izy ireo na manova modely ihany koa, ka hampiasa azy ireo ho an'ny roa tonta. Andao hamaritra ny iray amin'ny endrika.py eto ambany.
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',)
Ity no fototry ny endrika sy ny modely ho azy. Ity endrika modely ity dia azo ampiasaina hanatsarana na hanova lahatsoratra iray, hanovana ny lahatsoratra ao anatiny. Izahay dia hijery ny fampidirana ity endrika ity ho fomba fijery manaraka. Voalohany, andao isika hanao ny fifindra-monina ary mifindra monina ny angon-drakitra ka afaka mifanerasera amin'ny modely ny kaody eto aminay. Mba hanaovana izany dia ampandehano ireto baiko manaraka ireto:
python manage.py makemigrations
python manage.py migrate
Mandritra ny minitra iray hanatanterahana izany, fa raha vao manao izany, dia ahafahanao miditra ny modely amin'ny fomba fijery, MiddleWare, na amin'ny toerana hafa ao anaty rindrambaiko. Andao hanohy ny fomba fijerintsika izay ahitantsika ny modely. Hanova ny Feed / Views.py ary ampio ity kaody manaraka ity, araka ny voalaza. Tsy mila manampy na inona na inona aorian'ny famantarana # ianao, ny kaody dia ny fanehoan-kevitra izay ampiasaina hanondroana ny vaovao momba ilay kaody. Hanomboka isika amin'ny fanafarana ny maodely amin'ny fomba fijery, ary hampiany izany amin'ny toe-javatra iray izay ahafahantsika manome azy ao amin'ny modely iray ho toy ny lisitry ny fampisehoana. Manaraka, hampiditra modely izay ahafahantsika manome ny endrika sy ny modely amin'ny bokotra iray mba hamoronana zavatra vaovao mifototra amin'ny modely ary alefaso ao amin'ny mpizara. Mahagaga izany, ka andao isika hanao dingana fotsiny. Alohan'ny hamaranantsika ny fomba fijery dia andao hamorona modely izay manome modely fotsiny ary ho azo antoka fa afaka mahita azy isika amin'ny famoronana lahatsoratra vaovao ao anaty akorandriaka. Ity ny fomba tokony hijerena izany fijerena izany:
posts = Post.objects.all() # Fangatahana ny lahatsoratra rehetra ao amin'ny angona hatreto
Izany rehetra izany dia toa tsotra tsara mandra-pahatonganay any ambany. Reser, ny sandany dia niverina tamin'ny fiasa fa tsy amin'ny valiny HTTP toa ny ohatra teo aloha, dia mitaky fangatahana voalohany ho toy ny fidirana voalohany, manaiky ny toe-javatra iray (amin'ity tranga ity izay azo atolotra ao amin'ny môdely, ary mamerina ny modely voafaritry ny fiasa. Ny môdely dia ho antontan-taratasy HTML izay manana fiteny kely iray antsoina hoe Jinja2, izay manome ny fampahalalana Python ao amin'ny HTML.
Hanombohana mamorona modely, manaova torolàlana roa amin'ny famahanana.
mkdir feed/templates
mkdir feed/templates/feed
Manaraka, hanova ny modely ao amin'ny lahatahiry etsy ambony, ny famahanana / ny modely / famahanana, ary ampio ny kaody amin'ity ohatra ity. Andeha hojerentsika ny modely ho an'io ohatra io.
Ity dia modely tsotra indrindra. Mamaritra ny fanokafana sy famaranana tags html, taham-peo, tahiry vatana miaraka amin'ny lohatenin'ny angano, ny tag-taratasy iray izay manampy tsipika kely manerana ny efijery, ary ny losa iray izay mahatonga ny lahatsoratra tsirairay ao amin'ny lisitry ny lahatsoratra ao amin'ny môdely. Izany dia ilaina ihany ny mamerina ny lahatsoratra, fa tsy misy ao anaty angona ihany. Andao hamorona ny sasany amin'ny akorandriaka. Afaka mihazakazaka miaraka amin'ny fitantanana.py isika
python manage.py shell
Ankehitriny, andao hanafatra ny modely ny paositra
from feed.models import Post
Manaraka, hamorona lahatsoratra tsotra amin'ny kofehy iray isika ary hivoaka ny akorandriaka. Ny kofehy dia mety hisy na inona na inona, raha mbola misy lahatsoratra manan-kery.
Post.objects.create(text='hello world')
exit()
Farany, mila manampy ny url url amin'ny sakafontsika isika. Satria hampiasa URL marobe ny fampiharana ny famahanantsika ary te-hihazona ny habe kely izahay, andao hamorona urls.Py eo an-toerana ao amin'ny App SEED izay toa izao:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
Izahay koa dia mila manova ny urls.py amin'ny fampiharana fototra, na inona na inona fanapahan-kevitra noraisintsika dia io no lahatahiry voalohany noforoninay. Hanova ny App / App.py ary ampio izao manaraka izao amin'ny lamina URL
from django.urls import include # Any ambony
# ... Kaody teo aloha eto
Ankehitriny, rehefa mihazakazaka ny mpizara miaraka amin'ny python Managers.py mihazakazaka isika, dia hahita ny pejy noforoninay izahay satria manana ny modely, ny fijerena ary ny modely ary ny modely URL, miaraka amin'ny url amin'ny database. Manaraka, andao hanatanteraka ny endrika noforoninay sy hanombohany namorona ny lahatsoratra nataontsika manokana. Saingy alohan'ny hanoratantsika ny kaody be loatra, andao hanao backup mampiasa ny script izay nosoratantsika tany aloha, backup. Ampandehano ao anaty akorandriaka ity script ity, andraso fotoana vitsivitsy, ary ny fehezan-dalàna rehetra dia haverina amin'ny tahiry git.
backup
Ny fampiharana ny endrika dia tsotra ihany. Hanafatra ny endrintsika izahay, ampio ny mpitahiry fangatahana fangatahana, ary vonjeo ny lahatsoratra ao amin'ny tranokala alohan'ny hamerenana ny fomba fijery mitovy. Azontsika atao ny mampiasa ny fiasa redirect efa nafangaro, ary ny fiasa iray hafa antsoina hoe mifamadika mba hahazoana ny URL ho an'ny modely. Izahay dia hanontany an'io miaraka amin'ny String String: Feed 'satria ny namesahan'ny modely misy dia famahanana, ary antsoina koa ny fiheverana.
posts = Post.objects.all() # Fangatahana ny lahatsoratra rehetra ao amin'ny angona hatreto
if request.method == 'POST': # Hikarakara ny fangatahana lahatsoratra
form = PostForm(request.POST) # Mamorona ohatra amin'ny endrika ary tehirizo ny angon-drakitra
if form.is_valid(): # Manamarina ny endrika
form.save() # Tehirizo ny zavatra vaovao
return redirect(reverse('feed:feed')) # Redirect amin'ny url mitovy amin'ny fangatahana mahazo
'form': PostForm(), # Ataovy azo antoka fa handalo ny endrika ho ao amin'ny teny manodidina mba hahafahantsika manolo-tena.
Ankehitriny, mila havaozina ny modely amin'ny kaonty vaovao. Azontsika atao izany amin'ny fampiasana ny
Ndao hanimba izany. Misy kilasy endrika vaovao, famantarana, ilay endrika ary ny bokotra fandefasana. Tsotra tsotra, fa rehefa mijery azy isika dia mety te-hanao tsara azy io. Miasa izy io, azontsika atao ny mandefa lahatsoratra vaovao miaraka amin'ny endrika ary voavonjy ao anaty angon-drakitra izy ireo izao. Misy zavatra vitsivitsy mitranga eto. Mampiasa takelaka HTML izahay mba hanambarana fa ny antontan-taratasy dia antontan-taratasy HTML, mampiasa marika modely izahay ({% ...%}) mba hanomezana ilay famantarana ho an'ny endrika, {{...}). Manana tadivavarana ihany koa izahay mba hanomezana ny lahatsoratra amin'ny fampiasana takelaka sakana sy marika modely. Tena zava-dehibe ny fanakanana ireo tags satria afaka mamaritra ny fomba fizarana ny fizarana ny môdely, ary ny endriny maoderina no fototry ny fomba nametrahantsika varahina ao anaty kaody.
Ankehitriny dia mila manao tsara kokoa ny fampiharana izahay, satria izao dia tena tena fototra. Azontsika atao izany amin'ny alàlan'ny CSS, na ny inline, na amin'ny kilasy mifatotra amin'ny zavatra tsirairay ao anaty antontan-taratasy. Ny CSS dia tena tsara satria milaza ny zava-drehetra ao amin'ny pejy ny fomba tokony hijerena azy, ary mety hahatonga azy io ho tsara. Misy tranomboky vitsivitsy izay afaka manao izany, fa ny ahy manokana dia bootstrap.
Azo alaina ao amin'ny tranokalany ny bootstrap,getbootstrap.com/. Indray mandeha, tsindrio ny bokotra hamaky ny Docs fametrahana, ary adikao ny kaody avy amin'ny fizarana amin'ny CDN fizarana. Mila ity kaody ity ianao eo an-tampon'ny antontan-taratasinao HTML, amin'ny tag antsoina hoe loha. Andao koa handroso ary hanangana modely fototra ka tsy mila mamerina ny rohy ireo ao amin'ny modely tsirairay isika.
Manaova lisitry ny lahatahiry vaovao antsoina hoe Endrim-paritra miaraka amin'ny modely Mkdir, ary avy eo manova ny maoderina / base.html.
Tokony ho toa izao:
Ataovy azo antoka fa handika ny CSS sy ny JavaScript, ny rakitra .JS sy ny .js, satria mila ny javascript isika mba hahatonga ny tranokalanay bebe kokoa amin'ny ho avy.
Ankehitriny, andao hiverina any amin'ny akorandriaka Bas isika ary hanao baiko haingana. Tadidio fa raha mila miditra amin'ny tontolo virtoaly ianao, karazana loharano Venv / Bin / Activate. Io dia hamela anao hametraka fonosana python eo an-toerana amin'ny fomba ahafahan'ny DJango idera azy ireo. Mba hanomezana ny endrik'i Django Bootstrap, dia hampiasa fonosana python antsoina hoe crispy. Azontsika atao ny misintona an'io miaraka amin'ireto baiko manaraka ireto
pip install django-crispy-forms
Raha vao napetraka ity dia ampio ao amin'ny setting.py
# ... Kaody teo aloha eto
Ankehitriny, miverina ao amin'ny môdely famoahanay isika, afaka manaisotra zavatra vitsivitsy. Aleo esorintsika ny fiandohana sy ny fiafaran'ny antontan-taratasy ary hisolo azy miaraka amin'ny lova avy amin'ny maodely fototra ao amin'ny maodely fototra, ary ny fanitarana sy ny famaritana sakana. Ary koa, hampiditra fanamboarana fanefana fanamboarana modely amin'ny entana sy ny fanetren-endrika amin'ny endrika izahay. Farany, andao isika hanampy ny kilasy bootstrap amin'ny bokotra amin'ny endrika mba hahatonga azy io ho toy ny bokotra iray. Tokony ho toa izao:
Tsara tarehy! Izany dia kely ny kaody sahady. Manaraka, tokony hizahantsika izany ary ho azo antoka fa ho hitantsika fa tsara ny zava-drehetra, ary azo antoka ihany koa fa tsara ny miasa tsara. Ampandehano ny mpizara araka ny torolàlana teo aloha ary ho azo antoka fa mijery ny tranokala ary miasa tsara. Asa tsara! Vonona ny hiroso amin'ny dingana manaraka ianao, izay hampitomboana ny fiasa fidirana mpampiasa mampiasa URL, endrika, endrika ary modely. Zava-dehibe ny endriny fototra ary hanohy hanova izany isika ary hanao fanovana raha ilaina, amin'ny alàlan'ny fampahafantarana ny tranokalanay amin'ny anarana sy ny fampahafantarana ireo fampahalalana lehibe kokoa sy ny kaontinao manokana.
Mba hanaovana an'izany dia mila mampiasa ny modely mpampiasa naorina ao Django isika. Ny maodelin'ny mpampiasa dia modely an-tsary, toy ny lahatsoratrao, izay azo adika amin'ny fidirana mpampiasa iray ao amin'ny tranokala. Amin'ny ho avy, alohan'ny hametrahantsika ny tranokala amin'ny Internet, dia hanitatra io modely io amin'ny modely hafa izay natoraly azy io, ary hanangana fepetra fiarovana fanampiny ho an'ny fidirana izay manohitra ny phishing. Hanomboka amin'ny alàlan'ny fampiasana ny sasany amin'ny endriny amin'ny endrika fidirana isika fa i DJango dia manome. Voalohany, andao isika hamorona fampiharana vaovao izay hampiasainay mba hanomezana ny modely sy ny fomba fijery ho an'ny pejy fidirana fototra. Izahay koa dia hamorona fampiharana hafa hisolo tena ny fanamby mitohy mba hahazoana antoka ny fampiharana, ao anatin'izany ny pincode, fankatoavana ny tarehy, akaikin'ny serasera, ny fampiakarana ivelany, ary ny fankatoavana ny fanondro.
Efa niresaka momba ny fanombohana fampiharana izahay. Avy amin'ny lahateninay, ao anaty tontolo virtoaly, mandalo ny fitantanana ireo hevitra ireo
python manage.py startapp users
Ankehitriny, tokony hanana lahatahiry vaovao ho an'ny fampiharana vaovao isika. Aleo atombohy amin'ny famoronana fomba fijery ao anatin'io lahatahiry io izay mifanitsy amin'ny fidirana mpampiasa. Django dia nanangana ny fomba fijery ho an'ny mpampiasa logins, fa ireo dia tsy mety ho antsika satria mila fomba fanao mahazatra isika, izay tsara indrindra vita amin'ny famaritana.
Amin'ity fomba fijery ity dia hanomboka amin'ny fisavana ny fangatahana poste, ny fangatahana izahay.Post amin'ny loginform iray izay nafarana avy amin'i Django, hanamarina ny kaonty mpampiasa, ary ny fidirana amin'ny mpampiasa alohan'ny hamerenany azy ireo amin'ny fampihenana ny fampihenana azy ireo.
Amin'ny mpampiasa / views.py, ampio ny kaody manaraka
username = request.POST['username'] # Raiso ny anarana sy ny tenimiafina amin'ny fangatahana lahatsoratra
password = request.POST['password'] # Manamarina ilay mpampiasa
Izany no ilainao rehetra amin'ny fomba fijery fidirana fototra. Ankehitriny, andao hamorona endrika iray ho an'ny fijery amin'ny alàlan'ny fanitarana ny modely fototra. Hanomboka amin'ny alàlan'ny famoronana lahatahiry vaovao ho an'ny maodely ao amin'ny lahatahiry mpampiasa izahay.
mkdir users/templates
mkdir users/templates/users
Ankehitriny, tokony ho afaka hanova ny mpampiasa / ny modely / mpampiasa / mpampiasa izahay / Login.html. Na dia eo am-piandohantsika aza isika dia mamorona modely iray ahafahan'ny mpampiasa misoratra anarana ihany koa.
nano users/templates/users/login.html
Ankehitriny, ao amin'ny moramora,
Ity no fototry ny modely logic. Tena mitovy amin'ny modely hafa amin'ny firafitra hafa, fa somary tsy mitovy ny zavatra simba. Azontsika atao ny mandika ity code ity mba hananganana modely hafa mitovy antsoina hoe Registral.html, izay hanovantsika ny teny ary hampiasa endrika vaovao namboarinay. Andao atao loha laharana ny modely. Hanova ny mpampiasa / ny maoderina / mpampiasa / fisoratana anarana.html ary ampio ity kaody ity:
Ankehitriny, andao hanangana endrika iray ho an'ny fisoratana anarana amin'ny mpampiasa sy ny faribolana amin'ny fomba fijery alohan'ny hananganantsika ny logins mpampiasa antsika amin'ny modely. Hataontsika fototra io mba hanombohana, fa hampiditra antsipirihany bebe kokoa sy ny endri-javatra fiarovana toy ny fifanarahana sy ny CAPTCHA amin'ny ho avy. Hanova ireo endrika miaraka amin'ireo mpampiasa Nano / Formy.py, ary ampio ity kaody manaraka ity.
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']
Noho izany dia manana endrika hafa eto isika, izay miasa tsotra fotsiny. Ity dia mpisera fisoratana anarana amin'ny anarana, mailaka sy tenimiafina, ary koa ny sehatry ny tenimiafina fanamafisana. Mariho fa ity endrika ity dia tsy manitatra ny kilasy mahazatra.Form kilasy, modely modely izay midika fa misy meta. Ny sehatra iray dia voafaritra ihany, ary ny Meta kilasy dia mamaritra ny modely ny endrika dia mifanandrify amin'ny sisa amin'ny fampahalalana izay hosoratana amin'ny endrika. Ny ankamaroan'io dia efa misy ao amin'ny Django naorina ao amin'ny Internet amin'ny InternetCreationform, mba hampiasainay izany ho fototry ny kilasy (nandalo tamin'ny mari-pahaizana).
Manaraka, handinika ny fomba fijery hisoratra anarana mpampiasa isika, ankehitriny fa manana endrika sy modely isika. Ity dia modely, sahala amin'ilay iray ao amin'ny fijerena lahatsoratra vaovao. Hanova ireo mpampiasa / views.py ary ampio ity kaody manaraka ity:
# ... Import
Izany no hany ilaintsika mba hahazoana mpampiasa voasoratra anarana, fa tokony hanana fampahalalana bebe kokoa isika. Te hahafantatra ny fotoana nisoratana anarana izahay, tamin'ny fotoana naharetan'izy ireo teo amin'ilay toerana, ny fampahalalana sasany momba azy ireo, toy ny biography, ny timezone, sns, dia mila manavao ny maodely famahanana sy ny sarin'ny mpampiasa izahay. Mba hanaovana an'izany dia havaozinay ny Models.py amin'ny fampiharana roa. Andao atombohy amin'ny fanitsiana ny modely famahanana. Tokony ho toa izao:
from django.db import models # ... Import
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # Ampio ato amin'ity andalana ity
Tandremo ny tsipika faharoa izay nampiana tao amin'ilay rakitra. Ity dia fanalahidy vahiny, izay haneho ny lahatsoratra tsirairay isaky ny lahatsoratra iray isaky ny lahatsoratra, mba hahafahantsika mahazo antoka fa mamonjy ireo lahatsoratra ao amin'ny Use-Per-Per-mpampiasa iray ary tsy misy napetrak'ireo mpampiasa azy. Mamaritra ity fanalahidy vahiny ity miaraka amin'ny kilasy asehony, famafana ny famafana ny famoahana ireo mpampiasa, NULLE ary misy ny hevitra momba ny mpampiasa izay noforoninay, izay azontsika ampiasaina mba hilazana ny zavatra noforonin'ny mpampiasa. Ity anarana mifandraika ity, tsy toa ny post.author, mpanoratra ny lahatsoratra, dia manome ny mpampiasa amerikana izay namoaka ny lahatsoratra. Azontsika atao ny mahazo ny lahatsoratra ho an'ny mpampiasa iray amin'ny alàlan'ny mpampiasa mpampiasa.Posts.all (), na mpanoratra.post.all ().
Ankehitriny, andao isika hanao ny logins ny logins. Efa azontsika atao ny mampihena ny tranokalanay amin'ny alàlan'ny phishing amin'ny alàlan'ny fanolorana fotsiny ny isan'ny fotoana ahafahantsika mamela ny fidirana amin'ny tranokala, dia mora tokoa izany. Andao hanomboka hitahiry fampahalalana vitsivitsy momba ny mpampiasa tsirairay alohan'ny hanohizantsika ny fampivoarana ny fampiharana anay. Ireo mpampiasa fanovana / Models.py, ampio ity kaody manaraka ity.
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='')
Mariho fa ity modely ity dia mitovy amin'ny modely post. Manana import fanampiny, TimEzone, izay ahafahantsika mametraka hadisoana amin'ny sehatry ny dateTime, ary manana toetrany sy textfield toa ny lahatsoratra ihany koa izahay. Ny fampiasana ireo vanim-potoana rehetra ireo dia manampy antsika hiaro ny tranokala ary hahatakatra ny fampiasana azy, ary ny sahan'ny lahatsoratra dia mamela ny fampahalalana momba ny mpampiasa tsirairay, na ny mpanoratra, ao amin'ny tranokala. Ny onetoonefield dia tokony ho dinihina kely fotsiny, mitovy amin'ny mitovy amin'ny ponenkey fa miaraka amin'ny modely iray isaky ny modely manaraka. Amin'izany fomba izany, ny mpampiasa dia manana mombamomba iray ihany, raha mbola manana lahatsoratra maro izy ireo.
Ankehitriny, andao hanatsara ny lisitry ny fidirana sy ny fisoratana anarana amin'ny kaonty ho an'ny mombamomba azy. Voalohany, manova ny mpampiasa / views.py ary mifantoka amin'ny fomba fijery fisoratana anarana:
# ... Import
Profile.objects.create(user=user) # Ataovy azo antoka fa hampiditra ity tsipika ity, hamoronana mombamomba ny mpampiasa
Ity dia mamorona mombamomba fotsiny ho an'ny mpampiasa, tsy feno ny fampahalalana rehetra. Ankehitriny, te-ho azo antoka fa ny kaonty mpampiasa dia tsy afaka miditra matetika matetika, na farafaharatsiny tsy azo andramana matetika ny tenimiafina, ka avelao hanavao ny fomba fanao login isika.
# ... Import
if user and user.profile.can_login < timezone.now(): # Mariho fa manamarina isika izao raha afaka miditra ny mpampiasa
else: # Raha tsy nahomby ny fidirana,
user = User.objects.filter(username=username).first() # Ity no ampahany izay havaozinay ny mombamomba ireo mpampiasa
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Ka tsy afaka miditra indray izy ireo mandritra ny segondra vitsy
Ity no fototra fototra amin'ny fiarovana. Hamarino tsara fa tsy marefo amin'ny olona iray fotsiny ny fiezahana mitambatra tenimiafina rehetra azo atao, na vitsivitsy amin'izy ireo amin'ny fotoana mitovy. Tsy hahakivy an'io mpampiasa tsotra io izay mahalala ny passcode ary ny vatan-dohany fotsiny amin'ny fitaovana vitsivitsy, fa hitahiry robot phishing maro ao amin'ny App. Mariho fa nanampy ny fanambarana izahay raha misy ny fanambarana miaraka amin'ny variana, ny can_login, izay tokony ho fotoana taloha, ary hanavao izany amin'ny fidirana tsirairay tsy mahomby amin'ny fampiasana ny anarana mitovy anarana amin'ny fampiasana anarana mitovy. Amin'izany fomba izany, ny mpampiasa ratsy fanahy dia tsy afaka hamantatra ny tenimiafina na aiza na aiza akaiky. Ny isan'ny segondra ao amin'ny DateTime.Timedelta () dia azo havaozina ihany koa, ary ny tranokala dia hihoatra kokoa nefa somary azo ampiasaina kokoa amin'ny segondra. Manoro hevitra aho 15 hanomboka.
Tadidio fa nanamboatra script backup izahay mba hamonjy ny asantsika, ka aleo handroso ary avereno ny zavatra ananantsika hatrizay mba hahazoana antoka fa manana ny voavonjy isika. Ampandehano ny baiko:
sudo backup
Averiko indray, ity dia hamonjy ny asanao hatreto. Manoro hevitra aho ny hihazakazaka matetika ny backup Azonao atao ny mampiasa izany amin'ny fampiasana Usix Utility antsoina hoe Cron. Mba hampahatafiana io fitaovana io, ampandehano ity baiko manaraka ity ary ampidiro ny tenimiafinao:
sudo crontab -e
Raha mbola tsy nifidy safidy 1 ho an'i Nano, ilay lahatsoratra lahatsoratra ianao dia tokony ho efa zatra, ary hidina mankany amin'ny faran'ny rakitra mampiasa ny fanalahidin'ny zana-tsipìka. Ampio ny tsipika manaraka:
0 * * * * sudo backup
Ny CRON dia mampiasa ny Minuty Minuty, Ora, Andro isam-bolana, volana, andro amin'ny herinandro, izay misy ny A * na isa iray izay misy rehefa mihazakazaka ny baiko. Mampiasa 0 mandritra ny minitra ary * ho an'ny sisa amin'ny safidy, afaka mitantana baiko isika amin'ny minitra voalohany amin'ny ora iray amin'ny fanombohan'ny minitra. Izany dia mamela antsika hamerina ny kaody mandeha ho azy. Ny asan'ny CRON rehetra rehefa novonoina ho toy ny fakany, ka tsy mila mampiasa tenimiafina isika isan'ora.
Mba hanamora ny famerenany ny kaody eto amintsika nefa tsy mampiasa tenimiafina, andao isika tsy hanaiky ny tenimiafina ho an'ny baikon'ny backup. Hanao izany isika amin'ny fanatanterahana ity baiko manaraka ity ary miditra amin'ny tenimiafina:
sudo visudo
Ankehitriny, andao hisoratra anarana any amin'ny faran'ny rakitra isika ary manampy tsipika hafa:
ALL ALL=NOPASSWD: /bin/backup
Io dia mamela antsika hampandeha ny baiko "backup" ho mpampiasa, tsy misy tenimiafina. Mora ny format ho an'io, fa ny tsipika fotsiny amin'ny alàlan'ny "rehetra = Nopasswd: / bin /" ary mifarana amin'ny baiko, ohatra / bin / backup, izay misy / bera / bin / bin
Ankehitriny, andao isika hiasa amin'ny mailaka. Tena zava-dehibe ho an'ny tranonkala ny mailaka, satria fomba iray hitazonana ny tranokala azo antoka kokoa, hanamarina ireo mpampiasa dia tena olona, ary na ny vokatra na ny serivisy aza amin'ny mpanjifa na ny serivisy na ny serivisy aza. Betsaka ny olona izay matetika ny Internet dia manamarina ny mailaka isan'andro, ary mandray ny mailaka marketing rehetra momba ny vokatra sy ny serivisy izay tadiaviny.
Voalohany, azonao atao ny mandoa serivisy mailaka izay ahafahanao mandefa mailaka amin'ny sehatra misy anao ary mila fehezan-dalàna kely. Betsaka ny serivisy izay manolotra izany, toy ny Google Workspace, SendinBlue, Mailgun, ary maro hafa.
Raha tsy izany, ianao dia manatsara ny fanamboarana ny serivisy mailakao ao anaty mpizara avy amin'ny mpizara avy amin'ny scratch. Manoro hevitra ity safidy ity aho, na dia fehezan-dalàna bebe kokoa aza ary mety mitaky fampiantranoana manokana. Tsy ho afaka hanomboka ny mpizara mailaka avy amin'ny solosainao ianao, ka aleo handroso sy handinika ny konfigurasi sy ny kaody handefasana mailaka alohan'ny hanombohantsika ny mpizara ao anaty rahona ary hamorona ny mpizara mailaka ao anatiny.
Voalohany, manova ny filaharana.py miaraka amin'ireto baiko manaraka ireto:
nano app/settings.py
Aiza ny fampiharana no anaran'ilay fampiharana noforoninao tamin'ny StartApp.
Ampio ireto manaraka ireto:
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)
Ataovy azo antoka fa hanova ireo rehefa vonona ny hampitsahatra ny fampiharana anao ianao, dia hizaha indray ity fotoana ity. Ny adiresy mailaka_Address dia tokony ho mailaka izay tianao halefa, ary ny tenimiafina (mailaka_host_password) dia tokony hapetraka amin'ny tenimiafina izay ataonao ho an'ny mpizara. Entiko ny tenimiafina ao amin'ny rakitra config mba hialana amin'ny code amin'ny alàlan'ny lojika manaraka, etsy ambony ireo andalana ireo amin'ny Settings.py.
import os
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
Avy eo, nanangana rakitra json niaraka tamin'ny config in /etc/config.json aho tamin'ny fampiasana nano toy izao manaraka izao.
Hanova ny rakitra:
sudo nano /etc/config.json
Ampio ireto manaraka ireto:
{
"EMAIL_HOST_PASSWORD": "<some password here>"
}
Hanohy hanova ny rakitra config izahay ary hanampy ny tenimiafina sy ny fanalahidy rehetra hampiasa ny fampiharana. Amin'izao fotoana izao, avereno haingana ny fomba handefasana mailaka amin'ny fampiasana python. Voalohany, andao isika hamorona modely ho an'ny mailaka fanamarinana izay azontsika alefa any amin'ireo mpampiasa anay, ary apetraho ao amin'ny lisitry ny maodely mpampiasa azy. Ity modely ity dia hosoratana ao amin'ny HTML.
nano users/templates/users/verification_email.html
Tsotra tsotra izao imailaka. Mila toe-javatra iray amin'ny mpampiasa iray, ny URL fototra ho an'ny tranokala, ary ny ID ID sy tokana izay ampiasaina hanamarinana ny mailaka mpampiasa. Hamarino tsara ny famaritana ny URL fototra ao amin'ny Settings.py alohan'ny hanoratantsika ny kaody python sasany mba hanomezana modely. Mandrosoa ary ampio ny andalana manaraka amin'ny fampiharana / Setting.py, akaikin'ny fiandohana.
SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'
BASE_URL = PROTOCOL + '://' + DOMAIN
Amin'ny farany, rehefa vonona ny Internet ny tranokalanao ary apetranao izany, dia te-hamaritana ny sehatra misy anao ianao amin'ny anarana anarana izay novidinao mba hisolo tena ny tranokala. Ity no anarana izay hidiranao ao amin'ny NAVBAR mba hidirana amin'ny tranokalanao. Amin'izao fotoana izao dia afaka miala amin'ny banga ianao na mampiasa placeholder. Ianao koa dia te hanova ny tranokala_name amin'ny anarana iray tianao hanomezana ny tranokalanao, ny safidinao.
Alohan'ny handefasantsika mailaka, andao hamorona mpamokatra tokana izahay mba hahafahantsika manana mari-pahaizana fampahavitrihana kaonty izay tsy ho lany. Azontsika atao ny manao izany amin'ny alàlan'ny fananganana sy ny fanafarana mari-pamantarana kaonty izay toa izao manaraka izao. Hanova ny rakitra:
nano users/tokens.py
Ampio ny kaody manaraka:
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()
Ity mpanamboatra tokana fototra ity dia miteraka famantarana iray azontsika alefa ny mpampiasa amin'ny URL ary afaka mampiasa ny mpampiasa ny fanamarinana ny mailaka ary hampihetsika ny kaontiny.
Manaraka, ndao hijery ny fomba handefasana mailaka. Mampiasa Nano, Hanova ny mpampiasa / mailaka.py.
nano users/email.py
Ny fandefasana ny mailaka HTML HTML dia toa izao:
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)
Tsotra ihany izany. Izahay dia manafatra ny fiasa ilaintsika handefasana ny mailaka, omeo ny maoderina ary ny toerantsika, ary avy eo isika dia mamaritra ny mailaka amin'ny alàlan'ny mpampiasa ary alefaso amin'ny mpampiasa mampiasa asa. Ho hitanao fa tsy namaritra ny fiasa izahay handefa ny mailaka, andefaso_html_Email, na izany aza, dia andao hanoratra ity eto ambany ity ny kaody izay efa nampidirinay tamin'ny mpampiasa / mailaka.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()
Somary sarotra kokoa izany, ary mbola vonona ny hampandeha an'ity kaody rehetra ity izahay. Mariho isika fa mamaritra ny tsy manan-tsaina_Link, ny rohy izay azon'ny mpampiasa ampiasaina amin'ny tsy fisoratana anarana amin'ny mailaka. Zava-dehibe izany, satria mila ny hisafidy ny mailaka ny mpampiasa raha tsy te hahita azy ireo, amin'ny fotoana rehetra. Manampy safidy hafa amin'ny hafatrao ihany koa izahay, izay ny hafatra HTML nesorina tamin'ny Tags HTML. Farany, manamarika izahay raha alefa ny mailaka, ary raha tsy izany dia manamarika ao amin'ny mombamomba ny mpampiasa izahay fa tsy manan-kery ny mailaka.
Andao hiverina any amin'ny modely mpampiasa isika mba hahafahantsika manao ity asa rehetra ity. Mila mamaritra ny fiasa iray izy mba hiteraka rohy mankany amin'ny Unsubscribe, ary hamaritra ny sehatry ny boolean hanamarihana fa tsy manan-kery ny mailaka mpampiasa.
Ampio aloha ny fanafarana manaraka ireto amin'ny lohan'ny mpampiasa / Models.py
nano users/models.py
# ...
Manaraka, andao isika hanampy ny modely amin'ny mpampiasa mba hahatonga ny tokana ary hanamarina ny tokana ampiasaina hampiasaina ny mailaka, ary koa ny saha mba hamonjy na ny mpampiasa dia mahomby amin'ny alàlan'ny mailaka. Ao amin'ny mpampiasa / Models.py indray, ampio ity kaody manaraka ity amin'ny faran'ny modely (code code)
# ...
TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # Manan-kery mandritra ny 30 andro
Tsotra tsotra izao, mampiasa timetampsigne izahay, izay fitaovana kemika fototra, mba hamoronana tokana izay ho lany fotoana aorian'ny fotoana voafetra, ary mampiasa fiasa hafa isika mba hanamarinana raha manan-kery raha manan-kery izahay. Ampiasainay indroa ireo marika ireo, indray mandeha mba hanamarina ny mailaka, ary indray mandeha amin'ny rohy tsy misy unsubscribe.
Izao dia manana ireo isika, ny farany amin'ny asa izay tokony hataontsika dia ny amin'ny fomba fijerintsika. Ao anatin'ny mpampiasa / views.py, andao isika hanam-bava mba hanamarinana ny adiresy mailaka, ary ny tsy hisoratra anarana.
nano users/views.py
Voalohany, ampio ireto fanafarana manaraka ireto. Natsipiko tao anatin'ny fanampiny vitsivitsy ka tsy tokony hanafatra entana bebe kokoa isika any aoriana any.
from .email import send_verification_email # Ataovy azo antoka fa manafatra ny mailaka fanamarinana ny fandefasana mailaka
Mety efa manana ny sasany amin'ireo fanafarana ireo ianao, fa tsy maharary ny mamerina azy ireo. Mila manafatra ny mailaka fanamarinana ianao, ary koa ny kaonty_activation_Token avy amin'ny mpampiasa.Tokens, miaraka amin'ireo fanafarana hafa.
Ankehitriny, eo am-pototry ny rakitra, ampio ity kaody manaraka ity:
# unsubscribe azy ireo
# Raha tsy izany dia reirect amin'ny pejy fidirana
# SendwellomaEmail (fangatahana, mpampiasa)
Ity dia kaody marobe. Andao hanorotoro azy io. Ny asa voalohany, madio ary tsotra, tsy manakana ny mpampiasa amin'ny lisitry ny mailaka. Ny fiasa faharoa dia manetsika ny mailaka, ary ho hitanao fa nanampy fiasa iray aho, SendwellocreeEmail. Tongasoa ianao raha mampiasa modely mailaka sy fiasa FANAMPIM-PIVAVAHANA mba handefasana mailaka fandraisana, mbola tsy mbola aho. Ny fiasa farany nataoko dia zava-dehibe, satria ny mailaka fampahavitrihana dia tapitra. Noho izany, mila mandà ny mailaka fampahavitrihana ianao. Azontsika atao ny mampiasa endrika fototra iray ho an'ity, ary antsoy ny fiasa handefa ny mailaka fanamarinana. Alohan'ny hanaovana an'izany dia aleo antoka fa alefa any amin'ny toerana voalohany, amin'ny fampidirana fiantsoana amina fomba fijery. Ampio ity tsipika ity alohan'ny redirect ao amin'ny lisitry ny lisitra fisoratana anarana, DEC Register, amin'ny mpampiasa / views.py.
nano users/views.py
# ... (aorian'ny) def fisoratana anarana (fangatahana):
# ... (talohan'izay) redirect (
Tsy mila manampy ny tsipika voalohany sy farany ao anatin'io snippet code io ianao, ho azo antoka fa ny fomba fijerin'ny fisoratana anarana dia mandefa ny mailaka fanamarinana amin'ny mpampiasa. Tokony ho toa izao:
# ... Import
send_verification_email(user) # Ataovy azo antoka fa hampiditra ity tsipika ity!
Ankehitriny, mila manampy endrika iray isika hamerina ny mailaka fampahavitrihana. Ao amin'ny mpampiasa / Forms.py, ampio ity endrika manaraka ity:
# ... (fanafarana)
Mila modely mifanaraka amin'izany ihany koa isika amin'ity taratasy fampiasa mailaka ity. Andao hanampy ity modely ity. Hanova ny rakitra:
nano users/templates/users/resend_activation.html
Manaraka, ampio ity kaody manaraka ity amin'ny rakitra.
Whew, be dia be izany! Ankehitriny, rehefa apetrany amin'ny mpizara ny kaody, dia afaka mandefa mailaka HTML izahay ary ampidiro ny kaonty mpampiasa miaraka amin'ny mailaka. Azontsika atao ihany koa ny mandefa mailaka fandraisana tsotra, ka hojerentsika ny fomba hanaovana izany. Miverina amin'ny mpampiasa / mailaka.py, ampio ity kaody manaraka ity:
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)
Ary koa, mila modely isika mba hanomezana izany rehetra izany. Ao amin'ny tranonkalako, ny modely dia toa eto ambany, saingy raisina am-pilaminana ianao fa tianao ihany.
Mariho fa tsy manana ny fanakatonana ny vatana na html tenifototra isika, satria ampiana ireo rehefa manampy ny rohy HTML unsubscribe. Zava-dehibe ireo, fa tsy te hamaritra azy ireo indroa isika.
Ka inona ny manaraka? Tonga lavitra izahay. Marina fa tokony ho vonona ny hametraka ny tranokala amin'ny mpizara isika. Azontsika atao ny manampy ny haingo @login_required ary ataovy azo antoka ny fomba fijerintsika, raiso ny sonia mpampiasa, alefaso mailaka ary fampahalalana momba ny cache, izay tokony hataon'ny tranonkala iray mba hiatrehana. Hanampy endri-javatra vitsivitsy mahasoa kokoa izahay, ary avy eo manorena fototra amin'ny fanesorana ny kaody ao amin'ny mpizara lavitra, mametraka ny mpizara mailaka, fanitsiana mailaka, ary sivana mba hahatonga ny tranokalanay ho azo antoka sy mety.
Mila fomba fijery famerenam-bola ihany koa isika, koa aleo ampio haingana. Django naorin'i Django amin'ny fomba fijerin'ny tenimiafina dia tapaka amin'ny asa sasany, fa hijery ny fomba hanoratana ny fomba fijerintsika manokana, ny maodely mailaka, ary ny laminasa url. Ity no jerena ny fomba fijery, amin'ny mpampiasa / views.py
# ... Import
Ity endrika ity dia naorina ao Django, saingy mila modely isika hanamafisana ny famerenan'ny tenimiafina, mpampiasa / maoderina / mpampiasa / tenimiafina / tenimiafina_reset_confirm.html
Manana modely ihany koa isika handefasana mailaka famerenam-bola amin'ny tenimiafina, miaraka amin'ny endrika tsotra, amin'ny mpampiasa / Modely / mpampiasa / tenimiafina_reset.html
Tsotra ny môdely ho an'ny mailaka fa ny rakitra html fototra dia manome rohy hamerenana ny tenimiafina, amin'ny mpampiasa / mpampiasa / mpampiasa / tenimiafina / tenimiafina_EMAL. Django dia handika tsara an'io rakitra io.
Mila modely roa hafa koa isika. Ny voalohany dia ny hanamarina fa nalefa ny mailaka. Ny fijery ho an'ireo dia efa ao Django, ka mila miresaka fotsiny ao amin'ny URLS.Py izahay. Ity modely ity dia eo amin'ny mpampiasa / Modely / mpampiasa / tenimiafina_reset_done.html
Ary farany, hanamarina fa feno ny famerenan'ny tenimiafina, mpampiasa / maoderina / mpampiasa / tenimiafina / tenimiafina_reset_ceplete.html
Ankehitriny, mila modely URL ho an'ireo fomba fijery ireo isika. Ao amin'ny mpampiasa / URLS.PY, ampio ny lamina URL manaraka ireto:
# ... URL teo aloha eto
Sokajy efatra, be dia be izany! Saingy afaka mahazo antoka isika fa afaka mamerina ny tenimiafin'ny mpampiasa amin'ny fotoana rehetra ilaintsika, avy amin'ny Internet browser.
Azoko fa ny code be dia be ity. Raha toa ka somary kely ny lohanao, tsy maninona izany. Hivoatra ianao, hihatsara ny fahatakaranao, ary ho lasa mahay mandanjalanja kokoa ianao amin'ny code tsy ho ela. Raha very tanteraka ianao, dia manoro hevitra aho hiverina amin'ity rindrambaiko ity taty aoriana rehefa avy niasa tamin'ny tena nihaona tamin'ny fianarana ny code code amin'ny Internet. Ireo matetika dia afaka manomboka, ary hitari-dalana anao amin'ny zavatra rehetra ilainao hahomby rehefa miverina amin'ity tetikasa ity ianao. Raha toa ianao ka mahatsapa fa vonona ny hanohy, hamaky, avy eo, hanarona ny code amin'ny mpizara lavitra ianao ary hanangana ny mpizara mailaka, ary koa ny fanamboarana tetikasa vaovao miaraka amin'ny baiko vaovao misy baiko vitsivitsy.
Ny zavatra farany tokony hataontsika alohan'ny hanesorana ny mpizara lavitra dia ny fanamboarana ny tranokalanay kely kokoa. Ho hitanao fa ny fijerena fidirana fotsiny dia maka anarana sy tenimiafina fotsiny, ary tsy misy ny fanamarinana marobe na ny kaody iray. Ity dia fanitsiana mora, ary miaraka amin'ny fehezan-dalàna mitovy, azontsika atao ny mampiditra ny tranokalanay mandefa hafatra an-tsoratra ary na dia mamaly hafatra aza ny hafatra alefa any amin'ny mpizara. Hanombohana, hiverina amin'ny modely mpampiasa izahay ary hanisy sonia TimesTamp izay hisolo tena ny fidirana tsirairay. Hanampy famantarana tsy manam-paharoa sy mihodina ho an'ny modely mpampiasa izay hampiasaina hanampiana fiarovana fanampiny amin'ny fidirana izahay. Fanitsiana ny Modely mpampiasa, mpampiasa / Models.py, ampio ny kaody manaraka:
# Ataovy azo antoka fa manafatra ny UUID, ny sonia Timetamp Signer sy ny Generator URL (mifamadika)
# Ampio ity kaody ity eto
# Ary ampio ity fiasa ity
TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # Manan-kery mandritra ny 3 mins
Ataovy azo antoka fa toa izao ny mpampiasa / Models.py, ankoatry ny fanehoan-kevitra (code amin'ny tsipika miaraka amin'ny #). Ny fanapahana izany dia tsotra. Manana fanafarana vitsivitsy izahay, ny mponinim-pitadiavana izay mety hiteraka fehezan-dalàna azo antoka ary manamarina izany mba hahazoana antoka fa tsy manan-kery izany, fa tsy mihoatra ny segondra vitsy. Mampiasa UUID koa izahay, izay mpizara tokana izay mamaritra ny mpampiasa anay amin'ny sonia ny tokana, ary ao amin'ny URL izay alefa ny mpampiasa. Izahay dia hampiasa io komôlà fototra io mba hanamboarana fomba fijery fanamarinana roa. Alohan'ny hanaovana zavatra hafa, andao isika hampandeha ny fifindra-monina ka havaozina ny modely mpampiasa anay. Ao amin'ny lahatahiry miaraka amin'ny fitantanana.py, ampandehano ireto baiko manaraka ireto mba hanatanterahana sy hamita ny fifindra-monina.
source venv/bin/activate
python manage.py makemigrations && python manage.py migrate
Zava-dehibe izany satria isaky ny manao fanovana amin'ireo modely isika dia mila manangana ny latabatra ary manavao ny angon-drakitra miaraka amin'ny tsy mety alohan'ny ahafahantsika mampiasa modely.
Manaraka, andao hanavao ny fomba fijerinay ny fandinihana ny fomba fijery fanamarinana faharoa. Ao amin'ny mpampiasa / views.py, esory ny fiasa miditra sy ny redirect amin'ny URL izay vao avy nanao modely mpampiasa izahay.
# ... Import
if user and user.profile.can_login < timezone.now(): # Mariho fa manamarina isika izao raha afaka miditra ny mpampiasa
# Esory ny fiasa an-tsokosoko eto
return redirect(user.profile.create_auth_url()) # Mariho fa redirect amin'ny URL vaovao isika eto
else: # Raha tsy mampiasa fanamarinana marobe ny mpampiasa dia miditra fotsiny izy ireo.
else: # Raha tsy nahomby ny fidirana,
user = User.objects.filter(username=username).first() # Ity no ampahany izay havaozinay ny mombamomba ireo mpampiasa
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Ka tsy afaka miditra indray izy ireo mandritra ny segondra vitsy
Noho izany dia tsotra izao, manana fomba iray hanodinana ny fomba fijery fanamarinana roa isika izao rehefa mamorona azy io. Izahay koa dia manana fianjerana raha toa ka tsy nanampy nomeraon-telefaona ny mpampiasa. Hanampy fomba fijery fototra isika hanampiana nomeraon-telefaona tsy ho ela ary miditra amin'ny hafatra an-tsoratra tsy ho ela.
Voalohany, mila fomba mora handefasana hafatra an-tsoratra avy amin'ny kaody izahay. Mba hanaovana izany dia afaka misafidy amin'ny apis maromaro isika, fa ny mora indrindra amin'ny hevitro dia ny twilio. Manolotra vidiny tsara ho an'ny tetikasa kely kokoa koa izy ireo, ary koa ny fihenam-bidy betsaka. Mamorona kaonty amin'ny twilio.com, fenoy ny antsipirihany momba ny tetik'asa, mividiana laharana an-tariby, ary adikao ny fanalahidinao API anao.Py. Avy eo, ampio ity kaody ity eo ambanin'ny rakitra vaovao, mpampiasa / sms.py.
nano users/sms.py
# Ampidiro ny fonosana ilaina rehetra
# Ity kaody ity dia mandefa ny lahatsoratra miaraka amin'i Twilio
# Ny mpanampy iray dia miasa mba hahazoana isa miaraka amin'ny isa maro be
# Alefaso ny lahatsoratra mba hanamarinana ny mpampiasa
# Mandefasa mpampiasa iray misy lahatsoratra miaraka amin'ity fiasa ity
# Manamarina ny kaody miaraka amin'ity fiasa ity
# Manamarina ny fotoana
Ataovy azo antoka fa hanova ny toe-javatra mety aminao, ampiana ireo tsipika ireo amin'ny fanalahidinao:
# Ataovy azo antoka fa handika ireo amin'ny dashboard twilio anao
AUTH_VALID_MINUTES = 3 # Ny isan'ny minitra ny pejy TFA dia mavitrika indray mandeha indray mandeha
Voalohany, mila endrika ho an'ny fomba fijery arak'asa roa isika. Ireo mpampiasa fanovana / Formy.py, ampio ity kaody manaraka ity.
# ... Import
# Fomba iray hidirana ny nomeraon-telefaoninay
# Fomba iray ho an'ny fanamarinana
Manaraka, andao hamorona ny fomba fijery amin'ny mpampiasa / views.py
# ... Import
Ilainay koa ny maodely ho an'ireo fomba roa ireo. Andao hampiana ny MFA Mementaly aloha.
nano users/templates/users/mfa.html
Ampio ity kaody HTML ity amin'ny môdely
Ity dia fanazavan-tena tsara. Ny endrika dia mandefa kaody na kaody tsy misy na inona na inona, ary ho hitanao amin'ny fomba fijery izay andefasantsika ny kaody raha mahazo kaody tsy misy dikany izahay. Avy eo isika dia manana bokotra roa fotsiny, ary ity fomba ity dia afaka mandefa ny kaody miaraka amin'ny bokotra na bokotra. Manaraka, hanisy endrika tsotra isika hanampiana ny laharana an-tariby.
nano users/templates/users/mfa_onboarding.html
Ampio ny HTML manaraka:
Ity endrika ity dia somary tsotra kokoa, izay fotsiny no nanala ny endrika nomeraon-telefaona noforoninay ary avelao ny mpampiasa hampiditra nomeraon-telefaona.
Tena tsara izany! Raha mbola napetraka tsara ny zava-drehetra, dia tokony ho afaka mandefa hafatra isika, ary miditra amin'ny mpampiasa miaraka amin'ny laharan'ny findainy raha vao manampy ny url ny URL. Ny zavatra farany ilaintsika hananganana dia fomba fijery mombamomba antsika mba hahafahantsika manova ny nomeraon-telefaonany tsy misy fidirana.
Andao isika hanampy ny fomba fijery mombamomba ny mpampiasa / views.py. Ity fomba fijery ity dia hanavao ny bio, ny mailaka, ny anarana, ny anarana ary ny laharan-telefaona, ary koa mamela antsika hampiorina ny fanamarinana marobe. Voalohany, mila endrika roa hafa isika amin'ny mpampiasa / Forms.py
# ... Import
Manaraka, afaka mamorona fomba fijery isika hampiasa ireo endrika roa ireo. Hanova ireo mpampiasa / views.py ary manampy amin'ny fomba fijery.
# Ampio ireo fanafarana ireo
Mila modely ihany koa isika noho io fomba fijery io.
nano users/templates/users/profile.html
Ho hitanao fa tsotra tsotra ity, saingy manana JavaScript sasany ao anatin'izany izay lahatsoratra mandeha ho azy ny votoatin'ny endrika rehefa havaozina izy ireo. Tena ilaina izany, ka afaka manao fanovana ianao nefa tsy mila manery ny fandefasana isaky ny misy.
Manaraka, mila URL isika misolo tena ireo fomba fijery rehetra amin'ireo mpampiasa URL Patters. Hanova ireo mpampiasa / URLs.py ary ampio ity kaody ity:
# ... Kaody teo aloha, fanafarana
# ... Ny lamina URL nidirantsika teo aloha, ampio ny andalana telo manaraka
Ankehitriny dia fotoana tsara hizaha toetra ny tetik'asa. Fa aloha, andao hanao backup hafa.
backup
Ary mihazakazaka ny mpizara. Alohan'ny hametrahantsika ny mpizara Linux, dia tsara ny mamela ny fanamarinana roa amin'ny kaonty. Izahay dia hanao izany amin'ny url profil, / mpampiasa / profil / profile / profile /, ary jereo ny boaty mba ahafahana manamarina rehefa avy niditra ny nomeraon-telefaoninay, ary avy eo ny fandefasana ny taratasy.
python manage.py runserver localhost:8000
Tsidiho ny Webpage amin'ny alàlan'ny fandehanana any amin'ny tranonkalanao, mampiasa google Chrome aho amin'ity ohatra ity, ary miditra amin'ny URL https: // localhost: 8000 / kaonty / profil / profile
Ho afaka miditra ianao raha ilaina ary avelao ny fanamarinana roa.
Ity tetikasa ity dia mila mpizara hazakazaka mba hahafahany mandefa mailaka. Fa aloha, mila fomba hahitana lesoka isika. Ho hitanao fa raha mihazakazaka ny mpizara amin'ny mode debug ianao, miaraka amin'ny setting.debug mitovy amin'ny marina, ny mpizara dia mampiseho faingana ny mpizara. Mba hampisehoana hadisoana tsy mampiasa mode debug, izay tsy azo antoka amin'ny mpizara mpamokatra, dia tokony hampiditra fomba fijery momba izany isika. Ny lesoka lehibe indrindra tokony ho vitantsika dia:
Hadisoana 500 - Olana amin'ny kaody misy antsika Hadisoana 404 - Pejy iray izay tsy hita (URL tapaka) Hadisoana 403 - Ny fahazoan-dàlana dia nolavina
Aleo ampio ny fampiharana vaovao hiatrehana ireo lesoka ireo, antsoina hoe lesoka.
python manage.py startapp errors
Ampio izany amin'ny setting.Py tahaka ny nataonay taloha, tao amin'ny fametrahana_apps napetraka, ary atombohy amin'ny alàlan'ny fampidirana ny fomba fijery sasany ao amin'ny App / URLs.py, izay misy ny tetikasa DJANGo.
handler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'
Izany ihany no ilaintsika ankoatra ny fomba fijery diso, ny modely ary ny afovoany kely. Andao hamaritra ireo izay toy izao:
# Mamorona fomba fijerinao eto.
Manaraka, andao hamaritana ny midorleware hiatrehana ireo lesoka ireo. Hanao izany isika amin'ny alàlan'ny fampidirana voalohany amin'ny MiddleWare_Classes ao amin'ny Settings.py, miaraka amin'ny anaran'ilay afovoany.
# ... Ny afovoany teo aloha
Manaraka, aleo ampio ny afovoany.
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.')
Manampy fiasa isika mba hahazoana ny ankehitriny amin'ny fampiasana kofehy eo an-toerana, izay manampy antsika handinika ireo lesoka rehetra ao amin'ny kaody. Raha resaka modely, dia mila iray ihany isika, satria isika dia mamaritra ny lohateny amin'ny fomba fijery. Ny môdely fotsiny dia mila manome ny anaram-boninahitra sy "trace", ny fahadisoantsika dia tsy misy dikany avy amin'ny teny manodidina.
nano errors/templates/errors/error.html
Ity no modely faran'izay tsotra indrindra indrindra, fa izay kosa dia mora ny mahita ireo lesoka ao amin'ny tetik'asa. Manaraka, andao hanaisotra ny debug amin'ny toe-javatra.
nano app/settings.py
Mitadiava ity tsipika ity izay apetraka ao amin'ny TRUE, ary ovaina amin'ny FALSE
DEBUG = False
Mandehana mialoha ary avereno ny fampiharana izao. Vonona ny hametraka amin'ny mpizara Linux lavitra izahay, ary tohizo ny fampiasa amin'ny endriny avy ao.
sudo backup
Alohan'ny handefasantsika ity kaody ity amin'ny mpizara iray dia tokony hoheverintsika fa mety hisy ny olana sasany amin'ilay fehezan-dalàna. Miankina amin'ny tranga, ireo tranokala izay manaiky ny fampahalalana nalefa ho azy ireo dia hanana olana amin'ny spam naparitaka sy sarotra ny manala ny spam. Tsy tokony hitranga avy hatrany izany, fa raha mitranga izany, dia hotsarainay any aoriana hoe ahoana ny fomba hanamafisana azy ireo amin'ny tranokala ary hanamarina ny kaonty mpampiasa, ary hanamarina ny mombamomba ny id
Raha jerena ny ohatra iray amin'ny maha-fanamarinana ny Multi Fascentication ohatra izay hodinihintsika, amin'ny famokarana, ny zavatra dia mety ho hafa. Mariho ny fomba itondrantsika ny logins logins, ary ny famantarana efa lany. Raha miditra amin'ny tranokala ny robots, ny fanamarinana roa dia mety ho sarotra kokoa rehefa afaka miditra ny kaody amin'ny fotoana mitovy amin'ilay mpampiasa. Mba hiadiana amin'izany, andao isika hampiasa modely ao amin'ny modely mpampiasa, manambara ny fomba ifandraisantsika amin'ny tranokala rehefa manamarina ny fampiasana ny fampanantenana marobe amin'ny laharana finday izahay. Hanampy safidy ihany koa isika hanamarina amin'ny mailaka. Atombohy amin'ny fanitsiana ny modely mpampiasa an'i Nano.
nano users/models.py
Izany no tokony hampidirintsika ny modely izay ampidirinay. Tsy mila fomba fiasa izahay, variana fotsiny mba hitehirizana id, ny mpampiasa, ny foto-tsofina, ny halavany, ny halavany ary ny fanandramana manohitra ny fanamarinana marobe (kaody iray toa ny 123456 nalefa tamin'ny telefaona na mailaka).
# Toha fototra iray ampiasaina hiditra ao amin'ny tranokala
Andao hanampy tombontsoa ho an'ny mpampiasa anay, ary hapetrantsika amin'ny fomba ara-bakiteny izao, alohan'ny hifindra amin'ny fidirana amin'ireo mpampiasa manana tombontsoa ho azy avy hatrany. Ao amin'ny modely mpampiasa, ampio ity tsipika ity ao amin'ny mombamomba ity:
vendor = models.BooleanField(default=False)
Toy ny fiovana amin'ny angon-drakitra, mila manao fifindra-monina isika ary mifindra ny angon-drakitra amin'ny fotoana rehetra hanovantsika ny rakitra modely.py ao Django. Tadidio fa ny fanaovana izany dia mampiasa loharanom-baovao isika (raha mbola tsy nampiasaina hatrizay vao nisokatra ny terminal) ary avy eo ny python nitantana ny fifindra-monina ary mifindra monina.
cd project-directory-you-named # (raha ilaina)
Amin'izao fotoana izao dia azonao atao ny mametraka kaonty izay noforoninao ho mpivarotra amin'ny alàlan'ny fampiasana ny akorandriaka.
python manage.py shell
from users.models import Profile
p = Profile.objects.get(user__username='Charlotte')
p.vendor = True
p.save()
exit()
Ankehitriny, andao hivoatra ny fomba fijery fanamarinana marobe momba ny antonony mba hampiasa an'io tokana io. Voalohany, mila manova ny fitaovana mpanampy ny MBA izahay. Mampiasa 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
# Manamarina ilay mpampiasa mampiasa ny mailaka na ny nomeraon-telefaonany
token = MFAToken.objects.filter(uid=username, expires__gt=timezone.now() + datetime.timedelta(seconds=30)).order_by('-timestamp').last() # Safidio ny marika amin'ny sandany izay nandalo tao amin'ny URL (A 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)) # Raha tsy noforonina io fivoriana io dia namorona azy io
user = User.objects.filter(id=token.user.id).first() # Raiso ny mpampiasa amin'ny tokana
if not user and request.user.is_authenticated: return redirect(reverse('feed:home')) # Raha efa voamarina izy ireo dia miditra ao
if not user: raise PermissionDenied() # Mandà raha tsy nisy mpampiasa hita
if not user.profile.enable_two_factor_authentication and user.is_active and user.profile.check_auth_token(usertoken, token): # Zahao ny famantarana an'i AUTH
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Midira ao amin'ny mpampiasa raha mbola tsy tafiditra ao izy ireo
user.profile.mfa_expires = timezone.now() + datetime.timedelta(minutes=settings.LOGIN_VALID_MINUTES) # Mametraha lany daty amin'ny maha-izy azy
return HttpResponseRedirect(next if next != '' else reverse('landing:landing')) # Hodio ny mpampiasa amin'ny pejy manaraka
if not user.profile.mfa_enabled: # Hamarino raha azo i MFA
if not check_verification_time(user, token): # Hamarino ny fotoana
user.profile.mfa_enabled = False # Hamafa ny laharan'ny telefaona
user.profile.enable_two_factor_authentication = True # Mampifanaraka MFA
user.profile.phone_number = '+1' # Ampidiro ny nomeraon-telefaona
user.profile.save() # Tehirizo ny mombamomba azy
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Ampidiro ny mpampiasa raha tsy alehany ny MFA
if request.method == 'POST' and not fraud_detect(request, True): # Raha ny fangatahana dia fangatahana lahatsoratra
form = TfaForm(request.POST) # Ampidiro ny endrika
code = str(form.data.get('code', None)) # Raiso ny kaody
if code and code != '' and code != None: # Ataovy azo antoka fa tsy foana
token_validated = user.profile.check_auth_token(usertoken) # Zahao ny famantarana an'i AUTH
is_verified = check_verification_code(user, token, code) # Zahao ny kaody
if token_validated: # Raha ny zava-drehetra
if is_verified: # Dia milamina
user.profile.mfa_enabled = True # Ampiasao ny MFA (raha tsy efa zatra)
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Midira ao amin'ny mpampiasa
for key, value in request.GET.items(): # Manorata fangatahana fangatahana ho an'ny tarehimarika manaraka (raha misy)
return HttpResponseRedirect(next) # Redirect
elif not token_validated: # Raha tsy manan-kery ny tokana
if p.mfa_attempts > 3: # Raha be dia be ny fanandramana
if form.data.get('send_email', False): # Alefaso ny mailaka (na lahatsoratra)
# Mamerina ny endrika (ho an'ny fangatahana)
Rehefa manampy an'ity kaody ity isika dia ataovy azo antoka fa hanafatra ny fiasa handefasana mailaka. Any an-tampon'ny rakitra, ny fijerin'ny mpampiasa (miaraka amin'ny fanafarana hafa), ampio
from .mfa import send_verification_email as send_mfa_verification_email
Ankehitriny, mila manoratra izany fiasa izany isika alohan'ny hanaovana izany. Tokony hanitatra ny fiasantsika mailaka, ary handefa mailaka fotsiny amin'ny mpampiasa amin'ny kaody fanamarinana.
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))
Ka izao no asa lehibe izao, izao dia manana rafitra fanamarinana marobe isika izay miankina amin'ny laharana finday na mailaka mba hidirana. Fa mila fomba hanesorana ihany koa isika, na farafaharatsiny afeninay ireo mpampiasa izay tsy miara-miasa amin'ny fehezan-dalàna. Mety ho Spammers, robots na izay tsy dia misy dikany amin'ny asantsika. Topazo maso ny fomba fijery ananako ho an'ny fanaraha-maso ireo mpampiasa ao amin'ny tranokalako:
# fanafarana
from .tests import is_superuser_or_vendor # Mila mamorona ity fitsapana ity isika
# Makà lisitry ny mpampiasa
return render(request, 'users/users.html', { # Avereno ireo mpampiasa ao anaty moramora
Mariho fa ity kaody ity dia mampiasa fitsapana iray, mila manambara ity fitsapana ity ao amin'ny rakitra fitsapana.py ary manafatra azy. Ireo mpampiasa fanovana / fitsapana.py, andao hamorona ny fitsapana.
def is_superuser_or_vendor(user):
return user.profile.vendor or user.is_superuser
Ity dia miaraka amin'ireo mpampiasa / mpampiasa.html Template, izay toa toy izao:
Mariho fa ny modely dia ahitana ny modely hafa, mpampiasa /Mpampiasa.html. Rehefa mampiasa modely izay misy setroka ary tsy mampiasa fanitarana, ny hevitra tsara dia ny manampy mari-panaovana () Alohan'ny anaran'ilay rakitra hanitarana, mba hanavahana ireo modely.
Mariho fa be dia be i Jinja, mety tsy manana ireo variable rehetra voafaritry ireo. Fa izao no endrik'ilay kaody nataoko.
<small># {{user.id}} </ bitika>
Mila subemplate hafa koa izahay, Toggle_active.html. Ity modely ity dia tokony ho endrika izay ahafahantsika manangona na mavitrika ny mpampiasa iray.
Isika koa dia mila manampy ny fomba fijery amin'ny hetsika mpampiasa, ary ny lamina URL mety. Na dia eo am-pitrangan'izany aza isika, andao isika hanisy fomba fijery hanafoana ny mpampiasa raha toa ka mila an'izany isika.
# fanafarana
success_url = '/' # Ny redirect amin'ny URL mahomby
def test_func(self): # Fitsapana raha mpampiasa dia superuser ary manana alalana hamafa
Na dia azo ampiharina izany rehefa ilaina izany, ny famafana ny mpampiasa dia tsy tokony ho ilaina ny ankamaroan'ny fotoana, azontsika atao fotsiny ny mampihetsi-po fotsiny ny fahitana ireo mpampiasa izay mitsidika ilay tranokala raha mila manilika azy ireo isika.
Ny lamina URL dia nampitanay izany. Miaraka amin'i Nano, Hanova ny mpampiasa / urls.py ary ampio ireo andalana ireo:
nano users/urls.py
Ny tsipika dia tokony hiditra ao amin'ny lisitry ny lalana amin'ny fomba fijerin'ny mpampiasa, alohan'ny fiafaran'ny "]" fa aorian'ny fiandohana "[".
# ...
# ...
Ankehitriny, ataovy azo antoka fa avereno ny tranokala mba hahafahanao misintona azy amin'ny mpizara tranonkala dia hanohy hiasa isika. Avy amin'ny baiko,
sudo backup
Ankehitriny dia tohanana ny tranokalanay.
Noho izany dia manana endri-javatra vitsivitsy ilaina kokoa isika izao. Ahoana kosa ny amin'ilay sary lehibe eto? Ity fehezan-dalàna ity dia mbola tsy azo idirana amin'ny Internet, tsy mbola misy mpizara mailaka, ary mila manitatra ny fampiharana izahay mba hampiditra ny fizotran'ny fanamarinana feno sy ny fametahana malefaka mba hanampiana anay handinika ilay tranokala, miaraka amin'ireo protocols azo antoka.
Ho azontsika amin'izany rehetra izany. Ny tena zava-dehibe indrindra amin'izao fotoana izao dia ny hahazoana ity code ity amin'ny Internet, izay azontsika atao amin'ny andalana kely fotsiny amin'ny mpizara Ubuntu. Mila manofa mpizara ho an'ity ianao, raha tsy manana mpizara ao an-trano sy famandrihana Internet amin'ny raharaham-barotra izay ahafahanao manokatra seranan-tsambo. Izaho manokana dia mihazakazaka ny tranokalako amin'ny HP Z440 izay napetraka ao amin'ny tranoko, fa mora kokoa noho ny filàna fototra ilaina hanofa trano tsy miankina virtoaly (VPS) virtoaly (VPS) virtoaly (vps).
Aza hadino fa tsy manify ny fehezan-dalàna izay mihazakazaka ankehitriny, dia mila tazomina sy hiharatsy izy io alohan'ny hanomanana antsika hampiasa ny zavatra tsy maintsy hanamboarana vokatra. Ataovy azo antoka fa hitandrina izay ataonao amin'ny Internet, ho azo antoka raha mametraka ity tranokala ity amin'ny Internet amin'ny tranonkala ao amin'ny mpizara Linux ianao, manana drafitra hanakanana fifandraisana tsy ilaina amin'ny tranokalanao. Mety tsy ho olana amin'ny voalohany izany, fa hijery vahaolana isan-karazany isika hiadiana amin'izany, ao anatin'izany ny fianarana milina, ny fahakingan-tsaina sy ny fahitana solosaina. Rehefa lasa olana izy io, dia jereo bebe kokoa amin'ity lahatsoratra ity ho vahaolana.
Raha resaka fanofana VPS dia misy toerana be dia be azonao aleha. Google Slow dia manana Servers VPS, ionos, Kamatera, Amazon, AMAZON, ary mpanome bebe kokoa dia manolotra vahaolana mpizara rahona izay mifanaraka amin'ny zavatra ilainay.
Mila tsindrio ny endrik'izy ireo ianao ary misafidy drafitra hanombohana. Azonao atao ny mandeha miaraka amin'ny drafitra fototra iray, fa ataovy azo antoka fa ahafahan'ny mpamatsy anao hanokatra seranan-tsambo mpizara seranan-tsambo handefasana mailaka (ity dia tokony ho port 587 sy ny Port 25), ny mpamatsy sasany dia manakana ireo seranana ireo. Hatreto dia manana traikefa tsara indrindra miaraka amin'i Ionos sy Kamatera aho, samy hamela ahy handefa mailaka tsy misy fetra ary ny vidiny dia tsara tarehy.
Hifandray amin'ny mpizara vaovao ianao noho ny protocol iray antsoina hoe Ssh na ny akorandriaka azo antoka, izay ahafahanao manelanelana lavitra miaraka amin'ny mpizara mitovy amin'ny solosainao manokana, amin'ny solosainao manokana. Rehefa mametraka ny mpizara ianao dia mety hangataka anao ny mpampiantrano ny mpampiantrano anao hampiditra fanalahidy SSH, na hanome anarana sy tenimiafina ianao. Ny lakile SSH dia ny fomba hidiranao ao amin'ny mpizara avy amin'ny lisitry ny baiko hanovana ny kaody. Ampiasao ny safidy eto ambany Ssh-keygen mba hiteraka fanalahidy SSH.
ssh-keygen
Tehirizo ny rakitra ary soraty raha mila izany ianao, tsara ny mihodina ny fanalahidinao SSH raha mbola tsy manana ianao. Ankehitriny, azonao atao ny mampiasa ity baiko manaraka ity mba hahitana ny lakilen'ny SH anao. Te-handika izany amin'ny mpizara lavitra anao ianao mba hahafahanao mampiasa azy hanamarina.
cat ~/.ssh/id_rsa.pub
Raha tsy afaka mahita ny lakile SSH ianao rehefa manoratra an'io baiko io (tsipika sy litera lava iray manomboka amin'ny "Ssh-RSA AAA"), dia manandrama ny fanalahidy RSA (dia manoro hevitra azy ireo aho.
ssh-keygen -t rsa -b 4096
Mamorona VPS mandeha Ubuntu, na izany aza dia mikasa ny hanao izany ianao. Vantany vao namorona VPS ianao tamin'ny alàlan'ny fipihana ireo endrika ireo tao amin'ny tranonkala mpamatsy (Kamatera.com, ionos.com na mitovy), dia te-hiditra ianao. IANAO ihany koa dia tokony ho mora tohina amin'ny anarana mpampiasa default amin'ny mpizara noforoninay, ohatra, Ubuntu.
ssh ubuntu@XX.XX.XX.XX
Azonao atao ny mangataka tenimiafina, raha angatahana tenimiafina ianao, ampidiro ao anatiny. Tsy hampiasa ny anarana mahazatra izahay, ka aleo atombohy amin'ny alàlan'ny famoronana mpampiasa vaovao ary manampy ny fanalahidin'ny SH.
Aleo atombohy amin'ny alàlan'ny fampidirana rakitra Sshd_Config vaovao, izay milaza ny mpizara ny fomba fampiasana ssh.
nano sshd_config
# Ity ny rakitra Sshd mpizara SHOGE CONMNIONES. JEREO NY
# Sshd_config (5) raha mila fanazavana fanampiny.
# Ity Sshd ity dia natambatra tamin'ny lalana = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / kilalao
# Ny paikady ampiasaina amin'ny safidy amin'ny SSHD_Config SSHD_Config nalefa
# Ny OpenSH dia mamaritra ny safidy miaraka amin'ny sandany izay misy azy
# azo atao, fa avelao izy ireo haneho hevitra. Ny safidy tsy voafidy dia override ny
# Sanda default.
# Port 22
# Adiresy misy
# HeartAddress 0.0.0.0
# HeartAddress ::
# Hostkey / etc / ssh / ssh_host_rsa_key
# Hostkey / etc / ssh / ssh_host_ecdsa_key
# Hostkey / etc / ssh / ssh_host_ed25519_key
# Ciphers sy fanalahidy
# Rekeylimit default tsy misy
# Fitrandrahana
# Syslogfacility south
# Loglevev vaovao
# Fanamarinana:
# LoginNaCetime 2m
# PervMitrootLogin mandrara-tenimiafina
# Hentitra eny eny
# Maxauthtries 6
# Maxsessions 10
# Andrasana .ssh / manam-pahefana_keys2 tsy hiraharaha amin'ny alàlan'ny default amin'ny ho avy.
# MpanoratraPrincipalsFile No
# ManadidyCeyScommand Nits
# ManadidyCeyScommanduser tsy misy olona
# Amin'izany dia mila miasa ianao dia mila fanalahidin'ny mpampiantrano amin'ny / sns / Ssh / Ssh_known_host
# Hostbasedauthentication no
# Manova eny eny raha tsy matoky ~ / .SSH / fanta-daza ianao
# Hostbasedauthentication
# Tsy raharaham-boninkazouserkanshosts no
# Aza mamaky ny mpampiasa ~ / .rhosts sy ~ / .Shosts Files
# Ny tsy fahitana eny
# Mba hampiato ny tenimiafin'ny lahatsoratra mazava tsara, miova tsy misy eto!
# PermitemptyPassword No.
# Miova ho eny raha mamela ny tenimiafina valintenin'ny fanamby (ny olana momba ny fitandremana
# Modely sy kofehy pam sasany)
# Safidy Kerberos
# Kerbererouthentication no
# KerberosorloCalpasswd eny
# Kerberostostetcleanup YES
# Kerberosetafstoken no
# Safidy GSSAPI
# Gssapiauthentication no tsia
# Gssapicleanupcrcrecentials eny
# Gssapistrictacceptceck Eny
# Gssapikeyexchange no
# Apetraho amin'ny 'YES' mba hahafahana mamela ny fanamarinana PAM, ny fanodinana kaonty,
# ary ny fanodinana fivoriana. Raha azo atao izany, dia hanao ny fanamarinana ny PAM
# avelanao amin'ny kbdinteractiveuticoautication sy
# Passwordauthentication. Miankina amin'ny fanitsakitsahana pam anao,
# Ny fanamarinana PAM amin'ny alàlan'ny kbdinteractiveHentication dia mety amin'ny alàlan'ny
# ny fametrahana ny "pervitootlogin tsy misy tenimiafina".
# Raha tianao fotsiny ny kaonty pam sy ny fizahana fivoriana dia mihazakazaka tsy misy
# Ny fanamarinana Pam, avy eo dia avelao ity fa mametraka ny passwedauthentication
# ary kbdinteractiveuthentication to 'no'.
# Allowagentforward eny
# Allowetcpforward eny
# Gatewayports no
# X11displayoffset 10
# X11uselocalhost eny
# Permittty eny
# Fanontam-pirinty
# TCPKeepalive eny
# Permituserenervironment no
# Fanemorana ny fanemorana
# Clientaliveinterval 0
# Clientalivecountmax 3
# Efa nampiasaina
# Pidfile /run/sshd.pid
# MaxStartUPS 10: 30: 100
# PermitTunnel no
# Chrootdirectory tsy misy
# Versionaddendum tsy misy
# Tsy misy lalana sora-baventy default
# Avelao ny mpanjifa handefa variable tontolo an-toerana
# Override tsy misy fidiram-bolan'ny tsy misy subsistem
# Ohatra ny hanafatra ny fisafidianana amin'ny mpampiasa iray isaky ny mpampiasa
# Mpampiasa mpampiasa anoncvs
# X11forwarding no
# Allowtcpforwarding no
# Permitty no
# ForceCommand CVs Server
Tadidio, Ctrl + sy Y hanavotana ny rakitra. Manaraka, andao hanoratra fehezan-teny fototra antsoina hoe Initialize (rehetra ao amin'ny lahatahiry an-trano an'ny mpampiasa anay).
nano initialize
Ampio ireo tsipika ireo amin'ny rakitra, fanoloana
# ! / bin / bash
Mba handehandeha amin'ity rakitra ity, andao isika hanomboka andalana. Ny tsipika voalohany dia milaza ilay mpamorona fa io no script bash. Avy eo isika dia mametraka ny fiankinan-dàlana, ny fandikana ny SSHD_Config ho an'ny Directory, mamerina ny SHS Manampy ekipa amin'ny vondrona sudo ihany koa izahay, miteraka ny lakilen-dry zareo SHS Ity mpampiasa vaovao ity dia ny fomba hidirantsika ao amin'ilay tranokala.
Ao amin'ny terminal vaovao, mandrosoa ary manokatra ny mpizara indray.
ssh team@XX.XX.XX.XX
Tsy tokony mila tenimiafina ianao amin'ity indray mitoraka ity, rehefa manana lakile SSH ianao. Izahay koa dia manan-kery miditra amin'ny tenimiafina miaraka amin'ny tenimiafina mba hiarovana tsara ny tranokala.
Ankehitriny, ity mpizara ity dia manomboka feno tsy misy fanazavana momba izany. Andao hanomboka amin'ny fametahana ny tetik'asa avy amin'ny git mba hahafahantsika misintona sy hampandehanana azy eny amin'ny milina lavitra. Ao amin'ny mpizara lavitra mifandray amin'ny SSH, pirinty aloha ny lakile SSH anao:
cat ~/.ssh/id_rsa.pub
Manaraka, apetaho ao anaty toe-javatra git ity fanalahidy ity toy ny nataonay teo aloha mba hametrahana ny tahiry git. Azontsika atao ny mamolavola ny tetik'asa mivantana amin'ny mpizara. Ataovy azo antoka fa nanohana ny tetikasa teo an-toerana ianao aloha ka ao amin'ny mpizara git mba hisintona.
git clone git://github.com/you/yourproject.git
Tonga lafatra. Izao dia eto daholo ireo rakitra rehetra. Azontsika jerena miaraka amin'ny LS
ls
Ankehitriny, andao isika hanangana ny mpizara. Voalohany, kopiho ny lisitry ny lisitry ny tetikasanao ho anarana tsotra sy tsy hay hadinoina izay hampiasainay ho an'ny tetikasa.
cp -r yourproject whatyoucalledit
Aiza ny "Whyyouracalledit" dia anarana vaovao amin'ny tetik'asa. Manaraka, mila manorina fitaovana fototra isika mba hametrahana ny mpizara. Izahay dia hamonjy ity fampiasana ity ary hampiasa izany amin'ny ho avy. Mba hanamboarana io fampiasana io, andao isika hamorona mpampiasa iray binary hamaritana ny fomba hanovantsika script. Mampiasa Bash, Hanova / USR / Bin / Ascript
sudo nano /usr/bin/ascript
Ataovy azo antoka fa mampiasa sudo ao ianao ka manana fahazoan-dàlana hanova ny rakitra. Ao amin'ny rakitra, ampio ireo andalana ireo:
# ! / bin / bash
echo "# ! / bin / bash ">> / usr / bin / $ 1
Aza adino ity script ity dia misy tohan-kevitra, ny anaran'ny script, toy ny $ 1. Voamarina voalohany raha toa ka misy ny fisie, na amin'ny fomba hafa, dia manampy ny tsipika voalohany hanambarana ny script dia i Bash, manova ny fahazoan-dàlana ary ny anarany izay mamela ny anaran'ireo script izay namorona ny script. Raha efa misy ny rakitra dia manova ny fahazoan-dàlana fotsiny ary hanova azy. Tehirizo ny rakitra, ary hanova ny fahazoan-dàlana isika. Raha mbola mampiasa an'io script io isika dia tsy mila manao an'izany intsony.
sudo chmod a+x /usr/bin/ascript
Tonga lafatra. Andao isika hamorona script antsoina hoe Setup. Voalohany, tsy ny hanafotra anao, fa jereo ny endrik'izay toa ny endrik'ilay toetrako. Handeha mamaky ny zavatra tokony hojeren'ity script ity amin'ny tetikasanao ianao, tsy mila ny zavatra rehetra ao amin'ny script aho hanomboka.
# ! / bin / bash
# sudo chmod a + x x x x xsetup
# ./scripts/usersetup
# Ssh-keygen
# Directory momba ny tetikasa
# Log log
# Nano config
# Git config
# Hanavao sy hametraka
# Mampifanaraka Antivirus Clamav
# Asio hostname
# Manamboatra postgres
# Famerenana ny Database Backup
# Tsy azo ipt ambin'ny folo
# Apetraho Bitdefender
# Manamboatra postfix
# Mamorona dirs
# Fanamboarana VirtualenV
# Makà sy manangana ny fiankinan-doha
# Ataovy ny fitsipiky ny firewall
# Apetraho ny Depiote Pypi
pip3 install --upgrade opencv-python # == 4.5.4.60
pip3 install --upgrade opencv-contrib-python # == 4.5.4.60
# Pip Mametraka OpenCV-Python == 4.5.5.64
# PIP Mametraka OpenCV-Contrib-python == 4.5.5.64
# Apetraho ny Certbot
# Mihazakazaka Certbot
# Reload Mail mpizara
# Adikao ny CERTS
# sudo cp /etc/letsencrypt/live/femmebabe.com/privkey.pem privey.pem
# sudo cp /etc/letsencrypt/live/femmebabe.com/cert.pem cert.pem
# Patch venv
# Apetraho ny filaharan'ny mpampiasa
# Mametraha fahazoan-dàlana
# Sudo Chown -R Team: mpampiasa / Var / Run /
# sudo Chown root: faka / run / sudo / ts -r
# sudo chmod 664 db.sqlite3
# sudo Chown WWN www-data: mpampiasa db.sqlite3
# Adikao ny config sy ny fahazoan-dàlana
# Setup Database
# Inject Pam Config ary esory ny diso Ssh Config
# sudo sed -i '' -e '$ d' /etc/pam.d/sshd
# sudo sed -i '' -e '$ d' / sns / profile
# Adikao ny script bin ary mametraka ny fahazoan-dàlana
# Ampidiro indray ary ampiasao ny serivisy
# Ampiasao ny modules Apache
# Sudo A2DISMOD MPM_EFENT
# sudo A2Dismod MPM_Worker
# sudo a2enmod mpm_prefork
# Ampidiro ny toerana default
# Ampiasao ny tranokalanay
# Reload Daemon ary avereno indray ny Apache, Postfix ary OpenDkim
# Mametraha fahazoan-dàlana
# SWAP Configuration
# Entana inittion motera
# Setup git
# Asehoy ny IPV6 sy OpenDkim ho an'ny fanitsiana domain
# Vita ny fananganana
Be dia be ny fananganana! Raha fintinina dia didim-pitsipika ny kaody, ny code ary ny git, ny download ny rakitra, ny paositra, ny paositra, dia manamboatra ny UFW (tsy azo antoka), misintona antivirus, manao direktra Ny fahazoan-dàlana dia mametraka ny taratasy fanamarinana ary mametraka ny mpizara, mametraka ny fanitsiana, manomboka ary mamela ny mpizara, manome alalana, mandefa ny fahazoan-dàlana ary ny fanontana ny IPv6 sy ny fanalahidin'ny Internet. Tsotra tsotra, fa toa ny kaody maro be. Tsy mila be dia be izahay satria tsy manana ny fiankinan-doha isika, dia tsy mampiasa seleria, selerybeat na daphne, fa hametraka ny sasany amin'izy ireo isika vao manomboka. Mariho fa ity fehezan-dalàna ity dia nanambara domain iray nambara imbetsaka.
Izahay koa dia mila mividy anarana domain (izay sarany isan-taona). Manoro hevitra ny kianja amin'ny fividianana sehatra aho, ny laharan'izy ireo dia intuitive ary mora ampiasaina. Azonao atao ny mividy sehatra izay safidinao, fa mampiasa ny domababe.com aho. Vantany vao nividy sehatra ianao, dia ny loha mankany amin'ny tontolon'ny DNS DNS ary ampio rakitsoratra manondro ny faritra misy anao amin'ny adiresy IP. Tokony ho toa izao:
@ A xx.xx.xx.xx
Miaraka amin'ny @ mpandraharaha @ amin'ny maha-mpampiantrano azy, ny dikan'ny subdomains rehetra eo ambanin'ity sehatra ity sy ny faka faka dia haverina amin'ny mpizara rehetra. Betsaka ny firaketana an-tsoratra mba hanambarana, fa afaka mandroso amin'ireto isika raha vao vonona handefa mailaka. Tadidio fa afaka andro maromaro izy io alohan'ny ahafahanao mandefa mailaka am-pahombiazana amin'ny mpizara. Ny rakitsoratry ny DNS dia sangan-javatra isika dia haka fotoana hanaparitahana.
Na izany na tsy izany, ny firaketana tokana ilaintsika hanombohana dia firaketana. Koa ankehitriny isika dia afaka mameno ny script manaraka araka ny tetik'asa ary mihazakazaka.
Andao atombohy amin'ny script fanamboarana kely kokoa mba hametrahana izay ilaintsika amin'ny fandrosoana fototra. Tsy hampiasa ny dependencies na postgreql be loatra izahay, fa hanomboka ny mpizara HTTP fototra ihany ary hanahy ny hanamarina azy io rehefa vita izany. Tadidio fa ny hahazoana taratasy fanamarinana HTTPS ary hampandeha ny mpizara azo antoka, mila mividy domain iray isika miaraka amin'ny mpizara mpizara. Amin'izao fotoana izao dia asio ny "ekipa" amin'ity rakitra ity miaraka amin'ny anaran'ilay mpampiasa anao, "Dir" miaraka amin'ny lahatahiry ny tetik'asa, ary omeo ny mailaka sy ny domain anao ao amin'ny sehatra <> Tags.
Ankoatr'izay, alohan'ny hitondrantsika ity kaody ity dia mila manova ny toe-javatra ao amin'ny Firewall isika dia manohana, raha misy. Matetika izany dia ao amin'ny tabilao 'Networks' ao amin'ny mpamatsy mpampiantrano anao, na raha fampiantranoana tena ianao, dia ny fizarana 'Portwarding' ao amin'ny làlanao. Te-hanangana IP static ihany koa ianao amin'ny alàlan'ny làlanao miaraka amin'ny adiresin'ny milina mpizara anao, raha mampiasa fampiantranoana tena ianao. Mila manokatra ny seranan-tsambo manaraka ireto ianao amin'ny famakiana / fanoratana.
22 (SSH) 25 (Mail) 587 (Mail) 110 (Mail Client) 80 (http) 443 (HTTPS)
# ! / bin / bash
# Log log
# Nano config
# Git config
# Hanavao sy hametraka
# Mampifanaraka Antivirus Clamav
# Asio hostname
# Famerenana ny Database Backup
# Tsy azo ipt ambin'ny folo
# Fanamboarana VirtualenV
# Apetraho ny Certbot
# Mihazakazaka Certbot
# Apetraho ny filaharan'ny mpampiasa
# Mametraha fahazoan-dàlana
# Sudo Chown -R Team: mpampiasa / Var / Run /
# sudo Chown root: faka / run / sudo / ts -r
# Ampidiro indray ary ampiasao ny serivisy
# Ampiasao ny modules Apache
# Reload Daemon ary avereno indray ny Apache, Postfix ary OpenDkim
# Asehoy ny IPV6 sy OpenDkim ho an'ny fanitsiana domain
Alohan'ny hampandehanana ity kaody ity dia ataovy azo antoka fa ny sehatra novidinao dia mifandray amin'ny mpizara. Mba hanaovana izany dia sokafy ny terminal eo amin'ny masinina eo an-toerana, ary ataovy io baiko io amin'ny domain:
ping femmebabe.com # Ampidiro eto ny sehatra misy anao, aorian'ny ping
Raha toa ka mijery tsara ny rehetra ary ny mpizara dia mandefa valiny, vonona ny hampandeha ny script izahay ary hametraka fonosana ary koa ny fanombohana, ahafahanao manamarina sy manamarina ny mpizara Apache.
Tsy ny fanamboarana rehetra ilaina ny fanamboarana ny postfix, hojerentsika io fananganana io taty aoriana. Amin'izao fotoana izao, ampandehano ity kaody fanamboarana ity ary tokony minitra vitsy mba hametrahana sy hanamarina ny mpizara anao. Avereno indray, alao antoka fa hisolo anarana, mailaka sy domain anarana ao amin'ny script araka ny anarana novidinao.
Ankehitriny, ny mpizara dia voamarina, azonao atao ny mandeha any amin'ny URL ao amin'ny browser web rehetra ary hizaha mba ho azo antoka fa handehanana HTTPS ny mpizara. Raha tsy izany dia andramo ny fiandrasana kely mandritra ny firaketana DNS mba hisintona ary avy eo dia mihazakazaka ity baiko manaraka ity mba hamerenanao ny fanamarinana Certbot:
sudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com
Raha mbola nanamboatra tsara ny zava-drehetra ianao, dia tokony ho afaka miditra amin'ny pejin'ny Apache ianao raha te hahafantatra fotsiny ny kaody anao ary ny fanehoana tranokala mivantana. Manaraka, andao hanova ny setting.py hanova ny fomba fiasa defug default amin'ny famokarana. Izahay koa dia manamboatra ny sehatra ao amin'ny setting, ary koa ips anatiny.
nano yourproject/settings.py
Ao amin'ny setting, manova / manampy ireo andalana ireo.
# Site Config
Ankehitriny, mila manitsy ny Apache2 isika. Andao hanova ny rakitra config izay hasianay amin'ity andalana ity:
sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf
Ity rakitra Config ity dia tokony hanana ny anaran'ny sehatra ao anatiny, ary ny anaran'ny mpampiasa sy ny tetikasa. Mampiasa ny anarana anarana Femembabe.com, ekipa anarana ary ny anaran'ny tetikasa ianao FemmeBabe.
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>
Ataovy azo antoka fa hanolo ny anaran'ilay tetikasa, ny direktories, ary ny sehatra ao anatin'ity vanim-potoana ohatra ity rehefa manamboatra ny mpizara. Ankehitriny, mila manafoana ny toerana tsy voafetra isika. Ity dia azo atao amin'ny fampiasana bash.
sudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl
Manaraka, azontsika atao ny mamela ny tranokala default sy hamerina ny Apache2, mampiasa bash ihany koa. Aza hadino ny manolo ny femmebabe amin'ny anaran'ilay rakitra nambaranao rehefa nanova ny / sns / Apache2 / site-misy /.
sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2
Miverena any amin'ny sehatra misy anao ao amin'ny NAVBAR. Tokony ho hitanao ny tranokala noforonina tao amin'ny tranonkalanao. Arahabaina! Raha tsy hitanao izany dia mety mila manova fanovana ianao. Avereno am-pitandremana ireo toe-javatra ao amin'ny tetik'asa, ny fanamafisana ny Apache, ary ho azo antoka fa tsy manana hadisoana ianao, ary ampandehano ireto baiko manaraka ireto mba hizaha ny tetikasa ho an'ny hadisoana.
cd projectname
source venv/bin/activate
python manage.py check
Raha manana hadisoana ao amin'ny tetikasan'ny python anao ianao, dia soriso ny toerana misy azy ireo ary amboary azy ireo. Mety tsy ho hitanao ny fahadisoanao rehetra miankina amin'ny toerana misy azy ireo, ka raha manana hadisoana izay milaza fotsiny ianao hoe "ny mponina dia tsy reentrant", hanova ity rakitra manaraka ity amin'ny rejistra virtoaly, hamoaka ny lesoka.
nano venv/lib/python3.12/site-packages/django/apps/registry.py
Mandehana mankany amin'ny andalana 83, izay misy ny hadisoana runtime (mampiakatra ny runtimeerror ("populate () tsy reentrant"), ary ampio ny fanehoan-kevitra eo alohany, miaraka amin'ny inditation, shoapp_configs = {}. Toa izao:
# Misoroka ny antso an-telefaona mba tsy handehanana AppConfig rady rady ()
# fomba indroa.
# Atsangano RuntimeError ("populate () tsy reentrant")
Azonao atao ny mandinika indray ilay tetikasa ary esory ny lesoka.
python manage.py check
Avy eo ianao dia afaka mahita ny lesoka ary amboary. Rehefa manana izany ianao ary ny code dia manangona hadisoana, ataovy azo antoka fa hanova ny rakitra dia toa izao:
# Misoroka ny antso an-telefaona mba tsy handehanana AppConfig rady rady ()
# fomba indroa.
# self.app_configs = {}
Raha toa ka an-tserasera ny mpizara, rehefa manao fanovana fanampiny isika, dia mila mampiasa ity baiko manaraka ity mba hamerenantsika ny mpizara:
sudo systemctl reload apache2
Mahagaga! Ahoana kosa ny amin'ny fandefasana mailaka? Mba hanombohana mandefa mailaka, dia mila havaozina aloha ny fanitsiana ny sehatra. Tokony ho ao amin'ny tontolon'ny DNS ao amin'ny kianja Squarespace ianao, na na iza na iza na iza na iza no anarana anarana nisafidiananao. Isika koa dia tokony hametraka sy hampiditra ny fanitsiana, ary mitantana baiko vitsivitsy.
Voalohany, andao isika haka ny adiresy ipv6 amin'ny mpizara. Hanokatra ny DNS anao izahay avy eo ary ampio ny rakitsoratra.
Mba hahazoana ny adiresy IPv6 mpizara, ampiasao ity baiko ity:
ip -6 addr
Ankehitriny, afaka manampy ireo rakitsoratra manaraka ireto amin'ny filaharana DNS isika. Toa izao ny firaketako. Na izany aza, ho an'ny firaketanao, ianao dia tokony hanolo ny adiresy IP amin'ny IP (tsy 75.147.182.214, ahy izany). Ampio koa ny faritaninao amin'ny toeran'ny femmebabe.com, ary koa ny adiresy IPv6 hita amin'ny didy teo aloha (tsy afaka mampiasa ny ahy ianao Aza manahy momba ny sehatra ho an'ny sehatra izao, noforonina rehefa nametraka postfix, ilay mpizara mailaka, miaraka amin'ny OpenDkim, ary hanonta ny lakile. Izahay dia hanamboatra an'io farany io.
@ ny N / A 75.147.182.214
@ MX 10 femmebabe.com
@ Ptr N / A femmebabe.com
@ TXT N / A TXT @ v = spf1 mx ip75.147.182.214IP6: FE80 :: 725a: FFF: FE49: 3E02 ~ REHETRA REHETRA
default._bimi TXT N / A v = bimi1; l = https: //femmebabe9e.com/media/static/femmebabe.svg
_dmarc TXT N / A v = dmarc1; p = tsy misy
sendonly._domaintey
TXT
N / A
Ankehitriny, mila manampy ny fanitsiana maharitra amin'ny postfix. Ny hany tokony hataontsika dia azo antoka fa manolo ny anaran'ny domain, Femigne.com, miaraka amin'ny anarana anarana ampiasainao. Andao hojerentsika ny fisie rehetra izay namaha ny tsirairay avy, ary nametraka azy ireo tao amin'ny lahatahiry antsoina hoe config ao amin'ny tetik'asa, mba hametrahana ny OS.
nano config/etc_postfix_main.cf
Ampio ity lahatsoratra ity amin'ny rakitra
# Jereo / /usr/share/postfix/main.cf.Diste ho an'ny fanehoan-kevitra sy fanehoan-kevitra feno kokoa
# Debian voafaritra tsara: Ny famaritana anarana rakitra dia hiteraka voalohany
# tsipika an'io rakitra io ampiasaina ho anarana. Ny default debian
# Is / sns / Mautname.
# Myorigin = / sns / Mautname
# Mandrakizay .Domain no asan'ny mua.
# Hiditra amin'ny tsipika manaraka mba hiteraka fampitandremana "fanemorana"
# DELAY_WARNING_TIME = 4h
# Jereo ny http://www.postfix.org/compatibility_readme.html - default amin'ny 3.6 on
# Fametrahana vaovao.
# TLS Parameter
# Fanamafisana Milter
Next Config!
nano config/etc_postfix_master.cf
Ampio ireo andalana ireo:
#
# Postfix master master prisction configuration. Raha mila fanazavana momba ny format
# ny rakitra, jereo ny pejy manual (5) (baiko: "Lehilahy 5 Tompoko" na
# on-line: http://www.postfix.org/master.5.html).
#
# Aza hadino ny manatanteraka ny "postfix reload" taorian'ny nanitanao ity rakitra ity.
#
# ==
# Type Service Type Unpriv Chroot Wakeup MaxProc Command + Args
# (eny) (eny) (tsia) (tsia) (100)
# ==
# SMTP INET N - Y - 1 Lioscreen
# Pass SMTPD - - Y - - SMTPD
# DNSBLOG UNIX - - Y - 0 DNSBLOG
# TlSproxy Unix - - Y - 0 TlSProxy
# Misafidiana iray: Ampiasao ny fanekena ho an'ny mpanjifa Loopback ihany, na ho an'ny mpanjifa rehetra.
# 127.0.0.1:IsaUblishis Inet N - Y - - SMTPD
# -o syslog_name = postfix / fandefasana
# -o smtpd_tls_security_level = encrypt
# -o smtpd_sasl_auth_enable = eny
# -o smtpd_tls_auth_only = eny
# -o smtpd_reject_unliclisted_recipient = tsia
# -o smtpd_client_restriction = $ mua_client_restriction
# -o smtpd_helo_restriction = $ mua_helo_restriction
# -o smtpd_sender_restrictions = $ mua_sender_restrictions
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_reliction = permit_sl_authenticated, nolavina
# -O Milter_Macro_Daemon_Name = avy
# Safidio ny iray: avelao ny SMTPS ho an'ny mpanjifa Loopback ihany, na ho an'ny mpanjifa rehetra.
# 127.0.0.1:3Smtps Inet N - Y - - SMTPD
# SMTPS INET N - Y - - SMTPD
# -o syslog_name = postfix / smtps
# -o smtpd_tls_wrappermode = eny
# -o smtpd_sasl_auth_enable = eny
# -o smtpd_reject_unliclisted_recipient = tsia
# -o smtpd_client_restriction = $ mua_client_restriction
# -o smtpd_helo_restriction = $ mua_helo_restriction
# -o smtpd_sender_restrictions = $ mua_sender_restrictions
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_reliction = permit_sl_authenticated, nolavina
# -O Milter_Macro_Daemon_Name = avy
# 628 INET N - Y - - QMQPD
# QMGR Unix N - N 300 1 Oqmgr
# -o smtp_helo_timeout = 5 -o smtp_connect_tal = 5
#
# ==
# Fifandraisana amin'ny rindrambaiko tsy postfix. Aza adino ny mandinika ny boky
# Pejy ao amin'ny rindrambaiko tsy postfix mba hahitana izay safidy tiany.
#
# Maro amin'ireto serivisy manaraka ireto no mampiasa ny postfix postfix (8)
# Agent. Jereo ny pejin'ny PIPE (8) ho an'ny fampahalalana momba ny $ {mpandray)
# ary safidy hafa misy hafatra hafa.
# ==
#
# Mildrop. Jereo ny rakitra postfix maildrop_readme ho an'ny antsipirihany.
# Lazao ihany koa amin'ny Main.cf: Maildrop_Destination_Recipient_limit = 1
#
#
# ==
#
# Ny dikan-tsarimihetsika kyrus vao haingana dia afaka mampiasa ny fidirana Master "LMTP" misy.
#
# Farito ao amin'ny Cyrus.conf:
# lmtp cmd = "lmtpd -a" Listen = "locarena: lmtp" Proto = TCP4
#
# Lazao amin'ny Main.cf iray na maromaro amin'ireto manaraka ireto:
# mailbox_transport = lmtp: inet: localhost
# virtual_transport = lmtp: inet: localhost
#
# ==
#
# Cyrus 2.1.5 (Amos gouaux)
# Lazao ihany koa amin'ny Main.cf: Cyrus_Destination_Recipient_limit = 1
#
# Cyrus Unix - N N - - Pipe
# flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ==
# Ohatra taloha amin'ny fandefasana amin'ny alàlan'ny Kyrosy.
#
# Old-Cyrus Unix - N N - - Pipe
# Saoma = R Mpikambana = Cyrus Argv = / Cyrus / Bin / Fandefasana -E -M $ {Extension} $ {User}
#
# ==
#
# Jereo ny rakitra postfix uucp_readme ho an'ny antsipirian'ny fanamafisana.
#
#
# Fomba fandefasana ivelany hafa.
#
Sy ny fanamafisana OpenDkim. Opendkim dia mamaritra ny mpizara mailaka miaraka amin'ny fanalahidin'ny domain mba hahatonga azy ireo ho azo antoka kokoa. Raha tsy misy izany dia tsy misy nosoniavina ny mail ary mety tsy hanao inbox.
nano config/etc_default_opendkim
Ampio ireo andalana ireo:
# Fanamarihana: Ity dia rakitra fanamafisana lova. Tsy ampiasain'ny OpenDkim izy io
# Serivisy rafitra. Ampiasao azafady ny tarehimarika fanitsiana mifanaraka amin'ny
# /etc/opernkim.conf.
#
# Taloha, ny iray dia hanova ny filaharana mahazatra eto, ary avy eo manatanteraka
# /Lib/Opendkim/Opendkim.service.Generate hiteraka rakitra mihintsana amin'ny
# /etc/systemd/system/opendkim.service.d/override.conf sy
# /etc/tmpfiles.d/oupendkim.conf. Na dia mbola azo atao aza izany dia izao
# Arosoy hanitsy ny toe-javatra mivantana ao amin'ny /etc/opedkim.conf.
#
# Daemon_afo = ""
# Fanovana to / var / spool / postfix / run / opendkim hampiasa socket unix miaraka
# postfix ao anaty kôlô:
# Rundir = / var / spool / postfix / run / opendkim
#
# Tsy misy napetaka ny hamafisina socket mifandimby
# Marihina fa ny fametrahana izany dia hanongotra ny sandan'ny sokitra amin'ny OpenDkim.conf
# Default:
# Henoy ny fifandraisana rehetra amin'ny seranan-tsambo 54321:
# Socket = inet: 54321
# Henoy amin'ny Loopback ao amin'ny Port 12345:
# Socket = inet: 12345 @ localhost
# Henoy ny 192.0.2.1 Amin'ny seranan-tsambo 12345:
# Socket = inet: 12345@192.0.2.1
nano config/etc_dovecot_conf.d_10-master.conf
Ampio ireo andalana ireo:
# Default_process_limit = 100
# Default_client_limit = 1000
# Fepetra (habe fahatsiarovana virtoaly) Fetran'ny asa fanompoana. Ity indrindra indrindra
# natao hisambotra sy hamono ny fizotrany izay tadidin'ny tadidy alohan'ny hihinanana azy
# ny zavatra rehetra.
# Default_vsz_limit = 256m
# Mpampiasa Login dia ampiasaina anatiny amin'ny alàlan'ny fizotran'ny fidirana. Ity no tena tsy natoky indrindra
# Mpampiasa amin'ny rafitra Dovecot. Tsy tokony hanana fidirana na inona na inona mihitsy izany.
# Default_login_user = Dovenull
# Ny mpampiasa anatiny dia ampiasain'ny dingana tsy matotra. Tokony hisaraka amin'ny
# Mpampiasa mpampiasa, ka tsy afaka hanelingelina ireo dingana hafa ny fizotran'ny fidirana.
# Default_internal_user = Dovecot
# Port = 143
# Port = 993
# SSL = Eny
# Isan'ny fifandraisana hiatrehana alohan'ny hanombohana dingana vaovao. matetika
# Ny soatoavina tokana dia 0 (tsy misy fetra) na 1. 1 dia azo antoka kokoa, fa 0
# dia haingana kokoa. <doc / wiki / loginprocess.txt>
# service_count = 1
# Isan'ny fizotran-javatra mba hiandrasana fifandraisana foana.
# Process_min_avail = 0
# Raha mametraka serivisy_count = 0 ianao dia mety mila mitombo izany.
# vsz_limit = $ default_vsz_limit
# Port = 110
# Port = 995
# SSL = Eny
# Port = 587
# Mamorona mpihaino Inet afa-tsy raha tsy afaka mampiasa ny sokitra UNIX etsy ambony ianao
# inet_listener lmtp {
# Fadio ny fanaovana lmtp hita ho an'ny Internet iray manontolo
# Adiresy =
# Port =
# }
# Ny ankamaroan'ny fitadidiana dia mandeha amin'ny MMAP () rakitra. Mety mila mampitombo izany ianao
# Voafetra raha manana boaty mailaka lehibe ianao.
# vsz_limit = $ default_vsz_limit
# Max. Isan'ny fizotran'ny imap (fifandraisana)
# Process_limit = 1024
# Max. Isan'ny fizotran'ny pop3 (fifandraisana)
# Process_limit = 1024
# Max. Isan'ny fizotran'ny SMTP (fifandraisana)
# Process_limit = 1024
# Auth_socket_path dia manondro ity sokitra mpampiasaDB ity amin'ny alàlan'ny default. Matetika izany
# nampiasain'i Dovecot-LDA, Doveadm, mety ho dingana imp, sns sns izay manana
# Ny fahazoan-dàlana feno amin'ity sokay ity dia afaka mahazo lisitr'ireo anarana rehetra sy
# Raiso ny valin'ny fijerin'ny mpampiasa rehetra.
#
# Ny fomba 0666 0666 default dia mamela ny olona hifandray amin'ny sokitra, fa ny
# Ny fijery mpampiasa mpampiasa dia hahomby ihany raha tsy miverina ny "UID" ny mpampiasa
# mifanandrify amin'ny UID Caller. Ary raha mifanandrify ny UID na Gid Caller
# Ny UID ny sokitra na ny Gid dia mahomby ny fijery. Zavatra hafa rehetra miteraka tsy fahombiazana.
#
# Hanome ny fahazoan-dàlana feno ny antso mba hikaroka ireo mpampiasa rehetra, apetraho ny fomba
# zavatra hafa ankoatry ny 0666 sy dovecot mamela ny kernel hampihatra ny
# Fahazoan-dàlana (e.g. 0777 mamela ny fahazoan-dàlana rehetra).
# Ny fizotran'ny mpiasa mpiasam-panjakana dia mihazakazaka toy ny fakany amin'ny alàlan'ny default, mba hahafahany miditra
# / sns / aloka. Raha tsy ilaina izany dia tokony hovana ny mpampiasa
# $_internal_user $.
# mpampiasa = faka
# Raha ampiasaina ny dict proxy, ny fizotran'ny mailaka dia tokony hiditra amin'ny faladiany.
# Ohatra: modely = 0660, Group = Vmail sy Global Mail_access_Groups = Vmail
# Mode = 0600
# Mpampiasa =
# Vondrona =
Avereno indray, alao antoka fa hanolo ny sehatra ao anatin'ireo rakitra rehetra ireo, FEMMEBABE.COM, miaraka amin'ny sehatra nofantenanao. Hanova ny rakitra manaraka, ny config's Dovecot,
nano config/etc_dovecot_dovecot
Ary ampio ireo andalana ireo
## Fizarana Dovecot Configuration
# Raha maika ianao, dia jereo ny http://wiki2.dovecot.org/quickconfigur
# Ny baiko Doveconf -N "dia manome vokatra madio amin'ny fanovana fanovana. Ampiasao izany
# Raha tokony handika sy handefasana rakitra rehefa mandefa ao amin'ny lisitry ny mailaka Dovecot.
# '# 'toetra sy ny zavatra rehetra aorian'ny fanehoan-kevitra ho fanehoan-kevitra. Sehatra fanampiny
# ary ny tabila dia tsy raharahaina. Raha te hampiasa mazava tsara ireo ianao dia apetraho ny
# value inside quotes, eg.: key = "# Char sy Whitespace
# Ny ankamaroany (fa tsy ny rehetra) dia mety ho feno horak'ireo protocols sy / na
# Loharano / toerana ips amin'ny alàlan'ny fametrahana ny toe-javatra ao anaty fizarana, ohatra:
# Protocol imap {}, local 127.0.0.1 {}, lavitra 10.0.0.0/8 {}
# Ny soatoavina default dia aseho amin'ny toerana tsirairay, tsy takiana amin'ny tsy fahatomombanana
# ireo. Izy ireo dia miavaka amin'io na dia: tsy misy fizarana (e.g. Namespace {))
# Na ny Plugin Settings dia ampiana amin'ny alàlan'ny default, afa-tsy ohatra ihany izy ireo.
# Ny lalana ihany koa dia ohatra miaraka amin'ireo tena tsy mety ny tena tsy mifanaraka amin'ny fanitsiana
# Safidy. Ireo lalana voatanisa eto dia ho an'ny configure --prefix = / usr
# --sysconfdir = / etc --localstatedir = / var
# Ampiasao ny protocols napetraka
# Lisitry ny IPS na HASST misaraka ny koma-komma izay tokony hihainoana ho fifandraisana.
# "*" Mihaino ny fifandraisan'ny IPv4 rehetra, "::" mihaino ny fifandraisana IPv6 rehetra.
# Raha te-hamantatra ny seranan-tsambo tsy misy na inona na inona sarotra kokoa ianao,
# Edit conf.d / master.conf.
# Henoy = *, ::
# Directory Base izay hitehirizana angon-drakitra runtime.
# base_dir = / var / run / dovecot /
# Anaran'ity tranga ity. Amin'ny setup doveadm sy baiko hafa
# afaka mampiasa -i <i_nal_name> hisafidy izay ohatra izay ampiasaina (safidy hafa
# to -c <config_path>). Ny anarana dia ampiana koa ny fizotran'ny dovecot
# ao amin'ny PS Output.
# ohatra_name = dovecot
# Hafatra miarahaba ho an'ny mpanjifa.
# LOGIN_GREETING = Dovecot vonona.
# Sehatra misaraka ny lisitry ny tambajotra azo itokisana. Fifandraisana avy amin'ireto
# IPS dia navela handresy ny adiresy IP sy seranan-tsambo (ho an'ny fidirana sy
# ho an'ny fanamarinana fanamarinana). Tsy azo atao ihany koa ny tsy misy dilable_plaintext_auth
# Ireo tamba-jotra ireo. Matetika ianao no hamaritra ireo mpizara mpisolovava anao eto.
# login_trusted_networks =
# Sehatra misaraka ny lisitry ny fidirana fidirana fidirana fidirana fidirana (e.g. tcpwrap)
# Login_access_sockets =
# Miaraka amin'ny proxy_maybe = Eny raha mifanentana amin'ireto ips ireto ny toerana proxy, aza atao
# proxying. Tsy ilaina izany, fa mety ilaina raha toa ka toerana
# IP dia e.g. IP palance palance.
# auth_proxy_elf =
# Asehoy bebe kokoa ny anaram-boninahitra verbose verbose (ao amin'ny PS). Maneho ny anaran'ireo mpampiasa sy
# Adiresy IP. Mahasoa raha mahita hoe iza no tena mampiasa ny dingana IMAP
# (ohatra. Nizara ny mailaka na raha toa ka ny UID mitovy dia ampiasaina amin'ny kaonty marobe).
# verbose_proctitle = tsia
# Tokony hovonoina daholo ny dingana rehetra rehefa mihemotra ny dovecot Master.
# Ny fametrahana izany amin'ny "tsia" dia midika fa ny dovecot dia azo havaozina tsy misy
# fanerena ny fifandraisana misy mpanjifa efa akaiky (na dia mety ho izy koa
# Olana raha toa ka e.g. noho ny fiampangana fiarovana).
# fanakatonana_clien = eny
# Raha tsy misy zero, dia mandidy mailaka amin'ny alàlan'ny fifandraisana maro amin'ny mpizara doveadm,
# Raha tokony hampandeha azy ireo mivantana amin'ny dingana mitovy.
# Doveadm_Worker_Count = 0
# Unix socket na mpampiantrano: Port ampiasaina amin'ny fifandraisana amin'ny mpizara doveadm
# Doveadm_socket_path = Doveadm-Server
# Sehatra misaraka ny lisitry ny variabes momba ny tontolo iainana izay notehirizina tao amin'ny Dovecot
# Atombohy ary midina amin'ny fizotran'ny zanany rehetra. Azonao atao koa ny manome
# fanalahidy = tsiroaroa hanisy toe-javatra manokana.
# import_enironment = tz
##
## Rakibolana Server Server
##
# Ny rakibolana dia azo ampiasaina amin'ny fivarotana lakile = lisitry ny lanja. Izany dia ampiasain'ny maro
# plugins. Ny rakibolana dia azo idirana na iray na na dia a
# Server ny rakibolana. Ity fizarana Dict Block Maps Dictionary anarana amin'ny URIS
# rehefa ampiasaina ny mpizara. Ireo dia azo resahina amin'ny alàlan'ny endrika URIS
# "Proxy :: <NAME>".
# Quota = MySQL: /etc/dovecot/dovecot-dict-dict-ql.conf.ext
# Ny ankamaroan'ny konfigurasi tena dia voarakitra eto ambany. Ny filenames dia
# Voarindra voalohany tamin'ny lanjan'ny ascii sy ny fanoratana azy ao anatin'izany filaharana izany. Ny 00-Prefixes
# Any amin'ny filenames dia natao hanamora ny fahazoana ny filaharana.
# Ny rakitra config dia afaka nanandrana nampidirina ihany koa raha tsy misy hadisoana raha
# Tsy hita:
# Mamela ny dovecot hihaino ny fifandraisana rehetra fampidirana (ipv4 / ipv6)
Manampia tenimiafina ho an'ny mpampiasa Dovecot:
nano config/etc_dovecot_passwd
Ny ampahany voalohany amin'ny rakitra, alohan'ny colon, no anarana. Ny ampahany farany, ny "Yourpassword", dia manondro ny tenimiafina tianao homena ny mpizara mailakao.
team:{plain}yourpassword
Manaraka, config ny OpenDkim
nano config/etc_opendkim.conf
Ary ampio ireo andalana ireo:
# Ity dia fanitsiana fototra amin'ny sonia sy manamarina. Mora izany
# zatra mifanentana amin'ny fametrahana fototra. Jereo ONANDKIM.CONF (5) ary
# /usr/share/Doc/Opendkim/examples/opedkim.conf.Sample ho feno
# tahirin-kevitra momba ny tarehimarika fanitsiana azo.
# LogWhy No
# Fehezan-tsoratra sy fanamarinana mahazatra. Amin'ny debian, ny "avy amin'ny" header
# tafahoatra, satria matetika ny lakilen'ny maha-izy azy dia ampiasain'ny rafitra regutation
# Ary noho izany dia somary mora tohina ny filaminana.
# Signing Domain, Selector ary Key (takiana). Ohatra, manaova sonia
# Ho an'ny domain "Ohatra.com" miaraka amin'ny Selector "2020" (2020._Domintey.example.com),
# Mampiasa ny fanalahidy tsy miankina voatahiry ao amin'ny /etc/dkimkeys/example.private. Bebe kokoa granular
# Ny safidy fanamboarana dia azo jerena ao amin'ny /usr/share/Doc/Opendkim/doc/Ependkim/adme.Oppendkim.
# Domain.cles.com
# Selector 2020
# Keyfile /etc/dkimkeys/example.private
# Amin'ny debian, opendkim dia mihazakazaka ho mpampiasa "opendkim". Ny umask amin'ny 007 dia takiana rehefa
# Mampiasa sokitra eo an-toerana miaraka amin'ny MTAS izay miditra amin'ny sokitra ho tsy tombontsoa tsy tombontsoa
# mpampiasa (ohatra, postfix). Mety mila manampy mpampiasa "postfix" ianao amin'ny vondrona
# "Opendkim" amin'izany tranga izany.
# Socket ho an'ny fifandraisana MTA (takiana). Raha ny MTA dia ao anatin'ny fonjan'ny chroot,
# Tsy maintsy azo antoka fa azo idirana ny sokitra. Amin'ny debian, postfix dia mihazakazaka
# chroot in / var / spool / postfix, noho izany dia tsy maintsy misy ny sokitra unix
# namboarina araka ny aseho amin'ny tsipika farany eto ambany.
# Sokafy eo an-toerana: /run/opernkim/opedkim.sock
# Sokitra Inet: 8891 @ localhost
# Sokitra Inet: 8891
# Ireo mpampiantrano izay tokony hatao sonia fa tsy hanamarina, default dia 127.0.0.1. Jereo ny
# Faritra fandidiana amin'ny OpenDkim (8) raha mila fanazavana fanampiny.
# Infirecthost 192.168.0.0m 1,0.0.0/8, 172.16.0.0m
# Ny antokom-pitokisana dia mamela ny DNSSEC. Amin'ny debian, omena ny rakitra anchor fitokisana
# avy amin'ny fonosana DNS-root-data.
# Nameservers 127.0.0.1
# Sarintany ao amin'ny adiresy mankany amin'ny lakile ampiasaina amin'ny sonia hafatra
# Andian-tsarimihetsika anatiny izay tokony hosoniavina ny mailaka
nano config/etc_default_opendkim
Ary ampio ireo andalana ireo
# Fanamarihana: Ity dia rakitra fanamafisana lova. Tsy ampiasain'ny OpenDkim izy io
# Serivisy rafitra. Ampiasao azafady ny tarehimarika fanitsiana mifanaraka amin'ny
# /etc/opernkim.conf.
#
# Taloha, ny iray dia hanova ny filaharana mahazatra eto, ary avy eo manatanteraka
# /Lib/Opendkim/Opendkim.service.Generate hiteraka rakitra mihintsana amin'ny
# /etc/systemd/system/opendkim.service.d/override.conf sy
# /etc/tmpfiles.d/oupendkim.conf. Na dia mbola azo atao aza izany dia izao
# Arosoy hanitsy ny toe-javatra mivantana ao amin'ny /etc/opedkim.conf.
#
# Daemon_afo = ""
# Fanovana to / var / spool / postfix / run / opendkim hampiasa socket unix miaraka
# postfix ao anaty kôlô:
# Rundir = / var / spool / postfix / run / opendkim
#
# Tsy misy napetaka ny hamafisina socket mifandimby
# Marihina fa ny fametrahana izany dia hanongotra ny sandan'ny sokitra amin'ny OpenDkim.conf
# Default:
# Henoy ny fifandraisana rehetra amin'ny seranan-tsambo 54321:
# Socket = inet: 54321
# Henoy amin'ny Loopback ao amin'ny Port 12345:
# Socket = inet: 12345 @ localhost
# Henoy ny 192.0.2.1 Amin'ny seranan-tsambo 12345:
# Socket = inet: 12345@192.0.2.1
Rehefa vonona ny hametraka ny mpizara postfix izahay, dia hampandeha ny kaody eto ambany izahay, miaraka amin'ny anarana mitovy amin'ny sehatra mety. Atombohy amin'ny famoronana script
touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup
Ankehitriny, ao Nano, tonian-dahatsoratra, hanova ity rakitra ity ka tafiditra ao ny anaranao fa tsy Femmebabe.com.
# ! / bin / bash
# Manamboatra postfix
Ankehitriny, ampandehanana ny script vita mba hanamboarana ny postfix, Opendkim ary dovecot.
./scripts/postfixsetup
Raha vao nihazakazaka ity script ity dia kopika ny tsipika farany ananany ary apetaho ao anaty konfigurasi DNS anao ho sandan'ny Sendonly._Dointey. Ity no fanalahidy OpenDkim ampiasaina hamantarana ny sehatra misy anao rehefa mandefa mailaka azo antoka.
Mahagaga! Tao anatin'ny andro vitsivitsy, dia tokony afaka mandefa mailaka avy amin'ny mpizara nomena ny zava-drehetra ianao dia namboarina tsara.
Raha noforonina fotsiny ny DNS ho an'ny mpizara mailaka anao, dia tokony ho latsaky ny 72 ora ho an'ny rakitsoratra hanavaozana izany. Matetika haingana kokoa izy io. Azonao atao ny manamarina raha toa ka miasa amin'ny alàlan'ny fampiasana io didy io ny mpizara anao, dia natolotra ny mailakao:
echo "test" | mail -s "Test Email" youremail@gmail.com
Raha toa ka miasa tsara ny zava-drehetra, dia tokony afaka mandefa mailaka amin'ny mpizara ianao. Raha tsy miasa izy dia andramo mijery ny vatan-kazo hahitana izay mety ho diso.
tail –lines 150 /var/log/mail.log
Ity dia hanolotra fampahalalana verbose momba ny mailaka izay alefan'ilay mpizara ary na miasa tsara izy io. Tokony ho afaka mahita ny mailaka ao amin'ny Inbox anao ihany koa ianao, raha tsy eo, jereo ny fampirimana Spam.
Ianao koa dia mila manitsy ny toe-javatra misy anao amin'ny sezanao.Py ka ny mpizara mailaka anao dia afaka miresaka amin'ny fampiharana DJango anao, ilay tetikasa. Ampio na soraty ireo andalana ireo ao amin'ny sezanao
EMAIL_HOST_USER = 'team' # 'Love@mamasheen.com'
Mariho fa mampiasa rakitra config izahay mba hahazoana ny tenimiafina. Aleo ampidiro ao amin'ny toe-javatra toy ny, amin'ny fiandohan'ny rakitra.:
# Misokatra sy vesatra config
Andao hamorona ity rakitra ity ary ampio ny lakile miafina ho azy, ary koa ny tenimiafina mailaka. Mba hamoronana fanalahidy miafina, ampiasao io didy io, na inona na inona halavanao amin'ny farany:
openssl rand -base64 64
Ankehitriny, adikao ny lahatsoratra izay novokarin'ny OpenSSL sy hanova /etc/config.js
sudo nano /etc/config.json
Ampio ireto tsipika manaraka ireto ao amin'ny rakitrao, miaraka amin'ny lakile izay novokarin'ny OpenSSL ho lakile miafina.
{
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"EMAIL_HOST_PASSWORD": "yourpassword"
}
JSON Format dia tsotra sy mora ampiasaina, afaka manambara fanalahidy hafa izay tiantsika hampiasaina amin'ny tetik'asa toy izao ihany koa isika, ary ataovy tsy hisaraka amin'ny lahateninay amin'ny tetikasantsika ary tsy afaka mamaky azy ireo irery ny mpampiasa hafa. Ity dia fomba fiasa ho an'ny fanalahidin'ny API, izay hampiasainay mihoatra ny vitsy eto.
Te-hamerina ny tetik'asao ihany koa ianao mba hahazoana antoka fa voavonjy ny zava-drehetra ary azonao atao ny mamerina ny asanao any aoriana any na dia tsy maniry ny hanofa mpizara intsony ianao.
sudo backup
Ankehitriny, andramo ny handefasana mailaka html amin'ny mpizara tranonkala, raha ny fandefasana ny iray avy amin'ny tsipika dia miasa. Alefaso ny mpampiasa anao ao amin'ny akorandriaka, ary mandefa mailaka HTML amin'ilay mpampiasa amin'ny alàlan'i DJango. Manova ny anarako ao amin'ny code, Charlotte, amin'ny anaranao.
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()
Raha tsy mandeha ny baiko voalohany dia ataovy azo antoka
source venv/bin/activate
Raha toa ka napetraka tsara ny zava-drehetra, dia hahazo mailaka fandraisana anao ianao izao ao amin'ny boaty mailaka nalefan'ny Internet anao. Niasa tsara! Tonga lavitra ianao.
Te hanampy aho, raha toa ka miady mafy amin'ny hadisoana rehetra ianao mandritra ny fiasa amin'ny tetikasa toa izao, aza misalasala mitady valiny ary mangataka fanampiana. Google, anisan'ireo milina fikarohana hafa, dia loharano lehibe hikarohana fanampiana amin'ny fandaharana. Mikaroha fotsiny ny fahadisoana azonao, ary ho afaka hahita ny fomba namahan'ny olona ny olana ianao. Tsapanao koa ny mifandray amiko, ny mpampianatra anao (mpampianatra, mpampianatra, mpampianatra), izay misy ny Internet amin'ny Internet izay misy fanampiana amin'ny fandaharana, na ny loharanon-karena indray na ny loharano hafa mba hahitana vahaolana amin'ny olana izay iainanao. Azoko fa tsy mora izany, fa na dia efa namaky hatreto ianao ary tsy nanoratra kaody na inona na inona code, dia mianatra betsaka momba ny fananganana rindran-tranonkala ianao. Ataovy paty ny tenanao ao aoriana, manao asa lehibe ianao.
Misaotra anao tamin'ny fanakanana ny fotoana hamakiana ity torolàlana momba ny fampivoarana tranonkala fahatelo ity. Amin'ny fanontana amin'ny ho avy, dia hampiditra ny ohatra manan-danja noresahina aho amin'ny fanombohan'ny antontan-taratasy ary handroaka lalina kokoa isika ao anatin'ny tontolon'ny rindrambaiko sy ny fampandrosoana ny hardware. Miorena tsara amin'ny zavatra ho avy, ary tsy andriko ny hampianatra anao ny fomba hananganana rindrambaiko mahavariana. Hahita anao amin'ny andiany manaraka!
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
.oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
.oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan 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.
oleh Daisy / Lihat | Beli | Beli dengan cryptocurrency
https://glamgirlx.com
https://glamgirlx.com -
Tinggalkan saya tip dalam bitcoin menggunakan alamat ini: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE