Inoshanda Webhu yakadzama kudzidza uye kuchengetedzeka nemuenzaniso Yetatu Edition Charlotte Harper Chikunguru 3, 2024 Yakawedzerwa / Yakatenderwa June 3, 2025
Sumo:
Kuongorora kwekuchengetedza mukuvaka kwewebhu chikamu chakakosha chehurongwa hwewebhu chero upi zvake wewebhu. Dom Avhareji Joe, mushandisi wekupedzisira anotarisa kuuraya nguva kana kuti chimwe chinhu chakaitwa paInternet, kazhinji pane yekubata smartphone smartphone. Vanhu vazhinji vaisatomboziva kuti pavaida kuvaka webhusaiti yemumwe munhu kuti vabatsire midziyo yekudzvanya. kuchinjika. Kana iwe uine maminetsi mashoma kuverenga kuburikidza nebhuku iri uye udzidze zvandaida kukudzidzisa, kana kuti unyorwe nguva yako kuti udzidze
Nezvangu: Ini ndiri software yekuvandudza ine huwandu hwakawanda hwechiitiko muC / c + ++, Java, python, html, css naJavascript. Ini ndinovaka mawebhusaiti vanhu vanoda kushandisa, vanoda kushanyira, uye kunyange kupindwa muropa nekushandisa kungodzidza, kudzokorora uye kuuraya nguva, uye kunyanya, ini ndinotengesa software. Dai iwe uine zano rekuti iwe waida kuti iwe ugove webhusaiti inotaridzika sei kuti iite webhusaiti yako, ini ndingadai ndakakuvakira Panzvimbo pekuyedza kukutengesa iwe nguva yangu, ini ndirikuda kutaura zvako kuti uvakire app (webhusaiti) iwe unofanirwa kuve wakazvimirira software, Uye rega ndive akajeka, dzidzo yandinokupa ichave isina kurongeka. Iwe unogona kuenda kuchikoro uye udzidze zvese izvi nedzidzo yakasarudzika, kana kuti kuverenga bhuku iri muchikoro, zadzisai migove yako kubva padzidzo yako, asi ini handikuregei muchigaro chinopisa ndikubvunze kuti upedze mabasa. Ini handisi purofesa wako, unogona kufunga nezvangu seshamwari inoda kukutungamira kune rimwe basa rinofambiswa neako pachako kubudirira. Uye ini handisi kukutengesa kubudirira kana, iwe uchafanirwa kuitenga nenguva yako. Kudzidza kuCode kune iyo yekudzidzira yekufunda curve uye yaisambove nyore, kana kuti inofanirwa kunge iri. Iwe unofanirwa kushanda nesimba sezvaunogona uye kuramba uchiedza uye kukundikana uye edza zvakare kunyangwe kana iwe uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchidzidza uye uzvivake zvisubhu. Ndiwo mune chimiro chekodhi pachayo. Code inotungamirwa nemutengesi akagadzirirwa kupa chirongwa chekukanganisa, uye izvi zvinokudzidzisa iwe maitiro, kunyangwe iwe uchingori kutevedzera kukanganisa kwenjini yako yekutsvaga uye kuverenga mimwe mienzaniso yevamwe vanhu. Uye ndinofanira kuti, iwe haufanire kuve wakapfuma kwazvo, wakangwara, wakabudirira, kana kunyange zvakadzama kutungamirwa kana kurongwa kuti uvake app. Komputa inotarisira iro sangano rako iwe. Iwe unongoda kutsungirira kuburikidza nemuyedzo uye kukanganisa, chengetedza pfungwa uye kushanda nesimba pane zvaunoita, uye iwe uchave uine basa rakabudirira kwazvo mune zvese zvaunoita.
Ndiri ani. Ini ndinoona kuti chikamu chekupedzisira chaive chekudzidza uye chako kutora nzira kubva kubhuku rino. Ndiri ani chaizvo? Ndiwo mubvunzo wakaomarara. Ini handina kujeka pazviri, pandinenge ndichitambura nemamiriro ekurapa izvo zvinogona kuti zvindiomesere kana kunyora bhuku iri dzimwe nguva, ndichiratidzira matambudziko nekushamwaridzana nezvinhu zvinoita kuti hupenyu hwangu huwedzere kuoma kana zvasvika pakuzvizivisa. Muchidimbu, kana iwe uri kuverenga bhuku iri, wakauya nazvo kumba nekuti iwe wakaburitsa mukati maro uye waifunga kuti zvaive zvinobatsira, kana ukangoverengera izvi zviri kure, iwe ndiri munhu wakaita sewe munhu anoda kukuona iwe uchibudirira mune zvese zvaunoita. Ini ndiri mainjiniya pachangu, anovandudza software, uye mudzidzi, uye ini ndiri kunyora bhuku iri kune kuti hupenyu hwavari nyore nekuita kuti hupenyu hwavo hwekushanda pamwe chete seanogona kuita kunge Zvakakura, izvi ndizvo zvandinoita: Ini ndinovaka maapps kuti azvibatsire ini nevamwe vanhu kubudirira. Ini ndiri munyori zvakare, kunyangwe iri iri bhuku rangu rekutanga randinoda kupedzisa kuitira kuti ndiise gwaro rangu pamwe chete mugwaro rinobatsira, uye ini ndiri muimbi zvakare. Ini ndichabvuma izvi kwauri, ndiri mhando yemunhu anoshamisa. Ini handina kukwana, ndakange ndamhanya nemutemo kunyange ndichinditungamira kuti ndisiye maheji nemayunivhesiti uye kusiya nyika kuti ndiedze kuzviitira zita rakawanda. Ini ndiri mukadzi nekuzvarwa, ini ndinopfeka madhiri, nditore mifananidzo yangu, pfeka zvipfeko uye dzimwe nguo dzevakadzi, uye ini ndinozviziva semukadzi nechisikigo. Ndakave nenyaya nevamwe vanhu munguva yakapfuura inotungamira kunetsekana nekunyora nekuvaka webapps, uye ndinokumbira ruregerero kuti ini handigone kuwana bhuku iri mumaoko Iwe uchazoda kuverenga uye kunyora kodhi Ndakanga ndine mimwe marudzi enyaya ndichikura, hutano, vanachiremba, vezvenhau, uye kodhi yangu yakadzika inoratidza kurwira kweiyo feminism uye nyika yechikadzi munyika yakakamurwa uye yakashungurudzika. Nekudaro, iri bhuku chimwe chinhu chandinoita hanya zvakanyanya, mwana wangu, yangu portfolio, uye yangu yekurarama, saka ndinotenda nekufunga kwako kana iwe ukatora mameseji kumba uye nekunyatso pora pamusoro pazvo kuti udzidze kubva kwandiri. Ndapota ramba uchifunga kuti handina kukwana, bhuku iri richava nezvikanganiso, kudzokorora, uye iwe uchazoda kufunga nezveuropi hwako hwepfungwa sezvaunogona kuitira kuti uve neruzivo rwakabudirira nekunyora kwangu. Zvakare, nzwisisa kuti ndinoreva zvakanaka iwe kunyange iwe paunosangana nematambudziko kana uchinyora. Funga nezvazvo seizvi: Kana iwe uchingogona kubhadhara system yekombuta kuti uite chero chinhu chaungangofungidzira munzvimbo yedhijitari, chengetedza uye funga nezvazvo, iwe unenge uchisangana nematambudziko neruzivo rwauri kuita uye kunyange kubuditsa. Ini ndinokuudza izvi nekuti ini ndinosangana nematambudziko akafanana. Shandisa bhuku iri panjodzi yako pachako, dzinoshanda nenharaunda yako dziwane kuvaka software. Ndokuita kuti ubudirire, uye nei ndichigona kukudzora. ichashanda, iyo Internet. Iwe unogona kunge usinga zive zvakanyanya nezvandiri neshoko shoma, asi ndinokukurudzira kuverenga, iwe uchandiziva paunenge uchiramba uchiverenga uye uchindinzwisisa iwe uchivaka yako mapurojekiti kuti uzadze basa rako. Hapazovi nebhuku remumba nebhuku rino, chero bedzi mapurofesa ako kana vadzidzisi vasingakupe chero, asi ini ndinokurudzira zvikuru kuvaka portfolio yemapurisa iwe pachako paunenge uchisimbisa kuti iwe ungashandisa sei zvawadzidza. Purojekiti yangu yepamhepo ndiyo hwaro hwezvakawanda zvauchaverenga mubhuku iri, kodhi yandaigona kuita kuti ndinyorese projekiti.
Iri bhuku iri nderei: Iri bhuku mudzidziso nemuenzaniso. Iwe unogona kuwana kodhi pano, mirairo yekudzidza kuCode, ruzivo rwekukanganisa, kuendesa mawero ako, nei izvi zvichikosha, uye kuti unonyanya kukosha, Vakai mune iyo Mhedziso yakanakisa mwenje kuti ive inonyanya kutaridzika sezvinobvira kune vashandisi vako vekupedzisira, vashanyi vewebhusaiti. Mubhuku rino, ini ndicharatidza huwandu hwemienzaniso ye software dhizaini ine kutarisisa pawebhu sewebhu pamwe chete nekuchengetedzeka. Tichatanga ruzivo rwekudzidza nekuvaka chirongwa chakakosha tichishandisa iyo Unix ganda, ne backup uye zvinyorwa zvinyoro-nyoro. Zvadaro, isu tichaongorora Bhuku Blog Blog, Simudzira yedu blog nePikicha uye vhidhiyo Zvinyorwa pamwe nekushandisa maitiro ekuchengetedza uchishandisa software yemahara, uye chengetedza server yedu uchishandisa iyo plugthile yechokwadi module (PAM). Isu tinobva taongorora faira rekubata uye kugadzirisa, kuongorora vhidhiyo kurongedza, kupa kwezwi, barcode kuongorora uye kune chimwe chinhu chinozivikanwa, pakati pezvimwe pfungwa. Nenzira iyo isu tichaongorora apisi iyo ichatibatsira kuita kuti software yedu ive inobatsira uye yakachengeteka, ine sarudzo dzakasununguka uye dzakabhadharwa uye dzakabhadharwa. Tiri munzira, isu tichazotarisa kuchengetedzeka kwemuviri uye maruniti emabhuruku uye zvigadzirwa zvekugadzira nemabhasiketi uye nedzimwe drone. Tichatora nguva munzira yekuvaka mitambo, 2d uye thocing injini, uye tishandise neyakagadziriswa mitezo yekudzidzira yemamiriro ekutanga Tiri munzira, isu tichazoshandisawo michina yekudzidza mari atowanikwa kuitira kuti ive nyore kuchengetedza software yedu. Isu tichazoitawo zvishandiso zvekutengesa zviripo kune webhu kuitira kuti uregedze uye kuchengetedza maitiro. Iri bhuku rinotungamira kubudirira kwako mukuvaka webhu application uye nekuibatanidza neyakajaira network yekombuta uye zvakazara manhamba ekuvaka software uye yakamiswa hardware isina ruzivo rwekutanga kana ruzivo rwekare.
Zvinotaurwa nebhuku iri: Kana iwe uchinyatsoda kuve newebhusaiti, iwe unogona kungoisa chitoro chiri nyore uye tengesa zvaunoda, tumira blog, post photos kana mavhidhiyo, kana neimwe nzira usingamborega mutsara wekodhi. Iri bhuku handizvo. Iri bhuku rinokudzidzisa kuvaka software iyo inobatsira, inoshanda zvakakwana, inogona kunge ichitora software Kana iwe ukatevera bhuku iri zvakanyanya, iwe uchazoda kunyora kodhi, kodhi yekutsvagisa, uvake mapurogiramu ako, uye uchaita mari kubva pane zvaunoita. Ndichaita mari kubva mubhuku rino, kunyange mumatanho ekutanga, nekuti ine ruzivo vanhu vanoda uye vanoda kuverenga, uye vatotenga kana vatenga kana kushandisa maapplication angu. Iri bhuku harizokuvakire app yako, asi richakunongedzera munzira kwayo uye neruoko iwe nemidziyo yaunoda kuti uite sewebhu, vatengesi, shamwari, mhuri, maInternet, uye vanhu veInternet vanoda kushandisa uye kutsigirwa.
Zvauchadzidza: Iri bhuku rinokudzidzisa kuvaka uye kutengesa software, kunyatsoita software, media yekuchengetedzeka, rekodhi vhidhiyo uye mapikicha, uye kuchinjanisa mameseji Iri bhuku rinokudzidzisa mashandisiro aunoita makomputa network, nzira yekuvaka dhiriji yekuisa midziyo yeCSES, Mavara mameseji ekusimbisa kana zvimwe zvinangwa, id scanning, mufananidzo uye vhidhiyo microtrensagenics kuchengetedza software yako yakachengeteka, yekubhadhara, cryptocurency yekutengesa, mabasa asynchronous, uye zvimwe. Iwe unozodzidza maitiro ekuvakira yako-bhurawuti midziyo, nemabhatiri, margger, microcontrollers, micoritrollers, motors uye sensors, waya uye 3d yakadhindwa nezvinhu zvekukanda. Ini ndicharatidza kuti ndege dzekugadzira dzinoshandiswa pakuwedzera kugadzirwa uye chishandiso uye kufa nekugadzira, saka iwe unokwanisa kugadzira zvigadzirwa zvako zvakabatanidzwa, maratidziro akabatanidzwa, marja, matunhu emagetsi, uye zvinobuda. uye network navo neBluetooth uye webhu. Zvikurukuru, isu tichaongorora zvinhu zviviri zviitiko, massager anodedera uye pfuti yemusungwa, ese ari maviri akawanikwa seyakagadzirwa servillace kana kuraira mutsara uye inogona kubatanidzwa mune yewebhu nekukurumidza mhinduro. Iwe unozodzidza kuvaka uye kuendesa webhusaiti kubva pasi kumusoro pasina ruzivo, ita kuti zvive zvinoshanda, zvakachengeteka, zvakanaka, zvinobatsira uye zvakanyatsoshanda. Iwe unozodzidza maitiro ekushandisa muchina wekudzidza uye kuona kwemakomputa kuti uite saiti yakachengeteka Iri bhuku richanyanyisa kutaridzika zvakanyanya pamusoro pezvenhau, kuchengetedzeka uye kuchine manyoro ekudzidza, izvo zvinhu zvikuru zvichakubatsira kuvaka software iri nekuita zvisina kunaka nenzira inoitika, zvinoshanda, zvinoitawo otomatiki, uye otomatiki. Iri bhuku rinodzidzisa unix, zvakananga Dhiian (ubuntu), bash renzi, html, javascript software mapakeji emapy Ndichakudzidzisawo nzira yekutengesa makristency otomatiki, uye tora kubhadhara makwenzi otomatiki, uye kubva kune yenguva dzose kubhengi makadhi kana uchibhadhara kuti vashanyi vako kana iwe ukasarudza kuzviita. Ini ndichakudzidzisa iwe maitiro ekubva kune yako webhusaiti kuburikidza nekushambadzira zvakare Ini ndichakudzidzisa nzira yekutengesa yako software, kukwezvera, kukwirira kune vatengi kutsvaga masevhisi ako, uye kuzviitira iwe pachako paInternet kuburikidza nemhando dziripo, dzisingadhuri, uye kushanda zvakanaka. Ini ndichakudzidzisa nzira yekuchengetedza data rako pamakomputa ako anoshanda iwe uye uchengetedze yako webhusaiti, uye mbozita Iri bhuku rinotarisa nezvezvinoenderana nekuparadzira nekuparadzira midhiya akawanda, kubva pane zvakaringana kuti ugadzire webhusaiti, uye unokuita iwe, yako software uye yako kambani uye yako kambani inotaridzika zvakanaka nenzira yakanakisa. Iwe uchadzidzawo mazano mashoma uye madhiri kubva kwandiri, kubva pamazano ekunyorera, kuongorora kwekunyora kwezvinhu zvakanakisa kuti ugowana software yako kuti usashande nesimba, basa, kana mari pane zvinodiwa. Iri bhuku rinonzi "rinoshandaWebhu yakadzama kudzidza uye kuchengetedzeka nemuenzaniso "nechikonzero: Chaizvoizvo yeChinyorwa cheWebhu, chivi, chiso uye chevhidhiyo mwero, kuwedzeredza kwemifananidzo, kuwedzeredza kwemifananidzo, kugadzirisirwa kwemifananidzo, Captioning, uye mamwe mabasa seyekufanotaura kubva mumifananidzo, senge chimiro chemufananidzo sewebhu, kana kuti chichava chengetedzo. Server kombiyuta iyi yakachengeteka, komputa iyo yaizowanzo bvunza iwe yezita rekushandisa uye software yekuzvidzivirira, seyakawedzera. Chero ani zvake anovaka software inosemesa ine imwe pfungwa yezvinoreva izvi. Software haina kuchengeteka nekuda kwemidziyo uye maakaundi atinoshandisa kuwana hazviripo nguva dzose, ivo vanogona kunge vari mumaoko emunhu anorwara nechinangwa che software uye saka inogona kuisa njodzi kune software yacho pachako. Ichi chimwe chinhu chekutanga kwebhuku iri. Komputa yeNetworked ndeye default yakachengetedzwa neiyo kiyi yekiyi chiratidzo, inodaidzwa uye yakachengetedzwa server yewebhu inopa iyo yekuvhurwa yekuwana pamwe neiyo Art Security maturusi anomhanyira pane server pachayo. Iyo Web server inokwanisa kuwana wewebhu yewebhu browser, iyo ine nharo chikamu chakasimba kwazvo chechishandiso chemushandisi, nekuti ndiyo nzvimbo iyo mushandisi anogona kuwana network software. Ichi chishandiso chinogona kupa zvinyorwa, uye mapepa ekuti anokwanisa kunyora mifananidzo, manyoro, zvimiti zvechisimba. saiti. Uchishandisa zvese zvishandiso zvaunoda, nebhuku iri iwe unozvishongedza neruzivo rwekuvaka webhusaiti yakachengeteka, uye zvakazara network yekombiyuta yekombiyuta inoshandira iwe, inodaidzira yako, uye inotaridzika uye inonzwa
Kupi kwekutanga: Unogamuchirwa kuti ubudise chikamu chendima iyi ini ndinotanga bhuku iri neiri, kana chero chikamu, kunyanya zvishandiso zvekutonga zvisati zvaitika kana iwe uchirondedzera zvakadzama mubhuku iri pamwe nekunyora zviitiko zvinoshandisa uye zvingangoita mienzaniso yacho uye mienzaniso inoshanda. Kana iwe usina ruzivo rwekunyora kodhi, ini ndinokurudzira zvakanyanya kuverenga zvese zvebhuku rino, uye kunyanya kukurudzira iwe kuverenga zvikamu zvapfuura, kuti uve nechokwadi kuti bhuku iri rakakukodzera iwe. Kana bhuku iri risina kukukodzera, funga nezvacho kushamwari kana hama kuti ndiani angave achifarira kudzidza nezveBudiriro, uye azvicherekedza achizadza mapundu kwandakakundikana iwe semudzidzisi, kana vamwe vadzidzisi vakanditangira. Kutanga kwaunoda, chikamu chebhuku iri chichava chinobatsira kana iwe uchifunga kuvaka iyo inoshanda app, uye funga kuti zvakanakisa zvigadzirwa zvakavakwa nemushandisi wekupedzisira mupfungwa: ziva mutengi wako. Zvino iwe unondiziva, iwe unoziva bhuku iri, uye wagadzirira kutanga. Kutanga, tora komputa (kunyange iyo yekukachengetera laptop kubva muchitoro chebhokisi, Amazon, kana desktop yekare, ndokumisikidza nenzira inoshandira iwe.
Maitiro Ekuverenga Iri Bhuku: Rugwaro rwakajekeswa, zvinoreva kuti zvinyorwa ndezvekudaira, kwauchanyora kodhi yaunomhanya. Prestour yekuraira ndeyekuti iri kuremerwa nekhibhodi inotarisisa uye inoda zvishoma kusadzvanya, kumhanyisa basa rako rekushandisa uye kuita kuti zvinhu zvive nyore pauri.
Kutanga: Ngatishandei mukati. Tichatanga nekuvaka kodhi pamutambo wemunharaunda uye tanga pasina kuvaka webhusaiti yakabatana neInternet. Izvi zvakachengeteka kutanga, hazvitore chinhu, uye chiri nyore kwauri. Zvichienderana neyako yekushandisa system, kupinda muganda rebhanda richava zvishoma zvakasiyana. ZveMac OS, ini ndinokurudzira kuisa muchina wevirimi panguva ino, sezvaunowana zvakanyanya kuwirirana nemuchina wevirimi. Varidzi vakasiyana-siyana seye virtualbox uye vahebhels vanogona kumhanyisa muchina wewe, kunyange zvinokwanisika kuisa ubuntu zvakananga pamushini, kana uchida kushandisa nzvimbo yemuchina inokurudzirwa kuti ugadzire chiitiko chekukurumidza, chakaratidzirwa. Kana iwe uri kushandisa Linux kana windows, wandinokurudzira, zvinofanirwa kunge zviri nyore kuti ugadzire chirongwa. Vhura yako terminal, gadzirisa iyo single paunenge uchiona yakakodzera, uye tanga kutevera nhanho 2. Kana iwe uri kushandisa windows, ndapota tevera nhanho 1.
Nhanho 1: - vashandisi veWindows chete MuWindows, kuvhura kuraira kukurudzira semutariri uye mhando wsl -install
Nhanho yechipiri: - Enderera pano, kana skip nhanho 1 kusvika pano kana usiri kushandisa windows Mune yakavhurika terminal, (zvinoenderana neS OS, inonzi Ubuntu muWindows, terminal muMac kana Linux, kana zita rakafanana), tanga nekugadzira chirongwa. Isu tinoita izvi nemirairo yeMkdir, inogadzira dhairekitori. Kana iwe uchifanira kugadzira dhairekitori kuti iite chirongwa chako, chinokurudzirwa, shandisa cd command kuti uchinje kune dhairekitori uye uye
CD / Path / Directory - Iyo nzira ndiyo mafolda (mafaera) ayo anotungamira yako yekuenda dhairekitori, yako nzira yekufungidzira ndeye ~ kana / imba / username (apo username izita rako rekushandisa). Kuchinja kune iyo default directory, mhando cd kana cd ~ Mkdir Muenzaniso - Tsiva "Muenzaniso" nezita reDhairekitori
Iye zvino une dhairekitori rekushanda rechirongwa chako. Kuva sekukosha kwakanyanya kuve neiyi dhairekitori yakachengetedzwa kana iwe uchifanira kuchinjira kune imwe mushini kana iyo kodhi yaunonyora kuti igadzirire iyo yewebhu, isu tichavaka script kudzosera yako dhairekitori mumatanho mashoma anotevera. Asi kuvaka script inotora zvishoma yekodhi, uye kodhi inoda kuve otomatiki kuti ive inobatsira sezvinobvira. Saka ngatidzoke script yekuvaka zvinyorwa kutanga. Ngatitange nekugadzira script nekuita kuti iite. Tichashandisa sudo, chmd uye to to to to to they ,,,,,,,,,
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Zvino tagadzira chinyorwa chinyorwa, chakaita kuti azivane, uye vagadzirira kurongedza. NOR ndiyo yemavara ejivha inokurega iwe kugadzirisa mavara pasina kudzvanya, izvo zviri nyore kupfuura kushandisa graphical mushandisi emushandisi. Kugadzirisa faira naNano, shandisa nano uyezve nzira yekufaira. Kuita script inoita script, zvakanaka zvakafanana nekuita script wedu pakutanga. Tichashandisa iyo kodhi imwecheteyo seyakafanana, ichitsiva zita regwaro racho, "vhezheni" neparamende yekupokana, $ 1. Izvi zvinotiita kuti tidanane nhepfenyuro nekunyepedzera shudo yezvikuru zvibvumirano, panguva iyo isu tinogona kugadzira chero chinyorwa chitsva nekutsiva "mapepanhau" nezita rechinyorwa chako. Iyo kodhi muNano inofanira kutaridzika se:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
Uye kuvhara nano, tinogona kubata pasi kiyi yekudzora uye tinya x, saka y kuratidza toreva kuti tiri kuchengetedza iyo faira, uye rova dzoka. Iye zvino pachinzvimbo chekunyora mirairo mitatu iyi kuti igadzirise script, isu tichakwanisa kunyora Suo Ascript Ocripment kugadzirisa iyo Script zvakare. Izvi zvinoshanda! Uye chero chinyorwa chitsva chinogona kuyerera zviri nyore nekuidaidza mugodhi. Ngatiponese basa redu ikozvino: Ngatinyorei backup script yekuchengetedza script yedu uye tidzorere mudhiri redu reprojekiti, tichidzikisira zvakare Scriptur.
sudo ascript backup
Zvino, muNNN NANO:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
Iko / nzira / ku / dhairekitori ndiyo nzira yekuita basa raunogadzira neMkdir. Gare gare patichadzidza nzira yekudzokorora nzira dzakadai neyechiitika uye runyorwa, ndezveshoma kodhi, asi zvazvichengetere zviri nyore uye uine mitsara mishoma. Kumhanya iyi script uye backp yako kodhi
backup
Kana iwe ukakurudzirwa zvachose kune password paunenge uchiverenga bhuku iri uye uchitevera mugedhi, ndapota isa yako mushandisi password nenzira kwayo, iwe unenge uine matatu anoedza usati waenda kumhanyisa chirevo. Iwe unogona kushandisa kumusoro uye pasi miseve kuti rerun mirairo uye uvape, unofanirwa here kumhanya chero chinhu kaviri. Kutsikirira kwakapusa kumusoro uye nekukasira kusarudza murairo, usati wagadzirisa iwo mvumo, miseve yekuruboshwe uye bvisa kiyi uye inoomhanyisa nekudzoka.
Makorokoto! Iwe wakakwanisa kugadzira backup inotyisa bacap script iyo inodzosera maviri akakosha ezvinyorwa mune yako yekushanda dhairekitori. Tinogona kufambisa zvinhu zvakatenderedza sezvo chirongwa ichi chichinge chakakura, asi izvi zvinoshanda ikozvino. Ngatiendese kuti titorere mugore, tinoshandisa gitubub yeiyi (kunyangwe paine mamwe mimwe mitero yekudzosera kumashure, vachikugonesa iwe kuti utore makopi ako ese software kumashure password kana kiyi. Iyo inobatsira kuchengetedza software yako, kunyanya sezvo isu tinotama kuchengetedza nguva yeLinux iyo dzimwe nguva yekodhi ikatadza, iwe ukawana mukana wekuti udzorere kana iwe ukawana mukana wekuzvidzosera otomatiki, izvo zvatichafukidza.
Kana iwe usiri kushandisa ubuntu virtual muchina panguva ino, ndinodzokorora ndichishandisa Ubuntu Virtual Machine panguva ino nekuti ichaita kuti hupenyu hwako huve hwakakosha kuitira kuti uverenge webhusaiti inoshanda uye fungidziro yekudzidza yakadzika pakombiyuta. Isu tichafambisa kodhi kune webhusaiti yeWebhu munguva pfupi iri kutevera, asi isu tinoda kuve nechokwadi chekuti pane zvigadziko zvishoma zvekuchengetedza kumashure kwewebhu yeWebhu, uye shandisa nhamba yemapaketi eLinux kuitira kuti uite izvi. Kana iwe uchiri kuda kushandisa mac OS, iwe unogamuchirwa kutsvaga uye kuisa iyo inodiwa mapakeji online, asi panogona kunge vasiri dzimwe nzira dzepakeji imwe neimwe bhuku kana kutevedzana kuchavhara.
Ngatiwedzerei mirairo mishoma yekuita basa redu ne backup script nekumhanya iyo Command Sudo ofcript Bacmentup
# ...
Zvekare, kudzora X kuponesa.
Zvino isu tinofanirwa kuita imwe nguva yekugadziriswa kwechirongwa ichi. Nekuti iyo ichakurumidza kuve chirongwa cheGit, hatidi kunyora zvese zvakarairwa nguva dzese dzatinoisa kubva kune git repository, asi isu tinoshivirira izvi kana tikanyorera zvinyorwa zvedu zvekutumira. Kutanga, ngatiitei chokwadi kuti tiri mune yakakodzera dhairekitori uye tanga iyo git repository uye gadzira mbichana.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Mushure mekunyora ssh-keygen, kiyi itsva inofanira kuchengetedzwa mumuzuta yemusha pasi pefolda inonzi .Sh. Inonzi id_Rsa.pub. Ngatitsvagei kiyi iyi uye kutevedzera. Kuti azvione,
cd ~
cat .ssh/id_rsa.pub
Kopa iwo mavara anodzoserwa nemubhadharo wekupedzisira, uye gadzira account neako Git Provider (Pfungwa GitHub), usati wawedzera iyo SHH Kiyi kuaccount yako. Paunenge uchinge uine account, tinya iyo yepamusoro kurudyi menyu uye usati wawedzera yako SHH Kiyi muSsh uye GPG makiyi pasi pekuwana menyu. Sarudza Wedzera kiyi yeSHH uye wedzera yako nekuisa yako mukati uye ichipa iyo zita, usati waponesa uye kudzokera ku github kuti ugadzire nyowani nyowani. Izvi zvakafanana nezvevamwe vanopa rubatsiro, iwe uchafanirwa kuverenga zvinyorwa zvavo. Mune iyo itsva repository inogadziriswa, ipa yako repository izita rinotsanangura uye sarudza kuti iwe unoda kuburitsa, uye uve nechokwadi chekugadzirisa mafaera ekusaishuwirira. Kamwe chete repository yakagadzirwa, kopa iyo jira nessh URL, uye nekuisa mumirairo inotevera.
git remote add git://… (your remote URL)
Iye zvino unogona kudzokera kumashure kune yako repository neCD, iwe unozoziva izvi. Edza yako Backup Script izvozvi ne backup
Hukuru! Iye zvino tinogona kunyatso kuwana mari. Ngatigadze django manje isu tine zvakanaka kubata pane bash uye git. Django anotendera kuti titore otomatiki software, bash inogona kuita izvi zvakare asi Django inofanirwa kuve neyakagadziriswa kuitwa (inogona kuremara uye yakaremara uye yakagadzirirwa nyore).
Kuisa software muUbuntu, isu tinoshandisa iyo Sudo Apt-Tora Command. Kutanga, ngativakese uye kusimudzira iyo software yataive nayo kare. Izvi zvinogona kuitwa neSudo APT-Tora Upment uye Sudo Apt-Tora UpGRADE -Y. Tevere, ngatisunge Python uye yedu chaiyo nharaunda, imba yekodhi yedu, nemirairo inotevera: Sudo APT-Tora Python-is-python3 python3-venv
Izvi ndizvo zvese zvaunoda kuti uende neDJango maererano nesoftware yekuisa muUbuntu muenzaniso. Kune Windows uye Linux izvi zvinofanirwa kunge zvine hunyanzvi zvakananga, asi iwe ungangoda kuisa muchina wechienda uchishandisa yemahara kana paralells desktop uye yekudzokorora matanho ari pamusoro apa kuti uise nzvimbo yeUbuntu. Ubuntu inokosheswa mune ino nyaya nekuti ndiyo software iyo mawebhusaiti kumhanya uye inovagonesa kuendesa mawebhusaiti neese enjodzi software.
Ngatitarisei kuDjang.
Mune yedu dhairekitori zvakare, ine CD:
python -m venv venv # Inogadzira iyo chaiyo nharaunda iyo kodhi inochengeterwa
source venv/bin/activate # Inoshanda iyo chaiyo nharaunda
django-admin startproject mysite . # Uko mysite ndiyo chirongwa chandiri kutanga mudhairekitori yazvino.
Django ari kungoita kuti titange, nekuti Django ari kugovera iyo webhusaiti server uye iri kuita zvese zvatinoda kuti tiwane mukana webhusaiti yemunharaunda kumusoro uye kumhanya. Zvino zvatinazvo Django akaiswa, ngatigadzirise zvigadziriso zvishoma kuti zviite kuti zvive basa ratinoda. Kutanga, ngatiitei idzva app
python manage.py startapp feed
Iwe uchaona yekutanga app inonzi chikafu. Iyo app inofanira kunzi chero chaunoda, uye isu tichagadzira maapp (ega) Kuti tiwedzere itsva app, isu tichagara tichigadzirisa zvirongwa.py mune imwe dhairekitori iyo app yakagadzirwa, inonzi In Startproject, Pano pita pindura app. Uchishandisa nano,
nano app/settings.py
Mune marongero, tsvaga yakaiswa_Apps uye inoparadzanisa [] [] mumitsara mitatu. Uchishandisa nzvimbo ina pane isina chinhu Center mutsara, wedzera 'feed', kana zita reapp yako. Ichi chikamu chezvimiro.py chinofanira kuita senge:
INSTALLED_APPS = [
'feed',
]
Tisati takanganwa, ngatiedzei iyo djang iri kushanda. Uchishandisa mutemo wekuraira
Zvino, ngatimbei kunyora imwe python kodhi. Django ane zvinhu zvitatu zvikuru, zvese zvacho zvinomhanya nekodhi zvachose. Izvo zvikamu zvinonzi model, tarisa uye template, uye yega yega iri padanho repamusoro uye rakaderera riripi usati wasvika peji rewebhu risati raunzwa kune mushandisi.
Iyo modeli ndiyo kodhi inochengetedza ruzivo mune database yekudzosera, kurongedza uye kushandurwa.
Maonero aya anosarudza kuti muenzaniso unoshandurwa sei, unonamira, uye wakashandurwa, zvinenge zvese maonero achashandisa muenzaniso zvakananga.
Iyo template ndiyo HTML kodhi ine mamwe mabhero ekuwedzera uye muridzo anonzi template mutauro. Iyo template inoshandurwa nemaonero aunozadzwa nePython code uye mamiriro akadai semhando uye ruzivo (truall tambo uye manhamba) kubva pamaonero.
Django ane zvimwe zvikamu zvakare, kusanganisira asi kwete kungogumira:
Zvirongwa, izvo zvinoratidza iyo app sezvatakakurukura.
URLs, iyo iyo mapatani ayo mushandisi anotevera kuwana mukana kune yakatarwa zvikamu zvewebhu application.
Mafomu, ayo anotsanangura kuti ruzivo rwunotumirwa kune server rwunorongwa uye rwunoratidzwa kune database pamwe nemushandisi. Iyi ndiyo nheyo yekugadzirisa ruzivo pane server server, uye inogona kugamuchira chero mhando yeruzivo izvo zvitoro zvemakomputa, zvakanyanya zvinyorwa zvemavara, manhamba, uye yechokwadi / enhema booleans (kazhinji)).
Matemplate, ayo ari HTML kodhi uye template mutauro uye bhiriji iri pakati pePyml kodhi inowanikwa neWebhu inowanikwa neWebhu
Static mafaera, ayo anowanzo kuve maJavaScript uye anobhururuka izvo iyo seva inoshanda uye yakabatana neye template.
Mafaira ezvipenga, ayo server anoshanda kana kuti anobatwa kunze, kana akangonyorwa kusevha asati agadziriswa uye akatumirwa kune imwe sevha (bhakiti) rekutambira.
Middleware, iyo zvidimbu zvekodhi zvinomhanya panguva imwe chete sekuonekwa kwese uye kwakatariswa "kwaisanganisira".
Matare ezvematongerwo enyika, ayo maitiro ayo mamiriro ega ega uye anoshandiswa kuwedzera mamiriro ekuwedzera.
Miedzo, iyo inosimbisa kuti mushandisi kana chikumbiro chinopfuura zvimwe zvinodiwa maonero asati aitwa.
Vatengi, izvo zvinongedzo kuti maGweka sei kubata uye kupindura kutaurirana.
Admin, iyo inoshandiswa kunyoresa mhando kuitira kuti vakwanise kunyengedzwa mune iyo Django Adming peji, uko database inogona kutungamirwa kuburikidza neiyo graphical interface.
Celery, iyo inotsanangura asnchronous mabasa eiyo Django Code inogona kutanga kumhanya usati waenda kubasa rinotevera kana mutsara wekodhi.
Django anogona kuve nezvimwe zvakawanda zvikamu, izvo zvatichakurukura zvakadzama pano. Pane nzira dzakawanda dzekuita Django dzinoshanda, dzinowedzera mawindockets, dzinofamba-famba dzakataurirana, dzinoverengeka dzeSoftware yeSoftware, kunyanya mumabasa anoitwa Wona mabasa akakosha nekuti anowanzo zivisa chikamu chose chekodhi iyo yakatarwa kune yakatarwa url maitiro, kana chikamu chevha.
Kutanga, ngatitorei kuongorora mabasa. Wona mabasa anotanga neanenge kunze kwenyika achiratidza kodhi iyo ichashandiswa mumaonero, uye inotsanangurwa uchishandisa tsanangudzo dzekuita kana makirasi. Maonero akareruka anotsanangurwa nebasa rekutsanangurwa def, uye dzosera htmbersece ine template yakakosha. Ngatitange nekutsanangura maonero ekutanga kuti adzorere zvinyorwa "Mhoro nyika". Rangarira kuti nguva imwe neimwe yaunowedzera kodhi mushure mekunge chirevo senge def, kana, nepo, ne, iwe uchazoda kuwedzera zvikamu zvina zvega zvega zvaungade kushandisa kune yako basa. Tichapinda mune izvo imwe yeiyi nzira munguva pfupi.
Kubva pane yedu saiti dhairekitori, Gadzirisa Feed / maonero.py faira uchishandisa Nano uye wedzera mitsara inotevera kusvika kumagumo efaira.
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Django's Httpternse inopindura netambo yemavara, inomiririrwa nekuvhura uye kuvhara '. Pese paunopfuura ruzivo kune basa kana kirasi, sekukumbira kana tambo, iwe uchafanirwa kushandisa mubereki (, kuvhura nekuvhara).
Izvi hazvisi zvese zvatinoda kuti tione maonero edu. Ehe, isu hatina kuudza sevha apo maonero ari chaizvo, isu tichiri kuda kutsanangura nzira iyo maonero anofanirwa kupa. Ngatitange nekutsanangura nzira yekutanga muApp / Urls.py, uye isu tichapinda mumapoka epatidziro gare gare.
MuApp / Urls.py, wedzera mutsara mushure mekutora mazwi mushure mekutanga kwekutora maonero atichangogadzira.
from feed import views as feed_views
Zvino, ngatitsanangurei maonero ekuona. View Patters ane zvikamu zvitatu, iyo nzira inotaurira iyo maonero aripo mukati meiyo template. Zvine musoro kuita zvinhu nenzira iyi uye kuve chinoshanduka, nekuti yako Codebase ichave inogara ichichinja nharaunda inoda kuchinjika uye kuvandudza kuitira kuti ive yakakosha uye iri nyore kushanda. Heano maonero ako anotaridzika senge, iwe unogona kuwedzera izvi kune urlpattrans = [chikamu cheapp / urls.py. Iyo maonero ekutarisa inotsanangurwa nezvinhu zvitatu zvinotsanangurwa pamusoro, uye basa rinonzi nzira. Yako URL Patters itsananguro, saka ita shuwa kuti ugare uchipedzisa chinhu chimwe nechimwe chiri mavari nekomi, nekuti izvi zvinoparadzanisa imwe neimwe. Chinhu chimwe nechimwe chinofanirawo kuenda pane mutsara mutsva, zvakare neine nzvimbo ina pamberi payo, kungofanana neApp mune Zviratidzo.py. Isu tichazotsanangura chikamu chekutanga chemaonero emaonero neyakaita tambo basa, kuitira kuti vagadzire maonero anomhanya pane iyo dhairekitori rewebhu yeWebhu. Urls yako.py inofanira ikozvino kutaridzika seizvi:
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Iyi ndiyo hwaro hwekugadzira webhusaiti neDJango iyo yakazara. Kuti tiite webhusaiti yakawanda yatinogona kutanga ruzivo rwekutarisa, semifananidzo, mavhidhiyo, odhiyo uye zvimwe, isu tichazoda kushandisa mhando, dzatichazotevera. Nekuti ikozvino, ngatitarise kodhi yedu uye timhanya seva. Kuti utarise kodhi yezvikanganiso, mhanya:
python manage.py check
Kana paine chero madzishe ekukanganisa, iwe unofanirwa kunyatsoongorora shanduko yako uye uone kana paine chero chinhu chinoda kugadziriswa, sedanho rekuwedzera, tambo isina kuvharwa, chero typo yakabviswa, kana chero chinhu chipi zvacho chipi zvacho. Kuverenga kuburikidza nemharidzo yekukanganisa (kana iwe uine imwe), iwe unofanirwa kuona iyo nzira kune faira raunogadzira kana kurongedzwa pamwe neiyo faira nhamba uye mutsara uye uone kana iwe uchigona kugadzirisa chero chinhu chiripo. Kana iwe wakarongedza nyaya yacho, mhanya iyo iri pamusoro mirairo zvakare. Kana software yako yagadzirira kumhanya uye iri kushanda, uchaona iyo yekubuda "sisitu cheki yakaratidza hazvina nyaya." Ikozvino wagadzirira kuenda. Mhanya seva ne:
python manage.py runserver 0.0.0.0:8000
Iye zvino vhura webhu browser uye kufamba-famba kusvika ku http: // localhost: 8000. Iwe unofanirwa kuona kuti zvinyorwa zvadzoreredzwa mumubereki uye makotesheni echiitiko cheTzternense. Uyu unongova muenzaniso wakakosha, asi kana iwe ukazviita izvozvi, unonzwisisa izvo zvekutanga kuti Lindux, Bashon, python, uye djang. Ngationgororei zvakadzika mune mamwe database modeling, uye ongorora simba rekirasi yePython mukuchengeta ruzivo. Zvadaro, isu tizotanga kuwana kubatwa kweHTML uye CSS tisati taita kuti saiti yedu irambe ichinyatsojekeswa, inoshanduka uye yakachengeteka kushandisa JavaScript uye kudzidza muchina kudzidza.
Makirasi anochengeterwa mumhando.Py eyako app. Uchishandisa nano, edit app / models.py uye wedzera kirasi idzva. Kirasi inotsanangurwa nedudziro yekirasi uye inopfuudza superclass iyo iyo iyo iyo yayo iyo yayo yayo yekugara nhaka kubva, mune ino kesi models.model. Zita rekirasi rinouya mushure mekutsanangurwa kwekirasi, uye mushure mekutsanangurwa kwekirasi A: (Colon) inoshandiswa, pamberi pehunhu uye tsanangudzo dzebasa dzakasungirirwa kukirasi dzinonzwisisika pazasi. Kirasi yedu inoda ID yatinogona kushandisa kuti tidzore uye ichichengeta yakasarudzika, uye inodawo ndima yemavara kuti iite rumwe ruzivo. Gare gare patinogona kuwedzera timestamp, mafaera, mafaera (echokwadi kana enhema. Ngatisunungure kodhi iri pazasi:
from django.db import models # Iyo yekukanda iyo inoshandiswa kutsanangura kirasi yedu uye ndeye hunhu
class Post(models.Model): # Tsanangudzo yekirasi yedu pachayo
id = models.AutoField(primary_key=True) # ID yemuenzaniso wedu, kiyi inogadzirwa otomatiki inotendera kuti tibvumire muenzaniso, chengetedza kana tichida kana tichida kufambidzana nemuenzaniso kana chaitika.
text = models.TextField(default='') # Zvinorevedza zvitoro zvekirasi zvatinoita, mune ino kesi, rumwe rugwaro, zvichidzvinyirira tambo isina chinhu.
Vhara uye chengetedza iyo faira sezvatakamboita usati wapedza.
Kune mamwe mimwe minda uye sarudzo dzatichaongorora kana tikadzoreredza kirasi iyi seyedu prograver, asi izvi ndizvo zvakakosha zvekugadzira app kutumira imwe zvinyorwa. Nekudaro, iyi mhando haizoshanda wega. Sezvinei zvakatsanangurwa kare, isu tichazoda maonero etsika uye tsika URL maitiro ekuita iyi semuenzaniso basa, uye isu tichadawo fomu pamwe ne template. Ngationgororei fomu yekutanga.
Kutsanangura fomu, edit app / mafomu.py naNano uye wedzera iyo inotevera mitsara. Isu tichazoda maviri ekupinda, edu mafomu eboka, pamwe nemuenzaniso watinogadzira (fead.modelie.post), pamwe neyechikamu chakanyorwa meta iyo ichatsanangura iyo modhi iyo fomu inowirirana. Fomu iyo inogona zvakare kuve neyekutanga basa iyo inoisa iyo yakavakirwa pane ruzivo mukukumbira, muenzaniso kana neimwe nzira, isu tichazotarisa izvi gare gare.
Model mafomu anobatsira kwazvo nekuti vanogona kugadzira muenzaniso kana kuti zvakare kurongedza muenzaniso, saka tichavashandisa ivo vese. Ngatitsanangurei imwe mumhando.py pazasi.
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',)
Iyi ndiyo yekutanga yei fomu uye muenzaniso unotaridzika. Iyi fomu yemhando yemhando inogona kushandiswa kusimbisa kana kurongedza post, kuchinja zvinyorwa zvarimo. Isu ticha tarisa kuKunhudzai fomu iri kuita kuti tevere. Kutanga, ngatiitei kutama uye kutama iyo database saka kodhi yedu inogona kupindirana nemuenzaniso kana ichimhanya. Kuti uite izvi, mhanya unotevera mirairo:
python manage.py makemigrations
python manage.py migrate
Izvi zvinotora miniti yekuuraya, asi kana zvangoita, zvinokubvumira kuti uwane iyo modhi mune maonero, yepakati, kana chero kupi imwe software. Ngatienderere mberi nekuita maonero atinogona kuona muenzaniso wedu. Edit feed / maonero.py uye wedzera iyo inotevera kodhi, sezvakanyorwa. Iwe hauzofaniri kuwedzeredza chero nguva mushure me # chiratidzo, iyo kodhi ndiyo mhinduro inoshandiswa kuratidza ruzivo nezve kodhi. Tichatanga nekuisa kunze kwenzira yedu mumaonero, uye nekuwedzera icho kune mamiriro ezvinhu apo isu tinokwanisa kuishandisa iyo mune template sechirongwa chekuratidzira. Tevere, isu tichawedzera template kwatinogona kupa fomu uye iyo modhi nebhatani kuti igadzire chinhu chitsva zvichienderana nemuenzaniso uye kutumira iyo kune seva. Izvi zvinonzwika zvakaoma, saka ngatimbotora iyo nhanho nhanho. Tisati tapedza maonero, ngatiitei template iyo ingosimbisa iyo modhi uye ita chokwadi kuti tinogona kuzviona nekugadzira iyo itsva posvo mugodhi. Heano maitiro anoonekwa nemaonero aya:
posts = Post.objects.all() # Query zvese zvikwangwani mune database kusvika ikozvino
Izvi zvese zvinoratidzika zvakareruka kusvika tasvika pasi. Rumbidzai, iyo kukosha kwakadzoka neiyo basa panzvimbo yeHTTPT seMuenzaniso Wapfuura, nguva dzose inotora mamiriro ekutanga (mune izvi zvinopihwa mumatare, uye anodzosera template inotsanangurwa mune iyo basa. Iyo template ichave iri gwaro reHTML ine zvishoma mutauro inonzi Jinja2, iyo inosimbisa ruzivo rwePython mune html.
Kutanga kugadzira matemplate, ita madhairekitori maviri mukudya.
mkdir feed/templates
mkdir feed/templates/feed
Tevere, gadzirisa template mune dhairekitori iri pamusoro, Feed / Templates / Fued, uye wedzera iyo kodhi yeiyi muenzaniso. Ngatitarisei template yeiyi muenzaniso.
Iyi template yakapusa. Iyo inotsanangura kuvhura uye kuvhara HTML tags, type yerwiyo ine zita remuti, tag inonzi inowedzera mutsara wechiratidzo, uye chiuno chinopa chega chega chega chega chega chega mune rondedzero yezvinyorwa sendima iri mumatare mune template. Izvi ndizvo zvese zvinotora kuti utore zvibodzwa, asi hakuna mudhara parizvino. Ngatiitei neganda. Tinogona kumhanya ganda nemanage.py
python manage.py shell
Zvino, ngatiponesei modhi yedu yekutumira
from feed.models import Post
Tevere, isu tichagadzira iyo yakapusa kutumira netambo uye kubuda muganda. Tambo iyi inogona kuve chero chinhu, sekureba kwayo ndeyechokwadi.
Post.objects.create(text='hello world')
exit()
Chekupedzisira, isu tichazoda kuwedzera iyo URL maitiro kune yedu yekudya. Nekuti yedu yekudyisa app ichashandisa akawanda madhora uye isu tinoda kuchengeta faira saizi diki, ngatigadzirisei URLs.py mune yedu yekupa app inotaridzika seizvi:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
Isu tichazodawo kugadzirisa Urls.py mu base app, chero chatakasarudza kuzvidaidza, iyi yaive dhaireko rekutanga ratakasika. Edit app / app.py uye wedzera inotevera kune iyo URL Patterns
from django.urls import include # kumusoro
# ... yapfuura kodhi pano
Zvino, kana tamhanya seva ne python mana.py RunServer, tichaona peji ratakagadzirwa nekuti tine muenzaniso, template pamwe neIRL maitiro, pamwe nezvinhu zviri mudhata. Tevere, ngatitarisei fomu ratakasika uye tanga kusika kwedu madzishe. Asi tisati tanyora kodhi yakawandisa, ngatiitei backup tichishandisa iyo script yatainyora kare, backup. Mhanya iyi script muganda, mirira nguva shoma, uye iyo yese kodhi ichatsigirwa kusvika kune yedu git repository.
backup
Kuita fomu iri nyore. Tichapinza fomu yedu, wedzera chikumbiro chevanokumbira kana chengetedza iyo posvo mune database usati wadzoreredzwa kune iwo maonero. Tinogona kushandisa iyo redirect basa ratatoisa kunze kwenyika, uye rimwe basa rinonzi reverse kuti uwane iyo URL yeiyo maonero maitiro. Isu tichabvunza izvi neTray 'Feedy: Feed' nekuti mazita eiyo nzira yaisanganisira iri chikafu, uye maonero acho anonziwo chikafu.
posts = Post.objects.all() # Query zvese zvikwangwani mune database kusvika ikozvino
if request.method == 'POST': # Bata chikumbiro chevhu
form = PostForm(request.POST) # Gadzira muenzaniso wefomu uye chengetedza iyo data kwacho
if form.is_valid(): # Simbisa fomu
form.save() # Chengetedza chinhu chitsva
return redirect(reverse('feed:feed')) # Redirect kune iyo URL yakafanana neyekukumbira chikumbiro
'form': PostForm(), # Ita shuwa yekupfuura fomu mune mamiriro acho kuti tigone kuchiita.
Zvino, isu tinofanirwa kuvandudza template yekuzvidavirira iyo fomu nyowani. Isu tinogona kuita izvi nekushandisa iyo
Ngatipwanya izvi pasi. Iko kune idzva fomu kirasi, chiratidzo, iyo fomu pachayo, uye bhatani rekutumira. Yakareruka, asi patino tarisa pairi, isu tingangoda kuita kuti zviitarire zvirinani. Inoshanda, tinogona kutumira mitsva mitsva ine fomu uye ivo vava vaponeswa mudura. Pane zvinhu zvishoma zviri kuitika pano. Isu tinoshandisa HTML tags kuti tizivise kuti gwaro html gwaro, tinoshandisa template tag ({% ...%}) kupa iyo fomu. Isu tinewo chiuno chekupa zvinyorwa uchishandisa block tags uye template tag. Vharira matagi akakosha nekuti tinogona kutsanangura kuti zvikamu zve template zvinoshandurwa pamwe chete navo, uye tagplat tags ndiyo nheyo yekuita kuti tishanduke mukodhi yedu.
Zvino isu tinofanirwa kuita kuti yedu app itarise iri nani, nekuti ikozvino yainotaridzika chaizvo. Tinogona kuita izvi nekushandisa css, kungave inline, kana mumakirasi akasungirirwa pachinhu chimwe nechimwe mugwaro. CSS yakanaka chaizvo nekuti inotaurira zvese pane peji kuti zvinofanirwa kutarisa sei, uye inogona kuita kuti kutaridzika zvakanaka. Kune maraibhurari mashoma anogona kuita izvi, asi ini pachangu enda kune bootstrap.
Bootstrap inogona kutorwa kubva kune yavo webhusaiti,Getbootstrap.com/. Pakarepo, tinya bhatani kuti uverenge iyo yekuisa DECS, uye kutevedzera iyo kodhi kubva kune inosanganisira kuburikidza neCDN chikamu chikamu. Iwe uchazoda iyi kodhi kumusoro kwegwaro rako reHTML, mune inonzi musoro. Zvakare, ngatiende mberi uye tigadzire template saka hatidi kudzokorora izvi zvinongedzo mune yega template.
Gadzira dhairekitori idzva rinonzi templates ine mkdir matemplates, uye wozogadzirisa matemplate / base.html.
Zvinofanira kutaridzika seizvi:
Ita shuwa kutevedzera maCSS uye JavaScript, iyo .CSS uye
Zvino ngatidzokere kuBash Shell uye mhanya nekukurumidza murairo. Rangarira, kana iwe ukamboda kuwana iyo chaiyo nharaunda, nyora surware venv / bin / activate. Izvi zvinokurega iwe uchiisa python mapakeji munharaunda mune nzira inoita kuti Django achivasvikira. Kuti tipe mafomu edu anogadzirwa neDjango Bootstrap makirasi, isu tinoshandisa python package inonzi crispy mafomu. Tinogona kutora izvi nemirairo inotevera
pip install django-crispy-forms
Kamwe izvi zvakaiswa, zviwedzere kune iyo zviyero.py
# ... yapfuura kodhi pano
Zvino, dzoka mukudyisa kwedu template, tinogona kubvisa zvimwe zvinhu. Ngatibvise kutanga uye kupera kwegwaro uye kutsiva nenhaka kubva kuThe Template yedu, kushandisa kuwanda uye kududzirwa kweBlock. Zvakare, isu tichawedzera template firti yekuneta ine mutoro uye template yefa fomu. Chekupedzisira, ngatiwedzerei bootstrap kirasi kuenda kuButton pane fomu kuti iite kuti ioneke sebhatani. Izvo zvinofanirwa kutaridzika seizvi:
Runako! Ndiro rairo racho kare. Tevere, isu tinofanira kuzviyedza tobva tava nechokwadi chekuti tinogona kuona kuti zvese zvinotaridzika zvakanaka, uye zvakare ita chokwadi chekuti zvinhu zvese zviri kushanda nemazvo. Mhanya server sekuraira kwakapfuura uye ita shuwa kuti saiti inotaridzika uye inoshanda zvakanaka. Basa Great! Wakagadzirira kufambira mberi kune inotevera nhanho, matiri kuwedzera mushandisi kupinda basa rekuita uchishandisa maUtls akafanana, mafomu, maonero uye matemplat. Iyo template is yakakosha, uye isu ticharamba tichivandudza uye tichichinja sezvatinoda kuita nezita rekushandisa uye vanozowedzera kuti tirambe tichichengetera yako.
Kuita izvi, isu tinofanirwa kushandisa iyo yemuenzaniso yemushandisi yakavakwa muDjango. Iyo yemuenzaniso yemuenzaniso ndeye database modhi, senge yedu post, iyo inogona kushandurwa kuti iite mushandisi mu webhusaiti. Mune ramangwana, tisati tatumira nzvimbo yacho kuInternet, isu tichazotumira iyi modhi nemamwe marudzi akafungidzirwa nawo, uye kuvaka mamwe ekuchengetedza matanho eiyo login inopesana nehove. Tichatanga nekushandisa imwe yakavakwa mune yekupinda mafomu ayo Django anopa. Kutanga, ngatiitei chiratidzo chitsva chatichashandisa kupa iyo template uye maonero eiyo yekutanga login peji. Isu tichagadzira zvakare mamwe maapplication kuti amiririre matambudziko ekupinda kuitira kuchengetedza app, kusanganisira iyo Pincode, kwechiso chekutaurirana kwemunda, zvishandiso zvekunze, chiitiko chemubatanidzwa, uye kuzivikanwa kweminwe.
Takatotaura nezve kutanga app. Kubva pane yedu dhairekitori, mukati memamiriro ekunze, Pass matanho.py idzi nharo
python manage.py startapp users
Zvino, isu tinofanirwa kuve nedhairekitori yeiyo itsva app. Ngatitange nekugadzira maonero mune iyo dhairekitori inoenderana neiyo mushandisi login. Django akavaka mumaonero emushandisi logins, asi izvi hazvifanirwe kuve zvakakodzera kwatiri nekuti isu tinoda maonero etsika, izvo zvinoitwa chaizvo nedudziro.
Mune ino maonero, tichatanga nekutarisa chikumbiro chekutumira, pfuura chikumbiro.
Mune vashandisi / maonero.py, wedzera iyo inotevera kodhi
username = request.POST['username'] # Tora iyo Username uye password kubva kune yekutanga chikumbiro
password = request.POST['password'] # Simbisa mushandisi
Izvi ndizvo zvese zvaunoda kune yekutanga login maonero. Zvino, ngatiitei fomu yekuona nekuwedzera template. Tichatanga nekugadzira dhairekitori idzva re template mune vashandisi folda.
mkdir users/templates
mkdir users/templates/users
Zvino, isu tinofanirwa kukwanisa kugadzirisa vashandisi / template / vashandisi / log.html. Patinenge tiri mariri, tichagadzira template kubvumira mushandisi kusaina futi.
nano users/templates/users/login.html
Zvino, mune template,
Izvi ndizvo zvekutanga kweiyo template yekupinda. Izvo chaizvo senge imwe template muchimiro, asi inotaridzika zvishoma zvakasiyana kana yashandurwa. Tinogona kutevedzera iyi kodhi kuvaka imwe template yakafanana inonzi rejista.html, kwatichachinja mazwi uye kushandisa fomu nyowani yatinovaka. Ngatiitei template kutanga. Rongedza vashandisi / template / vashandisi / rejista.html uye wedzera iyo inotevera kodhi:
Zvino ngativake fomu reMushandisi Wedu Kunyoresa uye Denderedzwa Kudzokera kune Maonero Tisati tasimudzira vaterengi vedu mashambisi nemhando. Tichaita kuti fomu iri ritange nekugara narwo, asi isa zvimwe zvinhu uye kuchengetedza zvinhu zvakadai sezvibvumirano uye CAPTCHA mune ramangwana. Gadzirisa mafomu ane vashandisi veNano / mafomu.py, uye wedzera iyo inotevera kodhi.
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']
Saka isu tine imwe fomu pano, inoshanda zvakarurama. Iyo mushandisi rejista fomu ine zita rekushandisa, email uye password, pamwe neshoko rekusimbisa password. Ziva kuti fomu iri hariwedzere mafomu enguva dzose.HORFE kirasi, iyo fomu yemhando iyo inoreva kuti ine meta. Imwe munda inotsanangurwa zvakafanana, uye kirasi meta inotsanangura iyo modhi iyo fomu inoenderana neyasara yeruzivo iyo ichanyorerwa fomu. Zvizhinji zve izvi zvatovepo muDjango akavakwa muSermercreaceform, saka tichashandisa izvo sehwaro hwekirasi (yakapfuura mubereki).
Tevere, isu tichaongorora maonero ekunyoresa mushandisi, ikozvino kuti tine fomu uye template. Uyu muenzaniso, senge uyo ari mune itsva yekutumira maonero. Rongedza vashandisi / maonero.py uye wedzera iyo inotevera kodhi:
# ... Kunze
Izvi ndizvo zvese zvatinoda kuti mushandisi akanyoreswa, asi isu tinofanirwa kuve neruzivo rwakawanda. Tinoda kuziva nguva yavakanyoreswa mushandisi, inguvai yavaigara pane iyo saiti, rumwe ruzivo nezvavo, senguva yemhando, tika, kuti vazivise mbozita yemuenzaniso uye hunhu hwakashandiswa kune mumwe nemumwe mushandisi. Kuti tiite izvozvo, isu tichavandudza mhando.py mune zvese zviri zviviri maapplication. Ngatitange nekugadzirisa maitiro ekupa. Zvinofanira kutaridzika seizvi izvozvi:
from django.db import models # ... Kunze
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # Wedzera mumutsara uyu
Teerera kune yechipiri mutsara wakawedzerwa kune iyo faira. Iyi ndiyo kiyi yekune imwe nyika, iyo ichati imwe neimwe yekutumira kune imwe mushandisi pane imwe mushandisi paPost, saka isu tinogona kuva nechokwadi chekuti tinoponesa izvo zvishandiso pane mushandisi-mushandisi inogona kuitwa pasina kuitwa pasina mushandisi. Isu tinotsanangura iyi kiyi yekune dzimwe nyika iyo inomiririra, kukakavara kuve nechokwadi chekushandiswa kwevashandisi, uye kuti tishandise mushandisi pane zvatakagadzira, uye tinoshandisa zita ripi zvaro, iro ratinogona kushandisa kureva zvinhu zvinogadzira. Iri zita rakabatana, kusiyana post.VOUTHor, munyori weiyo post, anotipa mushandisi akatumira iyo post yacho pachayo. Isu tinogona ikozvino kuwana iyo posts iyo mushandisi yakagadzirwa nemumhanyi mushandisi.nast.Zvose (), kana munyori.Post.VER ().
Zvino, ngatiitei kuti vatarise vatarise. Tinogona kutoita yedu saiti yakawanda isinganyanye kusanzwisisika kuti tishandise phishing nekungoita huwandu hwenguva dzatichazotendera kupinda kune saiti, izvi zviri nyore. Ngatitangei zvakare kuchengeta rumwe ruzivo nezve mushandisi wega wega sezvatinoramba tichikura kugadzira yedu app. Kugadzirisa vashandisi / Models.py, wedzera iyo inotevera kodhi.
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='')
Ziva kuti iyi modhi iri yakafanana nemhando yekutumira. Isu tine imwe nzvimbo yekuwedzera, nguva yenguva, iyo ichatitendera kuti tisiyane neminda yedatetime, uye isu tine humbowo hwehunhu uye zvinyorwa zvemavara senge post. Uchishandisa ese emitauro iyi inotibatsira kuchengetedza saiti uye kunzwisise kushandiswa kwayo, uye minda yemavara regai tiite ruzivo nezveumwe neumwe mushandisi, kana munyori, pane webhusaiti. Iyo Onetoonefield inofanira kunge iri chete kufunga kudiki, inozviita zvakafanana neyemufananidzo asi neinongono kubva pane inotevera muenzaniso. Nenzira iyi, mushandisi anongova neyakafa imwe, apo ivo vanogona kunge vaine zvizhinji.
Zvino, ngativandudze yedu login uye kunyoresa maonero kuti tiwane nhoroondo yefaira. Kutanga, Rongedza vashandisi / maonero.py uye tarisa pane iyo rejista maonero:
# ... Kunze
Profile.objects.create(user=user) # Ita shuwa yekuwedzera mutsara uyu, kugadzira iyo nhoroondo yemushandisi
Izvi zvinongoitika zvinogadzira mbiri yemushandisi, pasina kuzadza chero yeruzivo. Zvino, isu tinoda kuve nechokwadi chekuti account yemushandisi haigone kuve yakawandisa, kana kuti mapassword angangoita kazhinji kazhinji, saka ngativakezve maonero ekupinda.
# ... Kunze
if user and user.profile.can_login < timezone.now(): # Ziva kuti ikozvino tinotarisa kana mushandisi anogona kupinda mukati
else: # Kana iyo login isina kubudirira,
user = User.objects.filter(username=username).first() # Ichi ndicho chikamu chatinogadzirisa vashandisi
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Saka havagone kupinda zvakare kwemasekondi mashoma
Iyi ndiyo yekutanga yakakosha yekuchengetedza. Ita shuwa kuti saiti isiri njodzi kune mumwe munhu anongoyedza zvese zvinogoneka password musanganiswa, kana kunyange mashoma acho panguva imwe chete. Izvi hazvizove nekushungurudza mushandisi anoziva kuti anoziva passcode yavo uye anongopinda mumidziyo mishoma, asi ichachengeta marobhoti akawanda ekuridza kubva muapp. Cherekedza kuti takawedzera iyo kana chirevo chine chirevo, chinogona_login, icho chinofanira kunge chiri nguva munguva yakapfuura, uye kugadziridza neyakawana yega yega username username. Nenzira iyi, mushandisi ane hutsinye haazokwanisi kufungidzira password chero pedyo nekukurumidza. Nhamba yemasekondi mune iyo Datetime.timElta () inogona kuvandudzwa zvakare, uye webhusaiti ichave yakanyanya kusimba asi zvishoma zvishoma nezvishoma nemamwe masekondi. Ini ndinokurudzira 15 kutanga ne.
Rangarira, takavaka script backup yekuchengetedza basa redu, saka ngatienderere mberi nekudzosera izvo zvatinazvo kusvika pari kuva nechokwadi chekuti tine zvese zvakaponeswa. Mhanya murairo:
sudo backup
Zvekare zvakare, izvi zvichaponesa basa rako kusvika zvino. Ini ndinokurudzira kumhanya kakawanda backups kuti uchengetedze basa rako, uye ungatoda kumhanya basa rekudzosera kumashure. Iwe unogona kuita izvi uchishandisa UNX UTILILity inonzi cron. Kuti uite kuti udzidze iyi, mhanya iyo inotevera mirairo uye isa password yako:
sudo crontab -e
Kana usati watoita sarudzo 1 for nano, iyo mavara ezvinyorwa iwe unofanirwa kunge watojaira, uye mupumburu kusvika kuzasi kwefaira uchishandisa museve makiyi. Wedzera mutsara unotevera:
0 * * * * sudo backup
Cron inoshandisa yemhando yemhando, awa, zuva remwedzi, mwedzi, zuva revhiki, uko * kana nhamba inomiririra kana kumhanyisa kuraira. Uchishandisa 0 kweminiti uye * kune mamwe masarudzo, isu tinogona kumhanyisa murairo paminiti yekutanga yeawa imwe neimwe pakutanga kweminiti. Izvi zvinotiita kuti tidzore kodhi otomatiki. Mabasa ese eCron paakaurayiwa neSudo anomhanya kunge midzi, saka hatidi kunyora mune password nguva imwe neimwe.
Kuti zviite nyore kudzosera kodhi yedu pasina kushandisa password, ngatirambidzei password yeiyo yedu BackUp Command. Isu tichaita izvi nekuuraya mutsara unotevera uye kupinda password:
sudo visudo
Zvino, ngatiputire kuzasi kwefaira uye wedzera imwe mutsara:
ALL ALL=NOPASSWD: /bin/backup
Izvi zvinorega isu tichimhanya kuraira "Backup" se chero mushandisi, pasina password. Chimiro ichi chiri nyore, chingori prefix mutsara ne "zvese zvese = kunze:
Zvino ngatitange kushanda neemail. Email yakakosha kune mawebhusaiti, nekuti inzira yekuchengeta webhusaiti yakachengeteka, veresa vashandisi vanhu chaivo, uye kunyange zvigadzirwa zvemusika kana masevhisi kune vatengi. Vanhu vazhinji vanogara vachitarisa email yavo zuva nezuva, uye vanogashira marudzi ese ekushambadzira email nezve zvigadzirwa uye masevhisi azvinoita kuti gadzirise webhusaiti yeDjango, uye iwe unogamuchirwa kuti utore chero chipi chinoshanda zvakanaka kwauri.
Kutanga, iwe unogona kubhadhara kune email sevhisi iyo inokugonesa kutumira email kubva kune yako domain uye inoda kodhi shoma. Pane mabasa mazhinji anopa izvi, akadai seGoogle Workspace, Shandurai, mailgun, uye nezvimwe.
Zvikasadaro, iwe wanyatso kuvaka yako yako email sevhisi mukati me server yako kubva pakukanda. Ini ndinokurudzira iyi sarudzo, kunyangwe iri yakawanda kodhi uye ingangoda inokosha hosting. Iwe hauzokwanisi kutanga tsamba server kubva kucomputer yako kazhinji, saka ngatiendei mberi uye toongorora iyo yekugadzirisa email tisati tatanga server mugore uye kugadzira yedu mail mail mukati.
Kutanga, Gadzirisa Zvirongwa.py neinotevera rairo:
nano app/settings.py
Iko App izita reiyo app yawakagadzira neTentamp.
Wedzera mitsara inotevera:
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)
Ita shuwa kuti uchinje izvi kana iwe wagadzirira kuendesa app yako, tichaongorora izvi gare gare. Iyo email_address kurongedza inofanirwa kunge iri iyo email yaungade kutumira kubva, uye password (Email_host_hostword) inofanira kuiswa kune password iwe unogadzira server. Ini ndinotakura password mufaira yekubvumidza kuti iite kunze kwekodhi uchishandisa iyo inotevera pfungwa, pamusoro pemitsetse iyi muzvirongwa.py:
import os
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
Zvadaro, ini ndakaita seti yejson faira neiyo config in /etc/configgic.json ichishandisa nano seinotevera.
Kugadzirisa iyo faira:
sudo nano /etc/config.json
Wedzera mitsara inotevera:
{
"EMAIL_HOST_PASSWORD": "<some password here>"
}
Isu ticharamba tichigadzirisa faira regedhi uye tiwedzere ese mapassword uye makiyi atinoshandisa muapp. Parizvino, ngatimukumbii kuongorora maitiro ekutumira email uchishandisa Python. Kutanga, ngatiitei template yeemail yekusimbisa yatinogona kutumira kune vashandisi vedu, uye kuiisa mune mushandisi templates dhairekitori. Iyi template ichanyorerwa muHTML.
nano users/templates/users/verification_email.html
Iyi email iri nyore nyore. Zvinotora mamiriro emushandisi, iyo Base URL yeiyo saiti, uye ID yemushandisi uye Chiratidzo icho chinoshandiswa kuratidza iyo email yemushandisi. Ita shuwa kuti utsanangure iyo base URL muzvirongwa.py tisati tanyora imwe python kodhi yekupa template. Enderera mberi uwedzere mitsara inotevera kuenda kuapp / marongero.py, padhuze pakutanga.
SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'
BASE_URL = PROTOCOL + '://' + DOMAIN
Pakupedzisira, kana saiti yako yagadzirira internet uye iwe unozvitora, iwe uchazoda kutsanangura yako domain sezita rezita raunotenga kumiririra saiti. Iri izita rauchazonyora muNavbar kuitira kuti uwane yako saiti. Nekuti ikozvino, iwe unogona kubva iyo domain isina kana kushandisa nzvimbo. Iwe uchadawo kuchinja nzvimbo yesaiti_zita kune zita raunoda kupa yako saiti, yekusarudza kwako.
Tisati tatumira email, ngativakei take tonator kuti tigokwanisa kuve neakaundi yekuisa chiratidzo chisingazombofa. Tinogona kuita izvi nekuvaka uye kuendesa kuaccount yekuisa chiratidzo chinotaridzika seinotevera. Rongedza iyo faira:
nano users/tokens.py
Wedzera iyo inotevera kodhi:
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()
Iyi yekutanga take chiratidzo inoburitsa chiratidzo chatinogona kutumira mushandisi mune url uye mushandisi anogona kushandisa kuti aone email yavo uye activate yavo account.
Tevere, ngatione kuti titumire sei email. Uchishandisa Nano, Rongedza vashandisi / Email.py.
nano users/email.py
Kutumira iyo Verified HTML email icharatidzika seizvi:
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)
Izvi zvakareruka. Isu tinopinza mabasa atinoda kutumira iyo email, tumira iyo email ine template, uye zvigadziriso zvedu, uye tobva tatsanangura iyo email nezita re template uye tumira kune mushandisi uchishandisa basa. Iwe uchaona isu hatina kutsanangura basa rekutumira tsamba, tumira_mail_email, asi ngatinyorei izvi pazasi kodhi yatatowedzera kune vashandisi / email.py
def send_html_email(user, mail_subject, html_message):
to_email = user.email
username = user.username
if to_email == '':
return None
unsub_link = settings.BASE_URL + user.profile.create_unsubscribe_link()
html_message = html_message + "<p><a href=\"" + unsub_link + "\" + title=\"Unsubscribe from " + settings.SITE_NAME + " emails\">Unsubscribe</a></p></body></html>"
msg = EmailMultiAlternatives(mail_subject, strip_tags(html_message), settings.DEFAULT_FROM_EMAIL, [to_email], headers={'List-Unsubscribe' : '<' + unsub_link + '>'},)
msg.attach_alternative(html_message, "text/html")
profile = user.profile
try:
msg.send(fail_silently=False)
if not profile.email_valid:
profile.email_valid=True
profile.save()
except:
profile.email_valid=False
profile.save()
Izvi zvinonyanya kuoma, uye isu hatina kugadzirira kumhanya yese iyi kodhi. Cherekedza isu tiri kutsanangura chisinga chibhoti Izvi zvakakosha, nekuti vashandisi vanozoda kukwanisa kubuda mumaemail edu kunze kwekunge vada kuvaona, chero nguva. Isu tinowedzerawo nzira yemavara kune yedu meseji, iyo iri iyo HTML meseji yakatsemurwa neHTML tags. Chekupedzisira, isu tinotarisa kana iyo email yakatumirwa, uye kana isina, isu tinogadzira muMushandisi's profile iyo email yavo haina kushanda.
Ngatisurei kudzokera kumhando yemushandisi kuti tigone kuita izvi zvese basa. Isu tinofanirwa kutsanangura basa rekugadzira chinongedzo kuti ndinyore, uye kutsanangura munda weBoolean kuratidza kuti email yemushandisi haina basa.
Kutanga, wedzera zvinotevera zvinotumirwa kusvika kumusoro kwevashandisi / Models.py
nano users/models.py
# ...
Tevere, ngatiwedzerei mabasa mushandisi kuti iite chiratidzo uye tarisa chiratidzo chinoshandiswa kumisikidza iyo email, pamwe nemunda wekuponesa kana mushandisi achibudirira kugamuchira tsamba yavo. MuVashandisi / Models.py zvakare, wedzera iyo inotevera kodhi kusvika kumagumo emuenzaniso (indented kodhi)
# ...
TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # Inoshanda kwemazuva makumi matatu
Izvi zviri nyore, isu tinoshandisa timestamsigner, iyo ndiyo yekunyora cryptography chishandiso, kugadzira Chiratidzo chinopera mushure menguva yakati, uye isu zvakare tinoshandisa rimwe basa rekutarisa kana zvichishanda. Isu tinoshandisa aya zviratidzo kaviri, kamwe chete kuratidza iyo email, uye kamwe chete kune isina kunyorwa link.
Zvino zvatine izvi, wekupedzisira kwebasa ratichazofanira kuita zviri mumaonero. Mukati mevashandisi / maonero.py, ngatiwedzerei maonero kuti uone iyo email kero, uye kuti ibvise.
nano users/views.py
Kutanga, wedzera zvinotevera zvinotevera. Ini ndakakanda mune mashoma mashoma saka hatizofanira kuendesa zvimwe zvinhu zvakare gare gare gare gare gare gare gare gare.
from .email import send_verification_email # Ita shuwa yekuendesa iyo email yekusimbisa kutumira basa
Iwe unogona kunge watove nedzimwe dzevatengi kunze, asi hazvirwadze kuzvidzokorora. Iwe unozoda kuendesa kuInternation email kutumira basa, pamwe neaccount_Activation_Token kubva kune vashandisi.Tokers, pakati pezvimwe zvekunze.
Zvino, pazasi pefaira, wedzera iyo inotevera kodhi:
# varege kuzvinyora
# Zvikasadaro redirect to login peji
# SentwelMail (Chikumbiro, Mushandisi)
Iyi ndiyo kodhi yakawanda. Ngatiputire. Basa rekutanga, rakachena uye rakareruka, dzinotsausa mushandisi kubva kune runyorwa rwekutumira. Basa repiri rinogadzirisa email yavo, uye iwe uchaona kuti ndakawedzera basa rakatsaurwa, kutumiraMail. Iwe unogamuchirwa kushandisa email template uye dudziro yekutumira kutumira email inogamuchirwa, ini handisati ndasvika. Basa rekupedzisira randakakanda mukati rakakosha, nekuti maimeri eaya anopera. Naizvozvo, isu tichazoda kuendesa iyo activation email imwe yenguva. Tinogona kushandisa fomu rekutanga kune izvi, uye call iyo basa kutumira iyo email yekusimbisa. Tisati taita izvi, ngatione kuti iri kutumirwa munzvimbo yekutanga, nekuwedzera basa rekufona kune iyo rejista maonero. Wedzera iyi mutsara nguva pfupi isati yadzorerwa mujista maonero, Def Rejista, muVashandisi / Views.py.
nano users/views.py
# ... (mushure) def Rejista (Chikumbiro):
# ... (pamberi) Redirect (
Iwe haufanire kuwedzera mitsara yekutanga uye yekupedzisira muiyo kodhi snippet, ingoita chokwadi chekuti rejisholi yekutumira inotumira email yekusimbisa kune mushandisi. Zvinofanira kutaridzika seizvi:
# ... Kunze
send_verification_email(user) # Ita chokwadi chekuwedzera mutsara uyu!
Zvino, isu tinoda kuwedzera fomu kuti tidzorere iyo activation email. Mune vashandisi / mafomu.py, wedzera fomu inotevera:
# ... (kupinza)
Isu tichadawo template inoenderana neiyi restend email activation fomu. Ngatiwedzerei template iyi mukati. Rongedza iyo faira:
nano users/templates/users/resend_activation.html
Tevere, wedzera iyo inotevera kodhi kune iyo faira.
WHOW, ndizvo zvakawanda! Zvino, patinoisa kodhi yacho kune server yedu, isu tichakwanisa kutumira HTML email uye activate mushandisi maakaunti nekudzvanya mune iyo email. Isuwo tinogona kuda kutumira email inogamuchirwa email, saka ngatione maitiro ekuita izvozvo. Kudzokera muVashandisi / Email.py, Wedzera iyo inotevera kodhi:
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)
Zvakare, isu tichazoda template yekupa zvese izvi ruzivo. Pane yangu webhusaiti, template inotaridzika kunge iri pazasi, asi iwe unogamuchirwa kuti itongere zvisinei.
Cherekedza kuti isu hatina muviri wekuvhara kana HTML tags, nekuti tinowedzera izvi kana tawedzera iyo html isinganyore link. Izvi zvakakosha, asi hatidi kuzvitsanangura kaviri.
Saka chii chinotevera? Tauya kureba nzira. Chaizvoizvo, isu tinofanirwa kuve takagadzirira kuendesa nzvimbo yacho kune server. Tinogona kuwedzera iyo @login_required _required decorator uye titore masaini emushandisi, tumira email yekuwirirana, uye ruzivo rwechikwereti, ndeipi yebhusaiti inoda kuita kuti igare yakakodzera. Tichawedzera mashoma mashoma ekushandisa maficha, uye obva avaka hwaro hwekuisa kodhi yedu kune server iri kure, kumisikidza server server, domain yekugadziriswa, uye mafirita kuti ive yedu saiti yakachengeteka uye yakakodzera.
Isu tichadawo password password reset, saka ngatiwedzere kuti mukukurumidza. Django yakavakwa mu password reset inoputswa mune mamwe mabasa, asi isu tichaona nzira yekunyora maonero edu, Email template, mafomu, uye URL mapatani. Heano iwo maonero anoita sekunge, muVashandisi / maonero.py
# ... Kunze
Fomu iri rinovakwa kuDjango, asi isu tichada template yekusimbisa iyo password reset, vashandisi / template / vashandisi / password_con.html
Isu tine zvakare template kutumira password reset email, ine fomu yakapusa, mune vashandisi / template / vashandisi / password_reset.html
Iyo template yeiyo email pachako iri nyore, iri basic html faira yekupa iyo link yekugadzirisa zvakare password, muVashandisi / templates / password_reset_mail.html. Django anozozvidzivirira iyi faira.
Tichadawo mamwe miviri matembo. Yekutanga ndeyekuti uone kuti iyo email yatumirwa. Maonero eaya atove muDjango, saka isu tinongoda kutaura navo muUrl.py. Iyi template inowanikwa kune vashandisi / templates / vashandisi / password_reset_done.html
Uye pekupedzisira, kusimbisa kuti password reset yakakwana, vashandisi / template / vashandisi / password_reset_Complete.html
Zvino, tinoda URL mapatani emaonero aya. Mune vashandisi / Urls.py, wedzera inotevera URL Patani:
# ... mavambo apfuura pano
Makumi mana templates, izvo zvakawanda! Asi ikozvino tinogona kuve nechokwadi chekukwanisa kudzosera password yemushandisi chero nguva yatinoda, zvese kubva pawebhu browser.
Ini ndinonzwisisa iyi inzvimbo yakawanda. Kana zvikaita kunge zvishoma pamusoro pemusoro wako, izvo zvakanaka. Iwe uchavandudza, nzwisiso yako ichavandudza, uye iwe uchave wakangwara zvakanyanya nekodhi munguva pfupi. Kana iwe wakarasika zvachose, ndinokurudzira kudzoka kune iyi software gare gare mushure mekushanda pane yekuzvimiririra kudzidza kuCode Code Online. Izvi zvinowanzo kuve wakasununguka kutanga, uye zvichakutungamira kuburikidza nezvese zvaunoda kuti ubudirire kana iwe ukadzoka kuchirongwa ichi. Kana iwe uchinzwa kunge wagadzirira kuenderera, kuverenga,
Chinhu chekupedzisira chatinoda kuti tisati tambotumidzira server iri kure kuita kuti saiti yedu ive diki zvakanyanya. Iwe unozoona kuti iyo login yekuona inongotora zita rekushandisa uye password, uye hapana chinhu chitsanangudzo chechokwadi kana imwe nguva kodhi. Uku kugadzirira kuri nyore, uye neiyo kodhi imwe chete, tinogona kuita kuti saiti yedu itumire mameseji uye kunyange kutevedzera mameseji akatumirwa kuseva. Kutanga, isu tichadzokera mumhando yemashandisi uye nekuwedzera iyo timestamp chiratidzo iyo ichamirirana login yega yega. Isu tichawedzerawo yakasarudzika, inotenderera identifier kune iyo mushandisi muenzaniso iyo ichashandiswa kuwedzera kuchengetedzwa kwakawedzera kune yedu login. Kugadzirisa mwero wevashandisi, vashandisi / models.py, wedzera iyo inotevera kodhi:
# Ita shuwa kuti utange iyo uuid, timestamp chiratidzo uye url jenareta (reverse)
# Wedzera iyi kodhi pano
# Uye wedzera basa iri
TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # Inoshanda kwemaminitsi matatu
Ita shuwa kuti vashandisi vako / models.py inotaridzika seizvi, kunze kwekutaura kwemashoko (kodhi pamitsetse ine #). Kutyora izvi, zviri nyore. Isu tine mashoma ekunze, timestampresigner iyo inochema iyo inogadzira kodhi yakachengetedzwa uye kuisimbisa kuti ive nechokwadi chekuti inoshanda kamwe chete, uye isingadhuri pane imwe nhamba yemasekondi. Isu tinoshandisawo uuid, iyo yakasarudzika identifier inozivisa mushandisi wedu mukusaina chiratidzo, uye muUrl uko chiratidzo chinotumirwa kune mushandisi. Isu tinoshandisa iyi yekutanga cryptography kuvaka maviri echokwadi ekusimbisa maonero. Tisati taita chero chimwe chinhu, ngatimhanyire kutamira kuitira kuti vatumire mwero wedu anovandudzwa. Mune dhairekitori ine maneja.py, mhanyisa mirairo inotevera kugadzira uye kuzadzisa kutama.
source venv/bin/activate
python manage.py makemigrations && python manage.py migrate
Izvi zvakakosha nekuti nguva dzese dzatinoita shanduko kumhando, isu tichafanira kuumba matafura uye kugadzirisa database nekufadzwa tisati tashandisa mhando.
Tevere, ngativei tishandise maonero edu okuisa kune redirect kune yechipiri yekusimbisa maonero. Mune vashandisi / maonero.py, bvisa iyo login process uye redirect kune iyo URL yatinongounza mumhando yemushandisi.
# ... Kunze
if user and user.profile.can_login < timezone.now(): # Ziva kuti ikozvino tinotarisa kana mushandisi anogona kupinda mukati
# Bvisa iyo Auth_lologin basa raive pano
return redirect(user.profile.create_auth_url()) # Cherekedza isu takatungamira kune url nyowani apa
else: # Kana mushandisi asiri kushandisa akawanda-factor kusimbiswa, ingovaisa mukati.
else: # Kana iyo login isina kubudirira,
user = User.objects.filter(username=username).first() # Ichi ndicho chikamu chatinogadzirisa vashandisi
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Saka havagone kupinda zvakare kwemasekondi mashoma
Saka izvi zvakareruka, isu tava nenzira yekudzosera kune maviri echinhu chokwadi kuona kana tikaigadzira. Isu tinowanawo kudonha kana mushandisi haana kuwedzera nhamba yefoni. Isu tichawedzera iyo yekutanga maonero kuti uwedzere nhamba yefoni munguva pfupi uye pinda mune meseji meseji munguva pfupi.
Kutanga, isu tinoda nzira iri nyore yekutumira meseji kubva kune yedu kodhi. Kuti tiite izvi, tinogona kusarudza kubva kuhuwandu hweApisi, asi munhu ari nyore pane yangu mumaonero angu. Ivo zvakare vanopa mitezo yakanaka yemapurojekiti madiki, pamwe nekudzora kwakawanda. Gadzira account pawilio.com Zvadaro, wedzera iyi kodhi pasi pefaira idzva, vashandisi / sms.py.
nano users/sms.py
# Kupinza zvese zvemapakeji anodiwa
# Iyi kodhi inotumira iwo mavara naTwilio
# Basa rebetsero rekuwana nhamba ine akawanda manhamba
# Tumira zvinyorwa kuti uone mushandisi
# Tumira mushandisi chero rugwaro neiyi basa
# Simbisa iyo kodhi nebasa iri
# Simbisa nguva
Ive neshuwa kuti uchinje zvigadziriso zvako, kuwedzera mitsara iyi nekiyi yako:
# Ita shuwa kutevedzera izvi kubva kune yako twilio dashboard
AUTH_VALID_MINUTES = 3 # Nhamba yemaminitsi iyo TFA peji iri kushanda kamwe pakarepo
Kutanga, isu tichazoda mafomu echinhu chedu chechokwadi chekusimbisa. Kugadzirisa vashandisi / mafomu.py, wedzera iyo inotevera kodhi.
# ... Kunze
# Fomu yekupinda yedu nhamba yefoni
# Fomu rekusimbisa
Tevere, ngatiitei maonero evashandisi / maonero.py
# ... Kunze
Tichadawo matepi enzvimbo idzi mbiri idzi. Ngatiwedzere iyo MFA template kutanga.
nano users/templates/users/mfa.html
Wedzera iyi HTML kodhi kune template
Iyi yakanaka kuzvitsanangudza. Fomu rinotumira chero kodhi kana kodhi isina chinhu, uye iwe unozoona mune iyo maonero atinotumira kodhi kana tikatambira kodhi isina chinhu. Tine kungoisa maviri ekutumira mabhatani, uye nenzira iyi tinogona kutumira iyo kodhi ine chero bhatani. Tevere, isu tinowedzera fomu iri nyore kuwedzera nhamba yefoni.
nano users/templates/users/mfa_onboarding.html
Wedzera iyo inotevera html:
Fomu iri rakareruka, rinongoita runhare nhamba yefoni yatakagadzira uye inoita kuti mushandisi awedzere nhamba yefoni.
Izvi zvinotaridzika zvakanaka! Chero bedzi zvinhu zvese zvakarongedzwa zvakanaka, isu tinofanirwa kukwanisa kutumira mameseji, uye log mushandisi mune yavo nhamba yefoni nekukurumidza patinowedzera iyo URL mapatani. Chinhu chekupedzisira chatinoda kuisa chimiro kuti titaure kuti mushandisi anogona kuchinja nhamba yavo yefoni pasina kuyaruka.
Ngatiwedzerei chimiro chekutarisa kune vashandisi / maonero.py. Maonero aya anozogadzirisa iyo Mushandisi Bio, email, zita rekushandisa, uye nhamba yefoni, pamwe nekutendera isu kuti tigorese chinhu chitsiniso. Kutanga, isu tichazoda mamwe mafomu maviri mune vashandisi / mafomu.py
# ... Kunze
Tevere, tinogona kugadzira maonero ekushandisa ese maviri mafomu. Rongedza vashandisi / maonero.py uye wedzera mune maonero.
# Wedzera izvi zvinopengera
Tichadawo template yeiyi maonero.
nano users/templates/users/profile.html
Iwe unozoona iyi ndiyo fomu yakareruka, asi ine mamwe maJavaScript mariri ayo otomatiki anogadzirisa zvirimo mune fomu sezvavanovandudzwa. Izvi zvinobatsira kuva nazvo, saka iwe unokwanisa kugadzira mapepa pasina kudzvanya kutumira nguva dzese.
Tevere, isu tinoda URLS inomiririra ese eizvi maonero mune vashandisi URL patters. Rongedza vashandisi / urls.py uye wedzera iyi kodhi:
# ... yapfuura kodhi, kupinza
# ... URL mapatani atakambosangana, wedzera matatu anotevera mitsara
Ino inguva yakanaka yekuedza chirongwa chedu. Asi kutanga, ngatimhanye imwe backup.
backup
Uye unomhanya seva. Tisati tarongedza kune iyo Linux server, ipfungwa yakanaka yekugonesa maviri echokwadi chokwadi pane iyo account. Tichaita izvi kuenda kune yedu Profile URL, / vashandisi / profile /, uye kutarisa bhokisi kuti riite kuveurwa mushure mekupinda nhamba yedu yefoni, uye tobva taendesa fomu.
python manage.py runserver localhost:8000
Shanyira iyo peji rewebhu nekuenda kune yako webhu browser, ini ndiri kushandisa google chrome mune uyu muenzaniso, uye kupinda iyo URL https: // localhost: 8000 / maakaunti / profess /
Iwe uchave unokwanisa kupinda mukati kana zvichikosha uye gonesa maviri echokwadi chokwadi.
Iyi purojekiti inoda server yekumhanya pane saka inogona kunyorera tsamba. Asi kutanga, isu tinoda nzira yekuona zvikanganiso. Iwe uchaona kuti kana ukamhanya server mu debug mode, ine marongero.debug yakaenzana nechokwadi, server inoratidza zvikanganiso zvoga. Kuratidza zvikanganiso pasina kushandisa debug mode, iyo isina kuchengetedzeka pane yekugadzira server, tinofanira kuwedzera maonero nazvo. Zvikanganiso zvinonyanya kukosha zvatinoda kuti tikwanise kubata nde:
Kukanganisa 500 - dambudziko nekodhi yedu Kanganiso 404 - peji risina kuwanikwa (URL yakaputswa) Kukanganisa 403 - Mvumo yakarambidzwa kukanganisa
Ngatiwedzerei iyo itsva app kubata izvi zvikanganiso, zvinonzi zvikanganiso.
python manage.py startapp errors
Wedzera izvi kuZvirongwa.py sezvatakaita kare, mune yakaiswa_masuruji yekuisa, uye tanga nekuwedzera mareferensi kune mamwe maonero muApp / Urls.py's App
handler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'
Izvi ndizvo zvese zvatinoda kunze kwekukanganisa maonero, template uye zvishoma zvishoma zvepakati. Ngatitsanangure izvo zvakadaro:
# Gadzira maonero ako pano.
Tevere, ngatitsanangure iyo yepakati pekuita izvi zvikanganiso. Isu tichaita izvi nekutanga kuwedzera kusvika pakati nepakati lowleware_Classes muzvirongwa.py, nezita remukurudyi.
# ... yapfuura yepakati
Tevere, ngatiwedzere iyo yepakati.
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.')
Isu tinowedzera basa kuti tiwane iyo yazvino kusarudzika nekushandisa yekudzora yemuno, iyo inotibatsira kuteedzera chero zvikanganiso mukodhi yedu. Panyaya yemietenga, isu tinongoda imwe chete, nekuti isu tinosimbisa zita remusoro mune maonero. Iyo template ichingoda kupa zita remusoro uye "tsvaga", kukanganisa kwedu traceback kubva mumamiriro ezvinhu.
nano errors/templates/errors/error.html
Iyi ndiyo templete yedu yakapusa asi iri nyore, asi ndiyo pfungwa iri nyore kuona zvikanganiso muchirongwa chedu. Tevere, ngatirambidzei debug muzvirongwa.
nano app/settings.py
Tsvaga uyu mutsara umo maisirwa chokwadi, uye uchichinja kunyepa
DEBUG = False
Enderera mberi uye Backup iyo app izvozvi. Isu takagadzirira kuendesa kune kure kure Linux server, uye ramba uchiwedzera maficha kubva ipapo.
sudo backup
Tisati tatumira iyi kodhi kune server, isu tinofanirwa kufunga kuti panogona kunge paine zvimwe nyaya nekodhi. Zvichienderana nezvakaitika, masaiti anogamuchira ruzivo rwakatumirwa kwavari zvichave nenyaya neSpam iri kutumirwa uye kuomerwa kubvisa spam. Izvi hazvifanirwe kuitika pakarepo, asi kana zviri kuitika, isu tinozoongorora maitiro ekutarisa marobhoti kuti awane nzvimbo yemushandisi, uye simbisa kuzivikanwa kweiyo ID yavo kana yeBiometric scan kana kucherechedzwa kwechiso.
Kutarisa pane iyo yakawanda fain yekusimbisa muenzaniso wataongorora, mukugadzirwa, zvinhu zvinogona kuve zvakasiyana. Ona kuti isu tiri mwero tichaguma sei logins, uye kupedza tokens. Kana marobhoti ari kuwana saiti, maviri echinhu chokwadi anogona kuve akaoma sezvavanogona kupinda makodhi panguva imwe chete iyo mushandisi akadaro. Kurova izvi, ngatishandise muenzaniso mumhando yemashandisirwo, kuzivisa kuti isu tinoshanda sei neyesaiti kana isu tisingateerere muchinhu chechokwadi nefoni nhamba. Isu tichawedzerawo sarudzo yekuziva neemail. Tanga nekugadzirisa iyo mushandisi models ne nano.
nano users/models.py
Izvi ndizvo zvakaitwa nemuenzaniso watinowedzera zvinofanirwa kutaridzika senge. Hatidikanwe chero nzira, kungosiyana-siyana kuti titore ID, mushandisi, iyo timestamp, yekupera, yekuedza kubva kune chero chinhu chakawanda chinhu (kodhi yakaita 123456 yakatumirwa kufoni kana email).
# Chiratidzo chakakosha chinoshandiswa kupinda mu webhusaiti
Ngatiwedzereiwo rombo rakanaka kune mushandisi wedu, uye isu tichaisa pamunzvi zvino, pakupedzisira tisati tatama kunyoresa vashandisi vakarongeka. Mumhando yemashandisi, wedzera iyi mutsara mufaira:
vendor = models.BooleanField(default=False)
Sezvinei nechero shanduko kune database, tinoda kutungamira uye kutama kutama uye kutama database chero nguva isu tinogadzirisa mhando.py faira muDJango. Rangarira, kuita izvi isu tishandise sosi kutanga (kana isingashandiswe kare kubvira pyminal yaive yakavhurika) uye ipapo python manage.py kuti itambure kutama uye kutama.
cd project-directory-you-named # (Kana zvichidikanwa)
Izvozvi, iwe unogona kunyorera chero maaniko maakaunzi aunogadzira sevatengesi nekushandisa ganda.
python manage.py shell
from users.models import Profile
p = Profile.objects.get(user__username='Charlotte')
p.vendor = True
p.save()
exit()
Zvino, ngatishanduke chedu chinhu chetsiva chechokwadi kuona kuti kushandisa chiratidzo ichi. Kutanga, isu tinofanirwa kushandura yedu MFA Biler Shandiswa? Uchishandisa 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
# Simbisa mushandisi uchishandisa yavo email kana nhamba yefoni
token = MFAToken.objects.filter(uid=username, expires__gt=timezone.now() + datetime.timedelta(seconds=30)).order_by('-timestamp').last() # Cheka Chiratidzo neKukoshe Pasi mu 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)) # Kana chikamu ichi chisati chagadzirwa, chigere
user = User.objects.filter(id=token.user.id).first() # Tora mushandisi kubva kuChiratidzo
if not user and request.user.is_authenticated: return redirect(reverse('feed:home')) # Kana vatove vakasimbiswa, vanovarongedza mukati
if not user: raise PermissionDenied() # Kuramba kana pasina mushandisi akawanikwa
if not user.profile.enable_two_factor_authentication and user.is_active and user.profile.check_auth_token(usertoken, token): # Tarisa uone Auth chiratidzo
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Log mumushandisi kana vasati vatove mukati
user.profile.mfa_expires = timezone.now() + datetime.timedelta(minutes=settings.LOGIN_VALID_MINUTES) # Gadza kupera pane yavo yakawanda fainter chokwadi
return HttpResponseRedirect(next if next != '' else reverse('landing:landing')) # Dzosera mushandisi kune inotevera peji
if not user.profile.mfa_enabled: # Tarisa uone kana mFA yakagoneswa
if not check_verification_time(user, token): # Tarisa nguva
user.profile.mfa_enabled = False # Bvisa nhamba yefoni
user.profile.enable_two_factor_authentication = True # Gonesa MFA
user.profile.phone_number = '+1' # Dzima nhamba yefoni
user.profile.save() # Chengetedza iyo mbiri
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Log mushandisi mune kana mapo yavo isingagone
if request.method == 'POST' and not fraud_detect(request, True): # Kana chikumbiro chiri chikumbiro chekutumira
form = TfaForm(request.POST) # Kusimbisa fomu
code = str(form.data.get('code', None)) # Tora kodhi
if code and code != '' and code != None: # Ita shuwa kuti haina chinhu
token_validated = user.profile.check_auth_token(usertoken) # Tarisa uone Auth chiratidzo
is_verified = check_verification_code(user, token, code) # Tarisa kodhi yacho
if token_validated: # Kana zvese
if is_verified: # Iri muhurongwa
user.profile.mfa_enabled = True # Gonesa MFA (Kana isiri yatogoneswa)
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Log mumushandisi
for key, value in request.GET.items(): # Kuvaka querytring yetevera paramende (kana paine)
return HttpResponseRedirect(next) # Redirect
elif not token_validated: # Kana Chiratidzo chaisafanira
if p.mfa_attempts > 3: # Kana kwaive nekuedza kwakawanda
if form.data.get('send_email', False): # Tumira iyo email (kana mavara)
# Ipa iyo fomu (yekuwana zvikumbiro)
Kana isu tiri kuwedzera mune ino kodhi, ita shuwa yekupinza basa rekutumira email. Pamusoro pefaira, iyo mushandisi maonero (nezvimwe zvinopiswa), wedzera
from .mfa import send_verification_email as send_mfa_verification_email
Zvino, isu tinofanirwa kunyora izvo kushanda pamberi pechimwe cheizvi kuchashanda. Inofanira kuwedzera yedu kutumira email basa, uye ingo tumira email kune mushandisi nekodhi yekuzivisa.
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))
Saka izvi zvese zvinoshanda zvikuru, ikozvino isu tine yakawanda facor yekusimbisa iyo inoenderana nenhamba yefoni kana email kuti tipewo nzira yekubvisa, kana kuti inovanza vashandisi vasiri kushandira pamwe neyako mazwi. Izvi zvinogona kunge zviri spammers, marobhoti kana chero munhu asingarevi zvakanaka pabasa redu. Tarisa uone maonero andinaye ekutarisa vashandisi pane yangu webhusaiti:
# kupinza
from .tests import is_superuser_or_vendor # Isu tichazoda kugadzira iyi bvunzo
# Tora rondedzero yevashandisi
return render(request, 'users/users.html', { # Dzorera vashandisi mune template
Ziva kuti kodhi iyi inoshandisa bvunzo, isu tinoda kuzivisa iyi bvunzo mumuedzo.py faira uye kuendesa iyo. Kugadzirisa vashandisi / bvunzo.py, ngatiitei bvunzo.
def is_superuser_or_vendor(user):
return user.profile.vendor or user.is_superuser
Izvi zviri mukubatana nevashandisi / vashandisi.html template, iyo inotaridzika sechinhu chakadai:
Ziva kuti template inosanganisira imwe template, vashandisi /mushandisi.html. Paunenge uchishandisa template ine subtemplate uye isiri kushandisa inowedzera, iyo yakanaka zano kuwedzera pasi pasi () Usati waita zita refaira rekuwedzera, kuitira kusiyanisa matemplate.
Ziva kuti iyi ndeye yakawanda Jinja, iwe unogona kunge usina ese eaya akasiyana siyana akatsanangurwa. Asi izvi ndizvo izvo kodhi yangu inoratidzika sei.
<small># {{{mushandisi.id}} </ diki>
Isu tinodawo imwe subtemplate, toggle_ctive.html. Iyi template inofanira kunge iri fomu iyo inotibvumira kuti titore kana mushandisi achishanda.
Isu tichazodawo kuwedzera maonero kuti atange basa remushandisi, uye yakakodzera url mapatani. Tichiri pariri, ngatiwedzere maonero kuti abvise mushandisi kana isu tinoda izvozvo.
# Kupinza
success_url = '/' # Iyo redirect pane kubudirira URL
def test_func(self): # Bvunzo kana mushandisi ari superuser uye ane mvumo yekudzima
Kunyange izvi zvichiripo pazvinenge zvichidikanwa, kudzima mushandisi hakufanirwe kuve kwakakodzera kazhinji kwenguva, tinogona kungoita kuti tisvike pakuonekwa kwevashandisi vanoshanyira nzvimbo kana tichida kuvadzinga.
Iyo URL mapatani atakawedzera anotaridzika seizvi. NaNA NAN, Rongedza vashandisi / Urls.py uye wedzera mitsara iyi:
nano users/urls.py
Mitsetse inofanira kuenda mune rondedzero yenzira dziri mumaonero emushandisi, pamberi pekuguma "]" asi mushure mekutanga "[".
# ...
# ...
Zvino, ita shuwa kuti udzorere saiti kuitira kuti iwe ugone kuirodha pawebhu server isu ticharamba tichishanda. Kubva pamutsetse wekuraira,
sudo backup
Zvino yedu saiti inotsigirwa.
Saka ikozvino tine mashoma mashoma anobatsira maficha. Asi zvakadiniko nezve mufananidzo mukuru pano? Iyi kodhi ichiri kuwanikwa kubva kuInternet, isu hatina tsamba server yeseva yedu, uye isu tinoda kuwedzera basa rekusimbisa riripo kuti vatibatsire kuongorora saiti, pamwe chete nemafungiro akachengeteka ekutenda vashandisi vane rombo rakanaka.
Tichasvika pazvinhu izvi zvese. Chinhu chinonyanya kukosha ikozvino chingangove chiri kutora kodhi iyi online, izvo zvatingaite nemitsetse mishoma yebhasi pane ubuntu server. Iwe unozoda kurenda server iyi kunyange, kunze kwekunge uine seva kumba uye bhizinesi reInternet kunyorera iro rinokutendera iwe kuti uvhure mbichana. Ini pachangu ndinomhanya webhusaiti yangu pane hp z440 iyo yakaiswa mufurati rangu, asi kazhinji zvakachipa zvakanyanya kuti zvibodzwa zvekutanga kubhadhara kune Virtual Server (VPS).
Ramba uchifunga kuti iyo kodhi yatiri kumhanya izvozvi haina kuonda, ichazoda kuchengetedzwa uye yakagadziridzwa tisati tagadzirira kushandisa izvo zvatinofanira kuvaka chigadzirwa. Ita shuwa kuti uchenjere zvaunoita neInternet, ita shuwa kana iwe ukatumira iyi saiti pachena kune webhusaiti yeLinux Izvi zvinogona kunge zvichisvika dambudziko pakutanga, asi isu ticha tarisa akasiyana-siyana mhinduro dzekurwisa izvi, kusanganisira kudzidza muchina kudzidza, kungwara kwekungwarira uye chiratidzo chemakomputa. Kana zvave dambudziko, tarisa zvakare mune urwu rugwaro rwemhinduro.
Panyaya yekubhadhara vps, kune nzvimbo dzakawanda dzaunogona kuenda. Google Cloor ine VPS Seva, Ionos, Kamatera, Amazon Aws, uye vanopa vanopa gore rinopikisa server solutions rinozokodzera zvatinoda.
Iwe unofanirwa kudzvanya kuburikidza nemafomu avo uye sarudza chirongwa chekutanga. Iwe unogona kuenda nechirongwa chekutanga ne chero muridzi, asi ita chokwadi chekuti anokubvumidza iwe kuti uvhure Port Server Server Server Parizvino ndakave neruzivo rwakanakisa neIonos naKamatera, vese vari vaviri vachanditendera kuti nditumire email isina muganho uye mitengo yavo yakachipa.
Iwe uchabatanidza kune yako nyowani server pamusoro protocol inonzi ssh Paunosimudza server, muridzi wemuviriri anogona kunge achizogona kukubvunza iwe kuti uwedzere kiyi yeSHH, kana kuti ivo vachakupa zita rekushandisa uye password. Iyo ssh kiyi ndeyekuti iwe uchapinda sei kune server kubva kumutsara wekuraira kuti atore kodhi. Shandisa iyo pazasi ssh-keygen sarudzo kuti ugadzire iyo ssh kiyi.
ssh-keygen
Sevha iyo faira uye ichinyora iyo kana iwe uchifanira kudaro, zvakanaka kutenderedza makiyi ako eSSH kana usati watove. Zvino, iwe unogona kushandisa iyo inotevera mirairo kuti uone yako ssh kiyi. Iwe uchazoda kutevedzera iyo kune yako kure server kuti iwe ugone kuishandisa kuratidza.
cat ~/.ssh/id_rsa.pub
Kana iwe usingakwanise kuona kiyi yeSHH kana ichinyora kuraira kuti (tambo refu yemavara uye ssh-rsaa kiyi ")
ssh-keygen -t rsa -b 4096
Gadzira vps kumhanya Ubuntu, zvisinei iwe unoronga kuita izvi. Paunenge uchinge wagadzira vPs nekudzvanya mufomu pane iyo maficha ewebhusaiti Iwe zvakare unofanirwa kuve nehanya neyekutaura kusername zita rekusarudzika pane server yatinosika, semuenzaniso, ubuntu.
ssh ubuntu@XX.XX.XX.XX
Iwe unogona kukumbirwa password, kana iwe ukabvunzwa password, pinda iyo mukati. Hatisi kuzotanga zita rekushandisa, saka ngatitange nekugadzira mushandisi mutsva uye kuwedzera kiyi yeSSH kune account yavo.
Ngatitange nekuwedzera iyo nyowani sshd_config faira, iyo inotaurira server maitiro ekushandisa ssh.
nano sshd_config
# Iyi ndiyo sshd server system-yakakura yekugadziriswa faira faira. Ona
# Sshdc_config (5) Kuti uwane rumwe ruzivo.
# Iyi sshd yakaunganidzwa nenzira = / yeUSR / yemuno / sbin / sbin / yemuno / bin / sbin / bin: / sbin: / bin: / bin / mitambo
# Iyo zano rinoshandiswa sarudzo mune default sshd_config yakatumirwa ne
# Opensh ndeyekutsanangurira sarudzo nekukosha kwavo kukosha kupi
# zvinogoneka, asi vasiye ivo vachiti. Zvisina kuremerwa sarudzo dzinopfuura
# default kukosha.
# Port 22
# Afterfamily chero
# TeereraSadddress 0.0.0.0
# Teerera ::
# Hostkey / etc / ssh / ssh_host_rsa_key
# Hostkey / etc / ssh / ssh_host_ECDSA_key
# Hostkey / etc / ssh / ssh_host_ed25519_key
# Ciphers uye Keying
# Rekeylivit default hapana
# Logging
# SyslogfaCality Auth
# Logleevel Info
# Kusimbiswa:
# Logingracetime 2m
# Mvumo yekutenda inorambidza-password
# Zvakanyanyisa
# Maxauto 6
# Maxsessions 10
# Tarisira .ssh / mvumo_keys2 kuti isaratidzwe ne default mune ramangwana.
# MvumoPrinciPialsfile hapana
# MvumoSkeysCommand hapana
# MvumoSkeysCommanduser hapana
# Kuti izvi zvive kushanda iwe uchazodawo most most makiyi mu / etc / ssh / ssh_noct_host
# Hostbhessauthentivation kwete
# Chinja kuva hongu kana iwe usingavimbi ~ / .ssh / inozivikanwa_Hosts ye
# Hostbhessauthentivation
# Kuregera kuregerwa kwete
# Usaverenga mushandisi's ~ / .Rhosts uye ~ / .Shoss mafaera
# Inoregedza hongu
# Kudzima Tunneled Quage mavara ezvinyorwa, shandura usa pano!
# KubvumidzaPassypasswords kwete
# Shanduko kuna Yes
# Mamwe mapundu emamipi uye tambo)
# Kerbros Sarudzo
# KermberorosauthECECEY HAPANA
# Kerbrosorlcalcalswnloadwd hongu
# Kerberolicksketcleanup ehe
# Kerbrositageftstop a
# GSsAPI Sarudzo
# Gssapiathentivation kwete
# Gssapicicanupcredials hongu
# Gssapistcacthertorchkeck hongu
# GssapikeyExchange kwete
# Isa izvi kuti 'Hungu' kugonesa PAM kusimbiswa, kugadzirisa account,
# uye chikamu chekugadzirisa. Kana izvi zvakagoneswa, PAM chokwadi ichaita
# bvumidzwa kuburikidza neKbdinteractivation uye
# Password. Zvichienderana nePam yako gadziriro,
# Pam kusimbiswa kuburikidza neKbdintectiviversAuthentation inogona kupfuura
# kuiswa kwe "mvumo yekutenda pasina-password".
# Kana iwe uchingoda iyo Pam account uye chikamu cheki inotarisa kumhanyisa pasina
# Pam kusimbisa, wobva waita kuti izvi asi set password
# uye kbdinteractiversauthivation kune 'kwete'.
# Kubvumidza
# Kubvumidzwa kweiyo hongu
# Gatewayports no
# X11displayoffset 10
# X11uselocshost ehe
# Bvumidza hongu
# Prindlaslog Hongu
# Tcpkeepalive hongu
# Bvumidzai bvumidza kwete
# Kumanikidza Kunonoka
# Craffaliveinterval 0
# Chando chezvevatengi 3
# Zvinoshandiswa kwete
# Pidfile /run/shd.pid
# MaxstartPs 10: 30: 100
# Mvumo Kwete
# Chrootdirectory hapana
# Shanduroaddendum hapana
# hapana default banner nzira
# Bvumira mutengi kuti ipfuure locale mamiriro ekunze
# Override default yekusava subsystems
# Muenzaniso wezvirongwa zvakakura pane imwe-mushandisi hwaro
# Mechi mushandisi anoncvs
# X11 Nekuti kwete
# Kubvumidzwa kwete
# Bvumidza kwete
# Forminmand CVS Server
Rangarira, Ctrl + x uye y kuti uchengetedze iyo faira. Tevere, ngatinyorei chinyorwa chakakosha chinonzi tangire (zvese zviri mumusha wekudzvanya wekushandiswa kwemushandisi wedu).
nano initialize
Wedzera mitsara iyi kune iyo faira, kutsiva
# ! / bin / bash
Kuti ufambe iwe kuburikidza nefaira iyi, ngatitange mutsara mutsara. Mutsetse wekutanga unotaurira iyo compiler yekuti ichi chiShasi script. Ipapo isu tiri kuisa mharidzo, kutevedzera shsd Isu tinowedzerawo timu kuboka reSudo, gadzira kiyi yavo yeSSH, wedzera kiyi yedu kuti vatendeke makiyi uye yavo zvakare, uye purwisa kiyi yavo. Uyu mushandisi mutsva achave mabatiro atinoita mune saiti.
Mune mutsva terminal, enda mberi uye uvhure server zvakare.
ssh team@XX.XX.XX.XX
Iwe haufanire kuda password panguva ino, kuve seyako ine ssh kiyi. Isu takaremara zvakare kupinda nepassword kuti tirambe saiti yakachengeteka.
Zvino, seva iyi inotanga zvakakwana isina ruzivo pasina ruzivo pariri. Ngatitangei nekuvhara chirongwa chedu kubva ku git kuti tikwanise kudhanilodha uye kuimhanyisa pamushini uri kure. Paira iri kure yakabatana pamusoro peSSH, tanga printa yako SHH Kiyi:
cat ~/.ssh/id_rsa.pub
Tevere, isa kiyi iyi mune git zvigadziriso sezvatakaita tisati tamisa yedu git repository. Tinogona ikozvino kunyura chirongwa chedu zvakananga kuseva. Ita shuwa kuti iwe wakadzosera projekiti yako yekutanga saka iri pane iyo git server yekurodha.
git clone git://github.com/you/yourproject.git
Kukwana. Zvino mafaera ese ari pano. Tinogona kuvaona ne ls
ls
Zvino, ngatitange kumisa seva. Kutanga, teedzera yako projekiti dhairekitori kuita iri nyore, isingakanganwike zita ratichashandisa chirongwa ichi.
cp -r yourproject whatyoucalledit
Kupi "Wheneyoucledit" izita idzva rebasa rako. Tevere, isu tichazoda kuvaka basa rekutanga kuseta server. Tichaponesa ichi chinhu uye tishandise mune ramangwana. Kuvaka iyi yekushandisa, ngatiitei mushandisi Binary kutsanangura magadzirirwo atinoita script. Uchishandisa bash, edit / usr / bin / macript
sudo nano /usr/bin/ascript
Ita shuwa yekushandisa sudo ipapo saka iwe une mvumo yekugadzirisa iyo faira. Mufaira, wedzera mitsara iyi:
# ! / bin / bash
echo "# ! / bin / bash ">> / usr / bin / $ 1
Rangarira script iyi inotora nharo, iro zita renje, se $ 1. Kutanga inotarisa kana iyo faira riripo, kana neimwe nzira inogadzira, inowedzera mutsara wekutanga kuti azivise Script is Bashis, uye etc / macrips kuti isu tinoita kuti titore mazita ezvinyorwa zvatiri kugadzira. Kana iyo faira ratovepo, ingoshandura mvumo uye kurongedza. Sevha iyo faira, uye inotevera isu tichachinja mvumo. Chero bedzi isu tinoshandisa iyi script, hatizofaniri kuita izvozvo zvakare.
sudo chmod a+x /usr/bin/ascript
Kukwana. Zvino ngatiitei script yaidaidzwa setup. Kutanga, kwete kukuremedza iwe, asi tarisisa izvo script yangu inotaridzika sezvinoita. Tichafamba kuburikidza nezvinoita script iyi chakaita seprojekiti yako, haudi zvese zviri mugwaro rangu kutanga.
# ! / bin / bash
# sudo cachmo + x zvinyorwa / vashandisi
# ./scripts/usersetup
# ssh-keygen
# Project Directory
# Log mirairo
# Nano conmig
# Git config
# Gadziridza uye isa
# Gonesa CLAMAV Antivirus
# Gadza Hostname
# Setup postgres
# Setup Database Backup
# Dzima Iptables
# Isa bitdefender
# Setup postfix
# Gadzira DRS
# Setup virrualenv
# Tora uye uvake kutsamira
# Gadza Firewall Mitemo
# Isa pypi deparsency
pip3 install --upgrade opencv-python # == 4.5.4.60
pip3 install --upgrade opencv-contrib-python # == 4.5.4.60
# pip yekuisa kuvhura-python == 4.5.5.64
# PIP yekuisa Opencv-Prof-python == 4.5.5.64
# Isa Certbot
# Mhanya Certbot
# Rodha zvakare tsamba server
# Copy copy
# sudo cp /etc/litencrypt/live/femmebabe.com/privky./Prrvakey.Pem Front.PEM
# sudo cp /etc/letsencrypt/live/femmebabe.com/cert.pem creti.pem
# Patch VenV
# Set Zvirongwa zveMushandisi
# Gadza Mvumo
# sudo chow -r timu: vashandisi / var / kumhanya /
# sudo akachekwa midzi: midzi / kumhanya / sudo / ts -r
# sudo chizd 664 db.sqlite3
# Sudo Chown Chown www-data: Users Db.Sqlite3
# Kopa copig uye seta mvumo
# Setup Database
# Inisa Pam confiig uye bvisa Faulty Ssh configi
# sudo sed -i '' -e '$ d' /etc/pam.d/sshd
# sudo sed -i '' -e '$ d' / etc / profile
# Kopa bin zvinyorwa uye seta mvumo
# Rodha zvakare uye gonesa masevhisi
# Gonesa Apache Modules
# sudo a2dmod mpm_event
# sudo a2dmod mpm_worker
# sudo a2enmod mpm_prefork
# Dzima nzvimbo default
# Gonesa yedu saiti
# Reload daemon uye restart apache, postfix uye opendimim
# Gadza Mvumo
# Swap inogadziriswa
# Init capting injini
# Setup Git
# Ratidza IPV6 uye Opendkim yeDomain Kugadziriswa
# Setup yapera
Ndiro rakawanda setup! Muchidimbu, iyi code logy mirairo, inogadzirisa nano uye git, makopi pamusoro pefaira, inogadzirisa moto (inogadzirisa mireya), inoremedza mirecable, downloads antivirus, anoita madimikira, anoita madhairekitori, machira Kuzvimiririra, kuisirwa zvitupa uye kuisimbisa server, kuisirwa server, kunotanga uye kunoita kuti sed iyo, inoisa mvumo, uye prints iyo IP, IPv6 kero uye mependkim kiyi. Zvakanaka nyore, asi zvinoita kunge kodhi yakawanda. Hatizoda zvakawanda zveizvi nekuti hatina kutsvakwa, hatisi kushandisa celery, celerybeat kana daphne, asi isu tichazoisa vamwe vavo zvakadaro kuti vatange. Ona kuti iyi kodhi ine domain yakaziviswa kakawanda.
Tichazodawo kutenga zita rezita rekutonga (iro riri mubhadharo wegore rimwe chete). Ini ndinokurudzira mrabacepace yekutenga dura, yavo chimiro chinonzwisisika uye chiri nyore kushandisa. Unogona kutenga chero domain yesarudzo yako, asi ndiri kushandisa domain Femmabe.com mune uyu muenzaniso. Paunenge watenga domain, musoro kune scarmspace dns yekugadzirisa pane iyo pane rekodhi kunongedza yako domain kune server ne IP kero. Zvinofanira kutaridzika seizvi:
@ A xxx.xxx.xx
Naiyo @ anoshandisa seya host, zvinoreva zvese zvigunwe pasi peiyi domain uye iyo midzi domain ichaita zvese zvinoteedzera kune seva. Kune mamwe marekodhi ekuzivisa, asi isu tinogona kufambira mberi kune izvi kana tagadzirira kutumira tsamba. Ramba uchifunga, zvinogona kutora mazuva akati wandei usati wabvisa kutumira tsamba kubva kuseva. Iyo DNS marekodhi isu tiri kugadza ichatora nguva yekuparadzira.
Zvisinei, chinyorwa chega chatinoda kutanga chinyorwa. Saka ikozvino isu tinogona kuzadza pazasi script maererano nekristu redu tobva rimhanya.
Ngatitangei neicho chidiki chidimbu chekutanga kuisa izvo zvatinoda kufambira mberi. Hatisi kuzoshandisa zvakawanda zvakatsikirira kana postgresql zvakadaro, isu tinongotanga iyo yakakosha http server uye kunetseka nezve kuzviratidza kana izvo zvaitwa. Rangarira, kuti uwane chitupa cheHTTPS uye unomhanya server zvakachengetedzeka, isu tichazoda kutenga domain pamwe chete ne rendi server. Parizvino, dzosera "timu" mune ino faira nezita remushandisi wako, "Dir" nedhairekitori yako purojekiti, uye ipa yako email uye dura mune <> tag.
Pamusoro pezvo, tisati tamhanya iyi kodhi, tinofanirwa kushandura marongero emadziro emoto anotsigira anotsigira, kana paine. Kazhinji izvi zviri mu 'network' tab yeMupi wako anogamuchira, kana kana iwe uri kuzvitarisira, ayo mu 'Port kutumira' chikamu chemuviri wako. Iwe zvakare uchada kumisikidza iyo NTATIC IP kuburikidza neyako router nekero yemuchina wako server, kana uri kushandisa kuzvishandira. Iwe unozoda kuvhura zvitoro zvinotevera zvekuverenga / kunyora kupinda.
22 (ssh) 25 (mail) 587 (mail) 110 (Email Mutengi) 80 (http) 443 (HTTPS)
# ! / bin / bash
# Log mirairo
# Nano conmig
# Git config
# Gadziridza uye isa
# Gonesa CLAMAV Antivirus
# Gadza Hostname
# Setup Database Backup
# Dzima Iptables
# Setup virrualenv
# Isa Certbot
# Mhanya Certbot
# Set Zvirongwa zveMushandisi
# Gadza Mvumo
# sudo chow -r timu: vashandisi / var / kumhanya /
# sudo akachekwa midzi: midzi / kumhanya / sudo / ts -r
# Rodha zvakare uye gonesa masevhisi
# Gonesa Apache Modules
# Reload daemon uye restart apache, postfix uye opendimim
# Ratidza IPV6 uye Opendkim yeDomain Kugadziriswa
Usati wamhanyisa iyi kodhi, ita shuwa kuti iyo dura iwe yaunotenga yakabatana neseva. Kuti uite izvi, vhura terminal pane yako yemuchina wemuchina, uye mhanyisa uyu murairo neako domain:
ping femmebabe.com # isa domain yako pano, mushure mekuramba
Kana zvese zvichitaridzika zvakanaka uye server iri kutumira mhinduro, isu takagadzirira kumhanya script uye kuisa mapakeji uye kutanga, gadzire uye kusimbisa yedu Apache server.
Izvi hazvisi zvese setup inodiwa kugadzirisa postfix, isu ticha tarisa iyo setup yakawanda gare gare. Parizvino, ridza iyi setup kodhi uye inofanira kutora maminetsi mashoma kuisa uye kusimbisa server yako. Zvekare zvakare, ita shuwa kutsiva zita, email uye zita rezita mune script maererano nezita rawakatenga.
Izvozvi zvekuti server inopihwa, iwe unogona kuenda ku URL mune chero webhu browser uye tarisa kuti uve nechokwadi chekuti server iri kumhanya https. Kana zvisiri, edza kumirira chinguva chidiki cheDNS marekodhi kuti ubate uye wozomhanya iyo inotevera mirairo yekudzokorora chitambi chitupa:
sudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com
Chero bedzi iwe uchigadzira zvese zvakanaka, iwe unofanirwa kukwanisa kuwana gadziriso yeApache's Default peji kungoziva yako kodhi iri kushanda uye kuratidza peji rekugara. Tevere, ngatishongedzei zvigadziriso.py kuti ichinje yedu default default mode kugadzirwa. Isu tichagadzirisawo dura mumarongero, pamwe neIPS yemukati.
nano yourproject/settings.py
Mune marongero, chinja / wedzera mitsara iyi.
# Nzvimbo yesaiti
Zvino, isu tichazoda kugadzirisa apache2. Ngatishei faira refigi isu tichaendesa nemutsara uyu:
sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf
Iyi faira yekugadzirisa inofanirwa kuve nezita redu rezita mariri, uye zita remushandisi uye chirongwa. Ndiri kushandisa iyo domain zita femmabe.com, iyo username timu, uye chirongwa chezita rechimedu hwechikadzi.
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>
Ita shuwa kutsiva zita reprojekiti, madhairekitori, uye dura mune iyi muenzaniso kodhi kana uchigadzirisa seva yako. Zvino, isu tichazoda kudzima nzvimbo yekuzvitakura. Izvi zvinogona kuitwa uchishandisa bash.
sudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl
Tevere, isu tinogona kugonesa nzvimbo yekugadzirisa uye reload apache2, zvakare ichishandisa bash. Rangarira kutsiva Femmabe nezita refaira rawakazivisa kana kurongedza mu / etc / apache2 / saiti-inowanikwa /.
sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2
Dzokera kune yako dunhu muNavbar. Iwe unofanirwa kuona saiti iwe waunofunga mune yako webhu browser. Makorokoto! Ukasazviona, ungangoda kuchinja. Nyatsoongorora zvigadziriso muProjekiti yako, Apache gadziriso, uye ita chokwadi chekuti hauna kana zvikanganiso, uye mhanyisa mirairo inotevera kuti utarise chirongwa chekukanganisa.
cd projectname
source venv/bin/activate
python manage.py check
Kana iwe uine zvikanganiso mune yako python chirongwa, uzviteedzere kwavanova uye vavadzorere. Iwe unogona kunge usingakwanise kuona zvese zvaunokanganisa zvichienderana nekwavari, saka kana uine chikanganiso chinongoti "Pfupi faira iri munharaunda chaiyo, regist.py, kuburitsa kukanganisa.
nano venv/lib/python3.12/site-packages/django/apps/registry.py
Scroll to line 83, uko iyi Runtime kukanganisa inomutswa (Simudza RunimeError ("Pfupi () haisi yekutaura")) Izvi zvinotaridzika seizvi:
# Dzivirira Reentrars mafoni kuti udzivise kumhanya applicd.Ranga ()
# Nzira kaviri.
# Simudza RunimeError ("Popate () haisi reentrant")
Iwe unogona ipapo tarisa chirongwa zvakare uye kuburitsa kukanganisa.
python manage.py check
Ipapo iwe unogona kuona kukanganisa uye kuigadzirisa. Paunenge wakarongedzwa uye iyo kodhi inoenderana nekukanganisa, ita chokwadi chekuchinja iyo faira kumashure saka zvinoita kunge izvi:
# Dzivirira Reentrars mafoni kuti udzivise kumhanya applicd.Ranga ()
# Nzira kaviri.
# pachako.App_configs = {}
Yakapa seva iri online, kana isu tichiita chero shanduko kwazviri, tinoda kushandisa iyo inotevera mirairo yekudzoreredza seva:
sudo systemctl reload apache2
Zvikuru! Asi zvakadiniko nekutumira tsamba? Kutanga kutumira email, isu takatanga kuda kugadzirisa iyo domain yekugadziriswa. Izvi zvinofanirwa kunge zviri muDNS yako yeDNS mune mrabacepace, kana chero domain zita registrar iwe wakasarudza. Tichazodawo kuisa uye kuwedzera gadziriro, uye mhanya mirairo mishoma.
Kutanga, ngatitore kero yeIPV6 ye server. Isu tinobva tavhura dns yako uye wedzera zvinyorwa.
Kuti uwane iyo IJV6 yeIPV6 kero, shandisa uyu murairo:
ip -6 addr
Zvino, tinogona kuwedzera zvinyorwa zvinotevera kune iyo DNS marongero. Zvinyorwa zvangu zvinotaridzika seizvi. Nekudaro, nekuda kwemarekodhi ako, iwe unofanirwa kutsiva iyo IP kero neIP yako (kwete 75.147.182.214, ndiyo yangu). Zvakare wedzera yako dunhu munzvimbo yeiyo Fembabe.com Usatombo kunetseka nezve durain ikozvino, izvi zvakasikwa patinoisa posfix, iyo tsamba seva, ine opendim, uye purwisa kiyi. Isu tichagadzirisa izvi zvekupedzisira.
@ A N / a 75.147.182.214
@ MX 10 fembeze.com
@ Ptr N / a fembeze.com
@ Txt N / a TXT @ v=spf1 mx ip75.147.182.214ip6:fe80::725a:fff:fe49:3e02 ~all
Default._bimi Txt N / a v = Bimi1; l = https: //femmebabe.com/femmebabe.com/femmebabe.com/Pemmebabe.com/Memebabe.com/Memebabe.com/Memeabeb
_DMMC Txt N / a v = dMMMS1; p = hapana
Sendonly._domainkey
Txt
N / a
Zvino, isu tinofanirwa kuwedzera kumwe kuratidzira kuraswa kwePostfix. Zvese zvatinoda kuti tiite shuwa kuti takatsiva zita rezita reMitomain, Femmabe.com, nezita rezita rauri kushandisa. Ngatitarisei tese config faira imwe neimwe, uye nekuvadzosera mune dhairekitori inonzi configiri yedu, yekuisa kune os.
nano config/etc_postfix_main.cf
Wedzera iyi mavara kune iyo faira
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# DERIAN YAKANYANYA: Taura zita refaira rinoita kuti yekutanga
# mutsara weiyo faira kuti ishandiswe sezita. Defian default
# Is / etc / mailname.
# myorigin = / etc / mailname
# kuwedzera. Domain ndiyo basa raJesu.
# Usingaiti mutsara unotevera kuti ubudise "kunonoka tsamba" yambiro
# kunonoka_warning_ nguva = 4h
# Ona http://www.Postifix.org/Compomprafible_Adml - Default kusvika 3.6 on
# kutsva.
# Tls parameter
# Mauto anogadziriswa
Inotevera clong!
nano config/etc_postfix_master.cf
Wedzera mitsara iyi:
#
# Postfix Master process yekugadziriswa faira. Zvemashoko ari pachimiro
# yefaira, ona Tenzi (5) bhuku remanyorero (rairo: "Man 5 Master" kana
# On-line: http://www.postfix.org/master.5.html).
#
# Usakanganwa kuuraya "postfix reload" mushure mekugadzirisa iyi faira.
#
# ==================================================================
# Sevhisi Type Yakavanzika Unprrr
# (Hongu) (Hongu) (kwete) (kamwe) (100)
# ==================================================================
# SMTP Inet n - Y - 1 PostScreen
# SMTPD Pass - - Y - - SMTPD
# Dnsblog Unix - - Y - 0 DNSBLOGL
# TLSPROXYIX UNIX - - Y - 0 TLSPROXY
# Sarudza imwe: Gonesa kutumira kune loopback vatengi chete, kana chero mutengi.
# 127.0.0.1:Subms inet n - Y - - SMTPD
# -o syslog_name = postfix / kutumira
# -O SMTPD_TLS_SECY_LEEL = Encrypt
# -O smtpd_sasl_Auth_enable = hongu
# -O SMTPD_TLS_ATH_ONI = Ehe
# -O smtpd_reject_unlation_cenced = kwete
# -O SMTPD_CLIENT_restirtions = $ Mua_client_restions
# -O SMTPD_HELO_rastions = $ Mua_helo_restions
# -O smtpd_sender_rastions = $ Mua_sender_rartions
# -O SMTPD_TeVents_restirtions =
# -O smtpd_relay_rstions = mvumo_sasl_sasl_simbisa, kuramba
# -o milder_macro_daemon_name = kutanga
# Sarudza imwe: gonesa smtps ye loopback vatengi chete, kana chero mutengi.
# 127.0.0.1:smtps inet n - Y - - SMTPD
# smtps inet n - y - - smtpd
# -O SysLog_name = postfix / smtps
# -O smtpd_tls_wrappermode = hongu
# -O smtpd_sasl_Auth_enable = hongu
# -O smtpd_reject_unlation_cenced = kwete
# -O SMTPD_CLIENT_restirtions = $ Mua_client_restions
# -O SMTPD_HELO_rastions = $ Mua_helo_restions
# -O smtpd_sender_rastions = $ Mua_sender_rartions
# -O SMTPD_TeVents_restirtions =
# -O smtpd_relay_rstions = mvumo_sasl_sasl_simbisa, kuramba
# -o milder_macro_daemon_name = kutanga
# 628 Inet n - Y - - QMQPD
# QMgr Unix n - N 300 1 oqmgr
# -O SMTP_HELO_Timeout = 5 -O SMTP_CONNNECT_MEOT = 5
#
# ============================================================
# Interfaces kune isiri-postfix software. Ive neshuwa yekuongorora bhuku
# Mapeji eVasina-Postfix Software kuti uone kuti ndedzipi sarudzo dzaunoda.
#
# Mazhinji emasevhisi anotevera anoshandisa iyo posfix pombi (8) kuburitsa
# mumiririri. Ona pombi (8) peji peji yeruzivo nezve $ {anogamuchira}
# uye mamwe maitiro emashoko envelope sarudzo.
# ============================================================
#
# maivanga. Ona iyo postfix maudrop_Anreadme faira kune ruzivo.
# Tsanangurawo mu main.cf: Mildrop_destination_repient_limit = 1
#
#
# ============================================================
#
# Dzichangopfuura dzeKorussions dzinogona kushandisa iyo iripo "LMTP" Master.cf kupinda.
#
# Taura mu cyrus.conf:
# LMTP CMD = "LMTPD -A" Teerera = "Localhost: lmtp" proto = tcp4
#
# Taura mu main.cf imwe kana kupfuura yeinotevera:
# mailbox_transport = lmtp: Inet: Councalhost
# Virtual_transport = LMTP: Inet: Councalhost
#
# ============================================================
#
# Koreshi 2.1.5 (Amosi Gouuaux)
# Zvakare taura mune main.cf: cyrus_destination_repient_limit = 1
#
# Cyrus Unix - N N - - PIPE
# Mireza = DRX mushandisi = cyrus argv = / cyrus / bin / kuendesa -E -R $ {SERER} -m $} $ {Externess}
#
# ============================================================
# Muenzaniso wekare wekutakura kuburikidza neKoreshi.
#
# Old-Corrus Unix - N N - - PIPE
# Mireza = r mushandisi = cyrus argv = / cyrus / bin / kuendesa -e -m $ {extension} $ {mushandisi}
#
# ============================================================
#
# Ona iyo postfix uucp_readme faira yegadziriro yekugadziriswa.
#
#
# Dzimwe nzira dzekunze dzekutumira.
#
Uye iyo Opendim inogadziriswa. Opendkim inozivisa maseva emisangano ine makiyi ekutonga kuti uvaite zvakachengeteka. Pasina iyo, tsamba haina kusaina uye inogona kusazviita kune inbox.
nano config/etc_default_opendkim
Wedzera mitsara iyi:
# Ongorora: Iyi ndiyo nhaurwa yekugadziriswa kwefaira. Izvo hazvishandiswe neiyo Opendim
# Systemd Service. Ndokumbirawo ushandise iyo inoenderana inoenderana paramita mu
# /etc/penkkim.conf panzvimbo.
#
# Pakutanga, mumwe angatora zvigadziriso zvigadziriso pano, ouraya
# /lib/Opendkim/edpendkim.Sepedr.gegenerate kuti audze system yekunyanyisa mafaera pa
# /etc/systemd/system/opedkim.serv.d/override.conf uye
# /etc/tmpfiles.D/pepkkim.conf. Nepo izvi zvichiri kuitika, ikozvino
# Yakakurudzirwa kugadzirisa zvigadziriso zvakananga mu /etc/penkkim.conf.
#
# Daemon_opts = ""
# Chinja ku / var / Spool / postfix / run / OpenDkim kushandisa iyo unix socket ne
# Postfix mune Chroot:
# Rundir = / Var / Spool / Postfix / Run / OpenDkim
#
# Kusagadzikana kudoma imwe socket
# Ziva kuti kuseta izvi kuchawedzera chero socket kukosha muaposendim.conf
# Default:
# Teerera pane zvese zvisungo paPort 54321:
# Socket = inet: 54321
# Teerera pane Loopback paPort 12345:
# Socket = Inet: 12345 @ localhost
# Teerera pane 192.0.2.1 Port 12345:
# Socket = Inet: 12345@192.0.2.1
nano config/etc_dovecot_conf.d_10-master.conf
Wedzera mitsara iyi:
# default_process_limit = 100
# default_client_limit = 1000
# Default vsz (Virtual memory size) muganho webasa rebasa. Izvi zvinonyanya kuitika
# yakagadzirirwa kubata uye kuuraya maitiro ayo ekusvetuka ndangariro vasati vadya
# zvese.
# default_vsz_limit = 256m
# Login mushandisi inoshandiswa mukati neyekupinda maitiro. Uku ndiko kusavimbika
# mushandisi muDovecot system. Izvo hazvifanirwe kuwana chero chinhu zvachose.
# Default_Login_user = Dovenull
# Mushandisi wemukati anoshandiswa nemaitiro asina kuvharwa. Inofanira kunge yakaparadzaniswa kubva
# Login mushandisi, saka kuti login maitiro haakwanise kukanganisa mamwe maitiro.
# Default_Inter_user = Dovecot
# port = 143
# port = 993
# SSL = Ehe
# Nhamba yezvibvumirano zvekubata usati watanga maitiro matsva. Kazhinji
# Iwo chete anobatsira anobatsira ari 0 (isina muganho) kana 1. 1 inonyanya kuchengetedzwa, asi 0
# inokurumidza. <Doc / Wiki / Loginprocess.txt>
# sevhisi_count = 1
# Nhamba yemaitiro ekugara achigara uchiramba uchimirira zvimwe zvinongedzo.
# process_min_avail = 0
# Kana iwe ukaisa sevhisi_count = 0, iwe ungangoda kukura izvi.
# vsz_limit = $ default_vsz_limit
# port = 110
# port = 995
# SSL = Ehe
# port = 587
# Gadzira inet Mutengesi chete kana iwe usingakwanise kushandisa iyo yepamusoro UNX socket
# Inet_Listener LMTP {
# Regedza kugadzira lmtp inooneka yeInternet rese
# Kero =
# port =
# }
# Yakawanda yeiyi ndangariro inoenda kuMmap () ing mafaera. Ungangoda kuwedzera izvi
# muganho kana uine mabhokisi makuru emabhokisi.
# vsz_limit = $ default_vsz_limit
# Max. Nhamba yeImap maitiro (kubatana)
# maitiro_limit = 1024
# Max. Nhamba ye pop3 maitiro (kubatana)
# maitiro_limit = 1024
# Max. Nhamba yeSMTP kutumira maitiro (kubatana)
# maitiro_limit = 1024
# Auth_Socket_path inonongedza kune iyi userdb socket nekutadza. Zviri Kazhinji
# inoshandiswa neDevecot-LLDA, DoveAdm, pamwe Imap Process, etc. Vashandisi vane
# zvizere mvumo kune iyi socket inokwanisa kuwana rondedzero yemashoko ese uye
# Tora mhedzisiro yemunhu wese mushandisi anotaridzika.
#
# Iyo default 0666 maitiro inobvumira chero munhu kuti abatanidze neSocket, asi
# userdb inotarisa ichabudirira chete kana iyo userdb ichidzosa "uid" munda uyo
# inoenderana neyekufarisisa process uid. Zvakare kana iyo caller's uid kana gid inoenderana ne
# Socket's UID kana GID iyo yekutarisa inobudirira. Chero chimwe chinhu chinokonzera kutadza.
#
# Kupa anofona akazara mvumo yekutarisa vashandisi vese, isa modhi kuti
# chimwe chinhu kunze 0666 uye dovecot inoita kuti kernel isimbe
# Mvumo (i.e. 0777 inobvumira munhu wese kuzere mvumo).
# Maitiro anoshanda anomhanya kunge mudzi nekusvibiswa, kuti zvive zvekuwana
# / etc / mumvuri. Kana izvi zvisina kudikanwa, mushandisi anofanira kuchinjwa kuti
# $ default_inter _user.
# mushandisi = midzi
# Kana DICT Proxy inoshandiswa, maitiro Email anofanirwa kuve nekuwana kune iyo socket.
# Semuenzaniso: Mode = 0660, boka = VMail uye Global Email_access_group = VMail
# maitiro = 0600
# mushandisi =
# boka =
Zvekare zvakare, ita shuwa kutsiva iyo dura mune ese eaya mafaera, veMimba Gadzirisa iyo inotevera faira, Dove's configi,
nano config/etc_dovecot_dovecot
Uye wedzera mitsara iyi
## DoveCot inogadziriswa faira
# Kana iwe uri mukukasira, ona http://wiki2.dovecot.org/quicConConfiguration
# "Doveconf -n" Command inopa chakachena chakabuditswa chemamiriro akachinja. Shandisa
# Panzvimbo ye copy & mafaira mafaera kana kutumira kuDovecot kutumira tsamba.
# '# 'Hunhu uye zvese mushure mekunge zvarapwa sekutaura. Zvimwe nzvimbo
# uye tabo hadzifuratirwe. Kana iwe uchida kushandisa chero yeizvi zvakajeka, isa iyo
# value inside quotes, eg.: key = "# char uye trailing whitespace "
# Zvakanyanya (asi kwete ese) marongero anogona kuve akanyanya kuwanda nemaprotocol akasiyana uye / kana
# Kunobva / Kuenda IPS nekuisa zvigadziriso mukati medzimba, semuenzaniso:
# protocol imap {}, yemuno 127.0.0.1 {}, iri kure 10.0.0.0/8 {}
# Default tsika dzinoratidzwa kune imwe neimwe mamiriro, haina kudiwa kuti isasaremerwa
# izvo. Izvi zvinopihwa kune izvi zvakadaro: Hapana zvikamu (i.e. Namespace {})
# kana plugin marongero anowedzerwa nekusarudzika, ivo vanonyorwa chete semienzaniso.
# Nzira zvakare inongova mienzaniso pamwe neiyo chaiyo defaults iri yakavakirwa pane gadziriso
# Sarudzo. Nzira dzakanyorwa pano ndeyokugadzirisa --PREFIX = / USR
# --sysconfdir = / etc --LOCAtalstatedir = / var
# Gonesa yakaiswa protocols
# Iyo comma yakaparadzaniswa runyorwa rweIps kana host
# "
# Kana iwe uchida kudoma zvisingaiti-default zvimiti kana chero chinhu chakaoma kunzwisisa,
# edit conc.d / master.conf.
# Teerera = *, ::
# Base dhairekitori uko kuchengeta runtime data.
# base_dir = / var / kumhanya / Dovecot /
# Zita rechiitiko ichi. Mune akawanda-muenzaniso setup Doveadm uye mamwe mairairo
# inogona kushandisa -I <muenzaniso_name> kusarudza iyo muenzaniso inoshandiswa (imwe nzira
# ku -c <config_path>). Iro remuenzaniso zita rinowedzerwa kune Dovecot maitiro
# muPS kubuda.
# semuenzaniso_name = Dovecot
# Kukwazisa meseji kune vatengi.
# Login_greeting = Dovecot yakagadzirira.
# Nzvimbo yakaparadzaniswa runyorwa rwekuvimbwa network. Kubatana kubva pane izvi
# Ips anotenderwa kufudza ma kero yavo ye IP uye madoko (ekutema uye
# zvekusimbisa mazwi). Disable_Plaintext_thih inorambidzwawo
# Aya mambure. Kazhinji iwe unotsanangura yako IMAP Proxy serverers pano.
# Login_trusted_Temics =
# Nzvimbo yakaparadzaniswa runyorwa rwekutarisa kwekutarisa zvigadziko zvigadziko (i.eg tcpwrap)
# Login_access_sockets =
# Ne proxybe = hongu kana proxy yekuenda inoenderana chero yeiyi IPS, usaite
# kunyudzwa. Izvi hazvigoneke kazhinji, asi zvinogona kubatsira kana kwaunoda kuenda
# IP ndiE.E. mutoro Balancer's IP.
# Auth_Proxy_UZE =
# Ratidza zvimwe verbose maitiro mazita (munaPS). Parizvino inoratidza zita remushandisi uye
# IP kero. Inobatsira kuona kuti ndiani ari kunyatsoshandisa iyo imap maitiro
# (semuenzaniso. Akagoverwa mailbox
# verbose_proctitle = kwete
# Maitiro ese anofanirwa kuurayiwa apo Dovecot Master maitiro anovhara.
# Kuisa izvi ku "kwete" zvinoreva kuti Dovecot inogona kukwidziridzwa pasina
# kumanikidza zviripo zvemutengi kubatanidza kuvhara (kunyangwe izvo zvinogona zvakare
# Dambudziko kana iyo iyo kusimudzira iri i.e. nekuda kwekugadziriswa kwekuchengetedza).
# Shutdown_clients = hongu
# Kana zvisiri-zero, runum mail mirairo kuburikidza neiyi yakawanda kubatana kuDoveadm server,
# Panzvimbo pekumumhanya zvakananga nenzira imwecheteyo.
# Doveadm_worker_count = 0
# Unix socket kana host: Port inoshandiswa kubatanidza kune Doveadm server
# Doveadm_Socket_path = Doveadm-server
# Nzvimbo yakaparadzaniswa runyorwa rwezvemamiriro ekunze izvo zvakachengetedzwa paDovecot
# Startup uye akayambukira kune ese emwana ayo maitiro. Unogona zvakare kupa
# Key = Kukosha vaviri vaviri kuti vagare vachiisa chaiyo marongero.
# Import_envaronment = tz
##
## Duramazwi Server Zvigadziriso
##
# Duramazwi rinogona kushandiswa kuchengeta kiyi = kukosha zvinyorwa. Izvi zvinoshandiswa nevazhinji
# plugins. Duramazwi rinogona kuwanikwa rakananga kana zvakadaro a
# Duramazwi server. Iyo inotevera divha yekuvhara mamepu emamita ekududzira mazita kune uris
# Kana seva yashandiswa. Izvi zvinogona kubva pakuratidzwa uchishandisa uris muchimiro
# "Proxy :: Zita>".
# Quota = MySQL: /etc/dovecot/Worvecot-st-lc.dc.ext
# Yakawanda yekugadziriswa chaiko kunobatanidzwa pazasi. Mazita efaira ari
# yekutanga yakarongedzwa neAscii kukosha uye kwakarongedzwa nenzira iyoyo. Iyo 00-prefixes
# Mumadhenames anoitirwa kuti zvive nyore kunzwisisa kurongeka.
# Faira refidhi inogona zvakare kuedza kuverengerwa pasina kupa chikanganiso kana
# Izvo hazvina kuwanikwa:
# Inobvumira Dovecot kuti uteerere kune ese ekuisa exput kubatana (IPV4 / IPV6)
Wedzera password yeiyo Dovecot Mushandisi:
nano config/etc_dovecot_passwd
Chikamu chekutanga chefaira, pamberi pekoloni, izita rezita. Chikamu chekupedzisira, "Chishamiso", chinoreva password iwe yaungada kupa yako tsamba server.
team:{plain}yourpassword
Inotevera, iyo Opendim configigi
nano config/etc_opendkim.conf
Uye wedzera mitsara iyi:
# Uku ndiko kurongedza kwekutanga kwekusaina uye kuratidza. Inogona kuve nyore
# yakagadziridzwa kuti ienderane nekuiswa kwekutanga. Seevymit.conf (5) uye
# /usr/share/doc/opedkim/examples/Oppasskim.conf.Samp.Samplo yePedzisa
# zvinyorwa zvezvinowanikwa ma parameter emahara.
# Logwhy Kwete
# Kufananidza uye kuongororwa paramita. MuDhian, iyo "kubva ku" musoro
# yakafukidzwa, nekuti kazhinji ndiyo kiyi yekuzivikanwa inoshandiswa nemaitiro ekudzidzira
# uye nokudaro kuchengetedzeka kwakachengetedzeka.
# Kusaina domain, leferor, uye kiyi (inodikanwa). Semuenzaniso, ita kusaina
# for domain "saym.com" ine sarudza "2020" (2020 "(2020._domainkey.exambe.com),
# Uchishandisa kiyi yekuvanzika yakachengetwa mu /etc/dkimkeys/example.private. Zvimwe granular
# Sarudzo dzekusarudza dzinogona kuwanikwa mu /usr/share/doc/Opedkim/Quiverme.Opendkim.
# Dommiscount the |
# Selector 2020
# Keyfile /etc/dkimkeys/example
# MuDhian, Opendkim inomhanya semushandisi "Opurendkim". A Umask ye 007 inodiwa kana
# uchishandisa socket yemunharaunda ne mtas inowana iyo socket seisina-rombo
# mushandisi (semuenzaniso, postfix). Iwe ungangoda kuwedzera mushandisi "postfix" kune boka
# "Opendkim" mune izvozvo.
# Socket yeiyo maura kubatana (inodikanwa). Kana mita iri mukati mechirojasi chiro,
# Inofanira kuve nechokwadi chekuti socket inowanikwa. MuDhian, Postfix Inomhanya In
# Chirozi in / var / Spool / postfix, saka iyo unix socket yaizofanira kunge iri
# Yakagadzirirwa sezvakaratidzwa pamutsetse wekupedzisira pazasi.
# Socket Local: /run/Opendkim/Oppondem.mack
# Socket Inet: 8891 @ localhost
# Socket Inet: 8891
# Host for that to to to sign pane kuti uone, default ndeye 127.0.0.1. Ona iyo
# Operation chikamu cheSopendkim (8) kuti uwane rumwe ruzivo.
# International 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
# Iyo Trust anchor inoita kuti DNSsec. MuDhian, iyo Trust anchor faira inopihwa
# nepakeji dns-midzi-data.
# Nameservers 127.0.0.1
# Mepu Domain In Kubva Kumakero kune makiyi anoshandiswa kusaina mameseji
# Seti yemagariro emukati ane tsamba inofanirwa kuwayirwa
nano config/etc_default_opendkim
Uye wedzera mitsara iyi
# Ongorora: Iyi ndiyo nhaurwa yekugadziriswa kwefaira. Izvo hazvishandiswe neiyo Opendim
# Systemd Service. Ndokumbirawo ushandise iyo inoenderana inoenderana paramita mu
# /etc/penkkim.conf panzvimbo.
#
# Pakutanga, mumwe angatora zvigadziriso zvigadziriso pano, ouraya
# /lib/Opendkim/edpendkim.Sepedr.gegenerate kuti audze system yekunyanyisa mafaera pa
# /etc/systemd/system/opedkim.serv.d/override.conf uye
# /etc/tmpfiles.D/pepkkim.conf. Nepo izvi zvichiri kuitika, ikozvino
# Yakakurudzirwa kugadzirisa zvigadziriso zvakananga mu /etc/penkkim.conf.
#
# Daemon_opts = ""
# Chinja ku / var / Spool / postfix / run / OpenDkim kushandisa iyo unix socket ne
# Postfix mune Chroot:
# Rundir = / Var / Spool / Postfix / Run / OpenDkim
#
# Kusagadzikana kudoma imwe socket
# Ziva kuti kuseta izvi kuchawedzera chero socket kukosha muaposendim.conf
# Default:
# Teerera pane zvese zvisungo paPort 54321:
# Socket = inet: 54321
# Teerera pane Loopback paPort 12345:
# Socket = Inet: 12345 @ localhost
# Teerera pane 192.0.2.1 Port 12345:
# Socket = Inet: 12345@192.0.2.1
Patakagadzirira kumisikidza yedu postfix server, isu tichamhanya pazasi kodhi, neiyo yakakodzera domain zita rakanyudzwa. Kutanga nekugadzira script
touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup
Zvino, muNano, iyo yeChinyorwa mupepeti, gadzirisa iyi faira saka inosanganisira zita rako rezita panzvimbo yeimba yeimba.Commembere.com.
# ! / bin / bash
# Setup postfix
Zvino, mhanya script yakazadziswa kuti ugadzirise postfix, opendkim uye dovecot.
./scripts/postfixsetup
Kamwe script iyi yamhanya, teedzera iyo yekupedzisira mutsara iyo inodhinda uye kuiisa mune yako dns kugadziriswa sekukosha kweStonly._Domainkey. Iyi ndiyo mhinduro ye opendkim inoshandiswa kuona yako domain kana kutumira tsamba yakachengeteka.
Zvikuru! Mukati memazuva mashoma, iwe unofanirwa kukwanisa kutumira tsamba kubva kune server yakapa zvese zvakagadzirirwa nemazvo.
Kana iwe uchingogadzirira iyo DNS yereva yako server, inofanirwa kutora zvisingasviki maawa makumi manomwe neshanu emarekodhi ekugadzirisa. Kazhinji zvinokurumidza. Iwe unogona kutarisa kana server yako iri kushanda nekushandisa uyu murairo, wapiwa yako email:
echo "test" | mail -s "Test Email" youremail@gmail.com
Kana zvese zvichiratidzika kunge uri kushanda nemazvo, iwe unofanirwa kuve nekutumira email neserver yako. Kana zvisiri kushanda, edza kutarisa matanda kuti uone kuti kukanganisa kungave kupi.
tail –lines 150 /var/log/mail.log
Izvi zvinopa ruzivo rweverbose nezve tsamba iri kutumirwa neserver uye kana iri kushanda nemazvo. Iwe unofanirwa kukwanisa kuona iyo email mune yako inbox zvakare, kana isiri ipapo, tarisa yako spam folda.
Iwe zvakare uchazoda kugadzirisa zvigadziriso zvako mumidziyo yako.py yako email server inogona kutaura neyako django app, chirongwa. Wedzera kana kutsiva mitsara iyi mumidziyo yako
EMAIL_HOST_USER = 'team' # 'Love@mamasheen.com'
Cherekedza kuti tiri kushandisa faira refigi kuti utore password. Ngatitongei iyi faira mumarongero akadaro, pakutanga kwefaira .:
# Vhura uye mutoro config
Ngatiitei iyi faira uye wedzera chakavanzika kiyi kwazviri, pamwe ne password password. Kugadzira kiyi yakavanzika, shandisa uyu murairo, uine chero ureba hwaunoda kumagumo:
openssl rand -base64 64
Zvino, teedzera iwo mavara anogadzirwa uye edit /etc/config.json
sudo nano /etc/config.json
Wedzera mitsara inotevera kune yako faira, ine kiyi iyo inoshanda yakagadzirwa seyakavanzika kiyi.
{
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"EMAIL_HOST_PASSWORD": "yourpassword"
}
JSS fomati iri nyore uye iri nyore kushandisa, tinogona kuzivisa dzimwe makiyi dzatinoda kushandisa nenzira yedu nenzira ino saka vamwe vashandisi havagone kuverengera kubva kune yedu projekiti dhairekitori chete. Izvi zvinokurudzirwa kudzidzira makiyi eAPI, isu tichashandisa zvinopfuura zvishoma pano.
Iwe unoda zvakare kudzosera chirongwa chako kuti uve nechokwadi chekuti zvese zvinoponeswa uye iwe uchave uchikwanisa kudzosera basa rako gare gare kunyangwe iwe usisiri kuda kurenda server.
sudo backup
Zvino, edza kutumira iyo HTML email kubva kuWebhu server, yakapihwa kutumira kubva kune mutsara wekuraira uri kushanda. Query yako mushandisi muenzaniso mugodhi, uye utumire iyo HTML email kune iyo mushandisi kuburikidza neDjango. Chinja zita rangu mukodhi, Charlotte, kune yako Username.
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()
Kana iyo yekutanga kuraira isingashande, ita chokwadi chekushandisa
source venv/bin/activate
Yakapihwa zvese zvakamiswa nemazvo, iwe unozowana email inogamuchirwa mubhokisi rako retsamba rakatumirwa newebhu yako yeWebhu. Basa rakanaka! Wauya nenzira refu.
Ini ndaida kuwedzera, kana iwe uchinetseka nezvikanganiso chero zvipi zvikanganiso paunenge uchishanda pane chirongwa chakadai, usazeza kutsvaga mhinduro uye kukumbira rubatsiro. Google, pakati peimwe injini dzekutsvaga, zviwanikwa zvikuru zvekutsvaga rubatsiro rwechirongwa. Ingotsvaga kukanganisa kwamuri kuwana, uye iwe uchave unokwanisa kuona kuti vamwe vanhu vanogadzirisa sei dambudziko iri. Zvakare, iwe unogamuchirwa kuti ubate, vadzidzisi vako (vadzidzisi, vevaporofiti, vadzidzisi veInternet vanowanikwa rubatsiro, kana kubvunza bhuku iri kana zvimwe zviwanikwa kuti vawane mhinduro kune izvo zvauri kusangana nazvo. Ini ndinonzwisisa izvi hazvisi nyore, asi kunyangwe kana iwe wakaverenga mune izvi kure uye usiri kunyora chero kodhi, uri kudzidza zvakawanda nezvekuvaka webhu webhu. Pat iwe pachako kumashure, uri kuita basa rakakura.
Ndatenda nekutora nguva yekuverenga iyi yechitatu edition webhu. Mune shanduro dzeramangwana, ini ndichasanganisira yakawanda yemienzaniso yakakosha yakurukurwa pakutanga kwegwaro uye isu tichanyura zvakadzama munyika ye software uye kusimudzira Hardware. Gara wakamanikidzwa kuti uuye, uye ini ndinotarisira kukudzidzisa iwe nzira yekuvaka inoshamisa software. Ndokuona iwe mune inotevera edition!
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
.جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
.جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
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.
جي ذريعي Daisy / ڏسڻ | خريداري ڪريو | خريد ڪريو Cryptocreaty
https://glamgirlx.com
https://glamgirlx.com -
هن ايڊريس کي استعمال ڪندي مون کي بٽڪن ۾ هڪ ٽپ ڇڏيو. 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE