Kuphunzira Kwambiri Kwambiri ndi Kutetezedwa Kwachitsanzo

DaisyChithunzi cha Mbiri

Ndi Daisy

Practical Web Based Deep Learning and Security by Example Third Edition Charlotte Harper July 3, 2024 Updated/Converted June 3, 2025 Foreword: Security considerations in building software for the web are an important part of any web developer's plan and execution while engineering a prototype that is dependable, stable, and useful for practical purposes. The DOM (Document Object Markup), with it's implementation of HTML, JavaScript, and CSS as well as backend software implementing Python, C/C++, Java and bash, give web developers the freedom and power to create a wide variety of projects that express creativity, provide ease of use and functionality, portray humility and character, and provide ease of use as well as convenience and important services that are all attractive to the average Joe, the end user looking to kill time or get something done on the internet, usually on a touchscreen smartphone device. Most people wouldn't even know where to start when they want to build a website from scratch, they would tend to start on another person's website and build something limited in functionality, dependability, ease of use and especially creativity when they could have had all the latest powerful tools at their disposal in order to build something useful without wasting time pressing buttons, and especially wasting money paying for expensive subscriptions to software few people wanted to use anyway given it's limitations in ease of use and flexibility. If you have a few minutes to read through this book and learn what I want to teach you, or even speak with me personally about your goals and get some guidance in the right direction, and are motivated to learn to code and write your own software, take this book home and set aside some time to learn to build the next influential, powerful, streamlined and important web application, a website that is all on you and does exactly what you want and meets the needs of your audience. About me: I am a software developer with a wide range of experience in C/C++, Java, Python, HTML, CSS and JavaScript. I build websites people want to use, want to visit, and even get addicted to using just to learn, recreate and kill time, and most importantly, I sell software. If you had an idea as to exactly how you wanted a website to look and function, you were willing to support me so I can meet my own needs while I meet yours, and you are willing to cover the costs of running a website yourself, I would build you the next YouTube, TikTok, Twitter, Google, or even a high-tech security app only you can access. Instead of trying to sell you my time, I'm trying to buy yours: I want to talk you into building an app (website) yourself with the information that already exists, and teach you what you need to be an independent software developer, entrepreneur, leading a successful career in whatever field you desire. And let me be clear, the education I give you will be informal. You could go to school and learn all of this with a formal education, or even read this book in school, complete your assignments, and take away a great deal from your education, but I won't formally put you in the hot seat and ask you to complete assignments. I'm not your professor, you can think of me like a friend who wants to guide you toward a career driven by your own personal success. And I'm not selling you success either, you will need to buy it with your time. Learning to code has a steep learning curve and was never easy, or even supposed to be. You need to work as hard as you possibly can and continue to try and fail and try again even when you are frustrated in order to learn and build apps yourself. That's in the nature of code itself. Code is run by a compiler that is designed to give the programmer error messages, and these will teach you how to code, even if you are simply copying the error into your search engine and reading other people's examples. And I must say, you don't need to be extremely rich, smart, successful, or even detail oriented or organized to build an app. The computer takes care of that organization for you. You just need to persevere through the trial and error, maintain focus and work hard at what you do, and you will have a very successful career in the entirety of what you do. Who I am: I realize that the last section was more about learning and your take a ways from this book. Who am I exactly? That's a complicated question. I am unclear on that myself, as I suffer from medical conditions that can make it difficult for me to even code or write this book at times, while presenting challenges with socialization and identity issues that make my life more difficult when it comes to introducing myself. In short, if you are reading this book, you brought it home because you flipped through it and thought it was useful, or even if you just read this far in, to you I am a like minded individual who wants to see you succeed in everything that you do. I am an engineer myself, a software developer, and a student, and I am writing this book for other students who want to make their lives easier by having a handbook of the software they need making their lives easier by giving examples to copy that fit together like a big puzzle into a working, useful, large, functional, cohesive, and engaging app that can drive success no matter the line of business. Largely, this is what I do: I build apps to help myself and other people succeed. I am an author as well, though this is my first publication that I intend to complete in order to put my portfolio together into a useful document, and I am an artist as well. I'll admit this to you, I'm sort of a strange person. I'm not perfect, I've had run ins with the law even leading me to leave colleges and universities and leave states in order to try to make a name for myself with more success. I am a woman by birth, I wear makeup, take photos of myself, wear dresses and other womens clothing, and I stay conscious of myself as a female by nature. I've had issues with other people in the past that lead to struggles with writing and building webapps, and I apologize that I haven't been able to get this book in your hands sooner: You needed this. You will want to read and write code that looks like mine and works like mine and does the same thing but even better, because if you can afford to buy this book instead of mashing your keyboard like I do just to create a book yourself asking money for it, you have the resources you need to be successful in your life. I had all sorts of issues with family growing up, health conditions, doctors, the media, and the law, and my code deeply reflects the struggle that is feminism and female nature in a divided and frustrated world. However, this book is something I deeply care about, my baby, my portfolio, and my livelihood, so I appreciate your consideration when you take the text home and carefully pore over it in order to learn from me. Please keep in mind I am not perfect, this book will have errors, revisions, and new editions, and you will need to think with your logical brain as best you can in order to have a successful experience with my writing. Also, understand that I mean well for you even when you face challenges when writing. Think about it like this: When you can just rent a computer system to do anything you can possibly imagine in the digital space, store all the information you encounter, analyze and organize it, and come to understand it, you will inevitably encounter difficulties with the information you are ingesting and even publishing. I tell you this because I encounter the same difficulties. Use this book at your own risk, work with your community and communities available to you to build software within a safe setting, and don't take things to personally when you fail or even succeed in the wrong way: That's how I got this far, and why I can bring you this text and help you succeed without diverging off on a path of madness that leaves me ruined, torn and frayed while I encounter the ordinary problems everyone does on a global scale thanks to the paralellistic global scale of the network on which we will work, the internet. You might not be very familiar with who I am with just a few words, but I encourage you to read on, you will get to know me as you continue to read and understand me while building your own projects to complete your work. There will be no homework with this book, as long as your professors or teachers don't assign you any, but I highly encourage you to build a portfolio of projects yourself as you read along, as well as a capstone project showcasing how you can apply what you have learned. My capstone project is the basis for most of what you will read in this book, as it incorporates code from my previous projects, code I have created and learned to write methodically by hand, and a wide range of ideas and tips that have helped me succeed to the point where I can spin up a simple app that is fully featured and looks and behaves like a popular app you might see your friend or family using, on the internet, advertised to you, or in the news. What this book is: This book is a tutorial by example. You can find code here, instructions for how to learn to code, information on debugging code and fixing errors, troubleshooting steps, instructions on how to back up and save your code, re-deploy if anyone breaks your code, secure your code, deploy your code, build interactive websites that are entertaining, engaging, and addictive, and you will get a sense of who I am, why this is important, and how to portray yourself, your app and company image, as well as the software you build in the absolute best light to be the most attractive as possible to your end users, your website's visitors. In this book, I will demonstrate a number of examples of software design with a focus on the web as a platform as well as security. We will initiate the learning experience ...
Kuphunzira Kwambiri Kwambiri ndi Kutetezedwa Kwachitsanzo

Kuphunzira Kwambiri Kwambiri ndi Kutetezedwa Kwachitsanzo Malingaliro Achitatu Charlotte Harper Julayi 3, 2024 Kusintha / Kutembenuka June 3, 2025

MAFUNSO OTHANDIZA:

Kuganizira kwambiri mapulogalamu omanga pa intaneti ndi gawo lofunikira pa mapulani aliwonse omwe ali ndi mapulani omwe ali ndi mapulogalamu omwe ali odalirika, okhazikika, komanso othandiza potsatira. Dongosolo (Chidziwitso Cholembera), ndikukhazikitsa HTML, JavaScript, ndi CSS Wosuta wosuta akufuna kupha nthawi kapena kuti achite china chake pa intaneti, nthawi zambiri pa chipangizo cha SlatcyRen. Anthu ambiri sakanadziwa komwe angayambire pomwe akufuna kupanga tsamba lazomwe amagwiritsa ntchito ndalama zambiri komanso kusinthasintha. Ngati muli ndi mphindi zochepa kuti muwerengere bukuli ndikuphunzira zomwe ndikufuna kukuphunzitsani za zolinga zotchuka, ndikulemba pulogalamuyi yophunzira ndikukwaniritsa zomwe anzanu mukufuna.

Za ine: Ndine wopanga mapulogalamu okhala ndi zokumana nazo zingapo mu C / C ++, Java, Python, HTML, CSS ndi JavaScript. Ndimanga mawebusayiti omwe akufuna kugwiritsa ntchito, akufuna kukaona, komanso ngakhale mutayamba kugwiritsa ntchito kungophunzira, ndikupha nthawi, ndipo koposa zonse, ndimagulitsa mapulogalamu. Mukadakhala ndi lingaliro momwe mungafunire tsamba lanu kuti muoneke ndikugwira ntchito, inu mukufunitsitsa kukwaniritsa zosowa zanga, ndipo inunso mungakumane ndi pulogalamu yaukadaulo yokha yomwe mungapeze. M'malo moyesa kukugulitsani nthawi yanga, ndikuyesera kugula yanu: Ndikufuna ndikulandani kuti mupange pulogalamuyi (tsamba) ndi chidziwitso chomwe chikufunika kale, ndikuphunzitsa zomwe zikuyenda bwino mu gawo lililonse lomwe mukufuna. Ndipo ndiroleni ndiwoneke, maphunziro omwe ndimakupatsani ungakhale mwamwayi. Mutha kupita kusukulu ndikuphunzira zonsezi ndi maphunziro, kapenanso kuwerenga bukuli kusukulu, malizitsani ntchito yanu, koma sindingakuyikeni mu mpando wotentha ndikufunsani kuti mulalikire. Ine sindine pulofesa wanu, mutha kumandiganizira ngati mnzanga amene akufuna kukuwongolera ntchito yoyendetsedwa ndi kupambana kwanu. Ndipo sindikukugulitsani bwino mwina, muyenera kugula ndi nthawi yanu. Kuphunzira ku code kuli ndi kupindika kophweka ndipo sikunali kophweka konse, kapenanso kuyenera kukhala. Muyenera kugwira ntchito molimbika momwe mungathere ndikupitilizabe kuyesa ndikulepheranso ngakhale mutakhumudwitsidwa kuti muphunzire ndikudzipangira nokha. Ndizo mu chikhalidwe cha nambala yokha. Khodi imayendetsedwa ndi wophatikiza yemwe wapangidwa kuti apatse mauthenga olakwika, ndipo awa adzakuphunzitsani momwe mungagwiritsire ntchito nambala, ngakhale mutangokongoletsa cholakwika mu injini yanu ndikuwerenga zitsanzo zanu. Ndipo ndiyenera kunena, simufunikira kukhala olemera kwambiri, anzeru, opambana, kapenanso okhazikika kapena opangidwa kuti apange pulogalamu. Makompyuta amasamalira bungwe limenelo. Muyenera kuti mupirire kudutsa mayesero ndi cholakwika, khalani ndi chidwi ndikuyesetsa pazomwe mumachita, ndipo mudzakhala ndi ntchito yabwino kwambiri pazomwe mumachita.

Ndine ndani: Ndikudziwa kuti gawo lomaliza linali lochulukirapo pophunzira ndi kutenga njira zanu zochokera m'bukuli. Ndine ndani kwenikweni? Ndilo funso lovuta. Ndine wonyansa ndekha, ndikuvutika ndi zinthu zamankhwala zomwe zingandivutitse kapena kulemba bukuli nthawi zina, ngakhale kulimbana ndi mavuto omwe moyo wanga umavuta. Mwachidule, ngati mukuwerenga bukuli, mumabweretsa kunyumba chifukwa mumangoganiza kuti zinali zothandiza, kapena ngati mungawerengere munthu amene mukufuna kuti muchite bwino pa chilichonse chomwe mumachita. Ndine wopanga ndekha, wopanga mapulogalamu, ndi wophunzira, ndipo ndikulemba bukuli kwa ophunzira ena omwe akufuna kukhala ndi buku lothandiza kuti akhale ndi buku labwino kwambiri kuti azichita bwino ngakhale mutakhala kuti bizinesi. Makamaka, izi ndi zomwe ndimachita: ndimalimbikitsa mapulogalamu kuti ndizithandiza ndekha kuti ndikwaniritse anthu ena. Ndine wolemba komanso uwu ndi buku langa loyamba lomwe ndikufuna kumaliza mbiri yanga kuti ndiyike chikalata chothandiza, ndipo ndine wojambula. Ndivomereza izi kwa inu, ndine munthu wachilendo. Sindine wangwiro, ndathamangitsidwa ndi lamuloli ngakhale kunditsogolera kuti ndisiye makoleji ndi mayunivesite ndikusiyitsa mlandu kuti ndichite bwino kwambiri. Ndine mkazi mwa kubadwa, ndimavala zodzikongoletsera, zimavala zovala zanga, ndikuvala zovala zamkati, ndipo ndimakhala ndekha ngati wamkazi mwachilengedwe. Ndakhala ndi zovuta ndi anthu ena m'mbuyomu omwe amabweretsa zovuta zolemba ndi kumanga mawebusayiti, ndipo ndikupepesa kuti sindinathe kupeza bukuli m'manja mwanu posachedwa: Munafunikira izi. Mudzafuna kuwerenga ndi kulemba code yomwe imawoneka ngati yanga ndipo imagwira ntchito ngati yanga ndipo imachitanso chinthu chofananirako, chifukwa ngati mungakwanitse kugula ndalama zanu kuti mungofunsani bwino m'moyo wanu. Ndinali ndi mavuto amtundu uliwonse ndi mabanja omwe akukula, mikhalidwe yaumoyo, madotolo, ndi malamulo anga amawonetsa ndewu yomwe ndi yachikazi m'dziko logawika ndi lachilendo. Komabe, bukuli ndi chinthu chomwe ndimachiganizira kwambiri, mwana wanga, mbiri yanga, ndi njira yanga, motero ndimayamikira kusanthula kwanu mukamaphunzira kwa ine. Chonde dziwani kuti sindine wangwiro, bukuli lidzakhala ndi zolakwa, kusinthana, ndi malembedwe atsopano, ndipo muyenera kuganiza ndi ubongo wanu woyenera kwambiri kuti uzichita bwino. Komanso mumvetsetse kuti ndikutanthauza inu ngakhale mutakumana ndi mavuto polemba. Ganizirani izi: Mukangobwereka dongosolo la kompyuta kuti muganizirepo kanthu pa digito, sungani zidziwitso zonse zomwe mukukumana nazo, muzimvetsetsa, mudzakumana ndi zovuta zomwe mukugwiritsa ntchito komanso ngakhale kufalitsa. Ndikukuuzani izi chifukwa ndimakumana ndi zovuta zomwezo. Gwiritsani ntchito bukuli pachiwopsezo chanu, Gwirani ntchito ndi magulu anu ndi madera anu omwe mungakupatseni mwayi wokhala ndi misala yolakwika kapena ntchito, intaneti. Simungadziwe zomwe ine ndimakhala ndi mawu ochepa chabe, koma ndikukulimbikitsani kuti muwerenge, mudzandidziwa mukamapitilizabe kuwerenga ndikumamvetsetsa ntchito yanu kuti mumalize ntchito yanu. Sipadzakhala homuweki ndi bukuli, bola ngati profesa wanu kapena aphunzitsi anu sakukupatsani mwayi woti muwerenge momwe mungagwiritsire ntchito zomwe mwaphunzira. Ntchito yanga ya zipolopolo ndiyo maziko a zomwe mudzawerenge mu buku lino, monga momwe limaphatikizira nambala yanga yakale yomwe ingathe kufotokozerana bwino ndi momwe mungakhalire, pa intaneti, olengezedwa kwa inu, kapena kulembedwa.

Zomwe Bukhu ili: Bukuli ndi phunziroli mwachitsanzo. Mutha kupeza code apa, malangizo a momwe angaphunzirire kufilimu, chidziwitso chosinthira, amasunga mawebusayiti anu, ndikusunga mawebusayiti anu, ndikusunga mawebusayiti anu, komanso momwe mungadziwire Mapulogalamu omwe mumamanga mu kuwala kwathunthu kukhala wokongola kwambiri momwe angathere ogwiritsa ntchito anu omaliza, alendo anu awebusayiti. M'buku lino, ndikuwonetsa zitsanzo zingapo zamapulogalamu omwe ndikuyang'ana pa intaneti ngati nsanja komanso chitetezo. Tidzayambitsa kuphunzira mwa kupanga ntchito yoyamba pogwiritsa ntchito chigoba cha Unix, ndi zosunga zosunga. Kenako, tikambirana tsamba la blog, sinthani blog yathu ndi chithunzi ndi makanema komanso kugwiritsa ntchito njirazi kuti mugwiritse ntchito njira zotetezera pogwiritsa ntchito pulogalamu yaulere (Pam). Kenako tikambirana mafayilo ndi kukonza, kukonza kusintha kwa makanema, zopereka mawu, kusanthula kwa barcode ndi mawonekedwe owoneka bwino, pakati pa malingaliro ena. Munjira tikambirane Apis iti atithandizire kuti 'Mapulogalamu athu kukhala othandiza komanso otetezeka, ndi njira zaulere komanso zolipirira. Tili m'njira, tiona zida zodzitchinjiriza ndi zida zamiyala komanso zopanga zopangidwa ndi mbiya komanso ma drose and drone. Tidzaphulika m'njira yomanga masewera, ma itonde ndi 3D popereka ma injini, ndipo timagwira ntchito ndi zida zophatikizika pakachitika zitsanzo za pulogalamu yobwereketsa komanso njira zamagetsi zoponyera mu rate. Tili m'njira, tidzagwiritsanso ntchito mayankho ophunzirira amakina omwe alipo kale kuti muteteze pulogalamu yathu. Tizilembanso zida zam'malo zomwe zimapezeka pa intaneti kuti tikhoze kulera ndikutchinjiriza. Bukuli ndi chitsogozo chakuchita bwino pomanga intaneti ndikuwukhazikitsa ndi makompyuta a makompyuta, komanso magwiridwe antchito opangira mapulogalamu kapena chidziwitso cham'mbuyomu.

Zomwe Bukhu ili: Ngati mukufunadi kukhala ndi tsamba lawebusayiti, mutha kungokhazikitsa malo ogulitsira ndikugulitsa zomwe mukufuna, ikani blog, zithunzi, kapena mwanjira inayake osalemba nambala imodzi. Bukhu ili sichoncho. Bukuli likuphunzitseni momwe mungapangire mapulogalamu omwe ndi othandiza kwambiri, othandiza komanso otetezeka kuposa makampani aliwonse omwe mungayendetse, ndipo sakupemphani kuti abwerere ndalama kuti azichita chilichonse. Ngati mungatsatire bukuli mosamala, mudzafuna kulemba code, makalata, muzipanga mapulogalamu anu, ndipo mupanga ndalama pazomwe mumachita. Ndipanga ndalama ku bukuli, ngakhale koyambirira, chifukwa zili ndi chidziwitso cha anthu amafunikira kuti awerenge, ndipo akugula kale akagula kapena kugwiritsa ntchito mapulogalamu anga. Bukuli silimakupangirani pulogalamu yanu, koma idzakulozerani njira yoyenera ndikukupangitsani kuti mulingane ndi mapulogalamu anu mu intaneti, alendo, alendo, ndi anthu a intaneti akufuna kugwiritsa ntchito ndi thandizo.

Zomwe mudzaphunzira: Bukuli likuphunzitsani kupanga mapulogalamu ndi kugulitsa mapulogalamu, mapulogalamu othandiza, makanema ojambuliramo, komanso kusinthitsa mauthenga ngati Bluetooth ndi Pafupi. Bukuli likuphunzitseni kugwiritsa ntchito kompyuta, kuyang'ana pa decoan Linux, kugwirizanitsa mapulogalamu a passwon Chitsimikizo kapena zolinga zina, kusanthula kwa ID, chithunzi ndi makanema otetezeka kuti mapulogalamu anu azikhala otetezeka, pokonza ndalama, ntchito za Cryptocornrecy, ndi zina zambiri. Muphunzira momwe mungapangire zida zanu za Bluetooth, ndi mabatire, zolanda, microcants, machesi, kugwiritsa ntchito waya, zosindikizidwa komanso zosindikizidwa. Ndikuwonetsa maginitsi a 3D omwe amagwiritsidwa ntchito popanga ndi chida chowonjezera komanso kupanga zida zanu, chifukwa chake mumatha kupanga zida zanu zophatikizira, mabatire, mabwalo amagetsi, ndi zopanga zamagetsi. Ndipo muine ndi Bluetooth ndi ukonde. Makamaka, tikambirana kafukufuku wa milandu iwiri, ochita masewera olimbitsa thupi komanso mfuti yonyamula katundu, yomwe imapangidwa ngati mawonekedwe a mawonekedwe osonyeza kapena kuvomerezedwa ndi intaneti. Muphunzira momwe mungapangire tsamba lawebusayiti kuchokera pansi popanda chochitika choyambirira, pangani zothandiza, zotetezeka, zokongola, zokongola komanso zofunikira komanso zofunikira komanso zofunikira komanso zofunikira kwambiri. Muphunzira kugwiritsa ntchito maphunziro a makina ndi masomphenya a makompyuta kuti malo akhale malo otetezeka komanso othandiza, onjezerani mawu anu kuti apange zitsanzo zanu zothandiza kuti mupatse anthu ndi bizinesi yanu. Bukuli lidzayang'ana kwambiri pa TV Bukuli limaphunzitsa UNIX, makamaka Debana (Ubuntu), Bash Shell, PSTML, ndi Mapulogalamu angapo othandiza a Python monga Git ndi FFMPEG. Ndikuphunzitsaninso momwe mungagwiritsire ntchito Cryptocorncy, ndikulipira mu Cryptocorncy kapena kuchokera ku makhadi okhazikika pomwe ngakhale atalipira alendo anu kuti mupange ndalama yanu ngati mungasankhe kutero. Ndikuphunzitsani momwe mungapangire ndalama kuchokera patsamba lanu kudzera patsatsa malonda komanso momwe mungakonzekerere pulogalamu yofufuza Ndikuphunzitsa momwe mungagulitse mapulogalamu anu, kutsatsa, kusangalatsa kwa makasitomala kufunafuna intaneti kudzera mu mawonekedwe omwe alipo, ndizotsika mtengo, komanso kumathandizanso. Ndikuphunzitsani momwe mungasungire deta yanu pamakompyuta omwe amakugwiritsani ntchito ndikusunga tsamba lanu, ndikupanga mafoni anu kuti abweretse batani lanu lokhalo. Bukuli lifotokoza za kukwaniritsidwa ndi kugawa media ambiri, kuchokera pamavidiyo kuti mupange tsamba lotsiriza, ndikupanga, pulogalamu yanu ndi kampani yanu imawoneka bwino m'njira yabwino. Muphunziranso maupangiri ndi machenjera kuchokera kwa ine, kuyambira maupangiri ogwiritsira ntchito, zopanda pake monga zodzikongoletsera zokhala ndi zida zonse zomwe mungafunire popanda kuchita. Bukuli limatchedwa "zothandizaKuphunzira Kuzama Kwambiri ndi Chitetezo Mwachitsanzo Kupititsa patsogolo mawonekedwe, ndi ntchito zina monga zolosera zonenedweratu, monga chithunzi chotsimikizika, kapena chifaniziro cham'madzi, Nkhope. Mutha kupanga kompyuta ya seva iyi yotetezeka iyi, kompyuta yomwe ingakufunseni dzina la IP, kapena ngati mukukonzekera kugwiritsa ntchito pulogalamuyi, kapena ngati pulogalamu yanu (tsamba lililonse lomwe mumagwiritsa ntchito). Aliyense amene amapanga mapulogalamu omwe ali osatetezeka amakhala ndi tanthauzo la zomwe zimatanthawuza. Pulogalamuyi ndi yotetezeka kwambiri chifukwa zida ndi maakaunti omwe timagwiritsa ntchito nthawi zonse sizikhala m'manja mwa aliyense amene ali ndi vuto la mapulotoli. Ichi ndi chinthu chofunikira kwambiri bukuli. Kompyuta yolumikizidwa ndi yotetezedwa ndi chizindikiro chokhazikika, chotchedwa ndi ssh kapena chotetezeka chipolopolo, chifukwa cha seva yazithunzi zimapereka zopezeka ndi zida zachitetezo cha seva. Seva ya pa intaneti ili ndi mwayi wogwiritsa ntchito pa intaneti, yomwe ndi gawo loopsa kwambiri la chipangizo cha wogwiritsa ntchito, chifukwa ndi malo omwe wosuta amatha kugwiritsa ntchito pulogalamu ya pa intaneti. Chidachi chitha kupezeratu mawu, tsamba lomwe mumawona, ndipo limatha kujambulanso zithunzi, madio ndi makhadi otsika mtengo, ndikulemba ndi kutsimikiziridwa pa webusayiti. Kugwiritsa ntchito zida zonse zomwe muli nazo, ndi buku lino mudzadzikomera tsamba lawebusayiti lotetezeka, ndipo muthane ndi kompyuta yotetezeka yomwe imakugwiritsani ntchito

Kumene Mungayambire: Mwalandilidwa kuti muludumphe gawo lomwe ndimayambira, kapena gawo lililonse, ku nambala yeniyeni yomwe mukufuna, makamaka ngati mukufotokozera mwatsatanetsatane bukuli komanso zitsanzo za Akeof. Ngati mulibe chidziwitso polemba, ndimalimbikitsa kwambiri kuti muwerenge bukuli, ndipo ndikulimbikitsani kuti muwerenge magawo apitawo, kuti muwonetsetse kuti bukuli ndilolondola kwa inu. Ngati bukuli silikuyenera kwa inu, lingalirani za kukhala ndi bwenzi kapena wachibale yemwe angakhale ndi chidwi chofuna kuphunzira za umeyi, ndipo ngakhale kungoyang'ana ndi kupendekera ndi kukaphunzira kwa iwo kuti mudzaze inu monga mphunzitsi, kapena aphunzitsi ena adatero. Yambani komwe mungathe, gawo lililonse la bukuli likhala lothandiza ngati mukufuna kupanga pulogalamu yothandiza, ndipo lingalirani kuti mapulogalamu abwino amapangidwa ndi kasitomala wanu. Tsopano mukundidziwa, mukudziwa bukuli, ndipo mwakonzeka kuyamba. Kuyamba, kunyamula kompyuta (ngakhale laputopu yotsika mtengo kuchokera pamalo ogulitsira bokosi, Amazon, kapena desktop imagwira ntchito, ndikuyikhazikitsa m'njira yomwe imakuthandizani.

Momwe mungawerenge buku ili: Malemba omwe amawonetsedwa, amawonetsa kuti malembawo ndi omwe ali mu lamulo lokhalokha, pomwe mungalembe nambala yomwe mumathamanga. Chiwonetsero cha Lamuloli ndi chipinda cholunjika kwambiri ndipo chimafunikira kuti musawonetse, kuwonjezera ntchito yanu ndikupanga zinthu kukhala zosavuta pa inu.

Kuyambapo: Tiyeni tilowemo. Tiyambira ndi nambala yomanga pa makina akomweko ndikuyamba kupanga tsamba lolumikizidwa pa intaneti. Izi ndizotetezeka kuti ziyambe nazo, siziwononga chilichonse, ndipo ndizosavuta kwa inu. Kutengera ndi makina anu ogwiritsira ntchito, kulowa mu chipolopolo cha bash kudzakhala kosiyana pang'ono. Kwa Mac OS, ndikupangira kukhazikitsa makina ena panthawiyi, monga momwe mungagwiritsire ntchito mogwirizana kwambiri ndi makina enieni. Opereka Zosiyanasiyana monga bokosilo ndi ma polelell amatha kuyendetsa makina owonera ubuntu mwachindunji pamakina, ngati mungakonde kugwiritsa ntchito mawonekedwe adziko lomwe akulimbikitsidwa kuti apange zinthu mwachangu. Ngati mukugwiritsa ntchito linux kapena mawindo, zomwe ndikupangira, ziyenera kukhala zosavuta kupanga ntchito. Tsegulani terminal yanu, sinthani momwe mukuwonera momwe mungaonere, ndikuyambiranso kutsatira mawindo. Ngati mukugwiritsa ntchito mawindo, chonde tsatirani Gawo 1.

Gawo 1: - Ogwiritsa pa Windows okha Mu Windows, Lowetsani Lotseguka Lotseguka Pang'onopang'ono Monga Woyang'anira ndi Mtundu wsl -install

Gawo 2: - Pitilizani apa, kapena kudumpha 1 mpaka pano ngati simugwiritsa ntchito Windows Potsegulidwa otseguka, (kutengera OS yanu, yotchedwa Ubuntu mu Windows, terminal ku Mac kapena Linux, kapena dzina lofananira), kuyamba ndikupanga ntchito. Timachita izi ndi lamulo la MKDIR, lomwe limapanga chikwatu. Ngati mukufuna kupanga chikwatu kuti musunge polojekiti yanu, yomwe ikulimbikitsidwa, gwiritsani ntchito lamulo la CD kuti lisinthe ku chikwatu ndipo

CD / Njira / Kupereka - Njira ndi mafoda (mafayilo anu) omwe amatsogolera kuwongolera, njira yanu yolowera ndi ~ Kusintha ku chikwatu chokhazikika, lembani CD kapena CD ~ Chitsanzo cha MKDIR - Sinthani "Chitsanzo" ndi dzina la chikwatu

Tsopano muli ndi chikwatu chogwira ntchito yanu. Kukhala monga ndikofunikira kwambiri kuti asunge chikwangwani ichi chomwe muyenera kusintha makina ena kapena kuyika nambala yomwe mwalemba Koma kupanga script kumatenga code pang'ono, ndipo code imayenera kungokhala yothandiza kuti ikhale yothandiza momwe mungathere. Chifukwa chake tiyeni tiike cholembera kuti malembedwe olembedwa. Tiyeni tiyambe mwa kupanga zolemba ndi kupangitsa kuti zitheke. Tigwiritsa ntchito sudo, Chmod ndikukhudza izi, ndikuyimbira foni "choyimira".

sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript

Tsopano talenga zolembazo, zidapangitsa kuti zitheke, ndipo tili okonzeka kusintha. Nano ndi mkonzi wolemba yemwe angakuloreni kuti musinthe mawu osadina, zomwe ndizosavuta kuposa kungogwiritsa ntchito mawonekedwe ogwiritsa ntchito. Kusintha fayilo ndi nano, gwiritsani ntchito nano kenako njira yopita ku fayilo. Kupanga script yomwe imapanga script, ndizofanana ndikupanga zolemba zathu poyambirira. Tigwiritsa ntchito nambala yomweyi monga pamwambapa, ndikusintha dzina la script, "chonchi" ndi gawo lotsutsana, $ 1. Izi zimatiuza kuti tiyitaneni pa script polemba neoript necript yatsopano, yomwe tingapangire script iliyonse yatsopano posintha "Newscript" ndi dzina la zilembo zanu. Khodi ku Nano ikuwoneka bwino:

sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1

Ndipo kutseka Nano, titha kugwira batani lolamulira ndikusindikiza X, ndiye y kutanthauza kuti tikusunga fayilo, ndikugunda. Tsopano m'malo moimira malamulo atatu awa kuti musinthe script, tidzatha kulemba ziwonetsero za SuDo zomwe zimalembedwanso kusinthira zilembozo. Izi zikugwira! Ndipo zolemba zilizonse zatsopano zimatha kuthamangitsidwa mosavuta poyitanitsa chipolopolo. Tiyeni tisunge ntchito yathu tsopano: tiyeni tilembe zolemba zosunga zobwezera kuti tisunge zolemba zathu zatsopano kenako nkubwezeretsanso zolemba zathu zobwerera.

sudo ascript backup

Tsopano, ku Nano:

sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/

Pomwe / panjira / ku / ku mesenti ndi njira yopita ku polojekiti yomwe mudapanga ndi Mkdir. Pambuyo pake tidzaphunzira momwe tingagwiritsire ntchito njira zobweretsera zotere ndi chiuno ndi mndandanda, zomwe ndizocheperako, koma pakadali pano tisungeni mizere ingapo. Kuthamangitsa zolemba izi ndikusunga nambala yanu, sungani fayiloyo ku Nano ndi Kulamulira + X, y ndikubwerera, ndikulemba pansipa

backup

Ngati mukulimbikitsidwa pa mawu achinsinsi mukamawerenga bukuli ndikutsatira chipolopolo, chonde lowetsani mawu achinsinsi ogwiritsa ntchito bwino, mudzakhala ndi mayesero atatu musanayambenso kuyendetsa lamulolo. Mutha kugwiritsa ntchito mivi ndi pansi kuti musinthe malamulo ndikuwasintha, ngati muyenera kuthawa kawiri. Kanikizani mosavuta ndikusankhidwa mwachidule kuti musankhe lamulo, musanasinthe lamulolo ndi kumanja, ma brows achokapo ndikuchotsa kiyibodi, ndikuwuthamangitsa.

Zabwino! Munakwanitsa kupanga zolembedwa zowerengeka zobwezera zomwe zimabweza zolemba ziwiri zofunika kwambiri. Titha kusunthira zinthu pambuyo pake monga polojekitiyi imakula, koma izi zimagwira ntchito pano. Tiyeni tisunthiretu mtambo, tigwiritsa ntchito Githob Cifukwa (ngakhale pali njira zina zambiri zothandizira kuti mubwezeretse pulogalamu yanu pachinsinsi kapena kiyi. Ndizothandiza kupulumutsa mapulogalamu anu, makamaka pamene tikusamukira ku Ambox zomwe nthawi zina zimasweka pomwe mzere wa nambala umalephera, ndikusiyani pomwe simupeza mwayi kuti usabwerere zokha, zomwe tidzaphimba.

Ngati simukugwiritsa ntchito makina owonera kale a Ubuntu panthawiyi, ndikugwiritsa ntchito makina owoneka bwino a Ubuntu pakadali pano chifukwa uzipangitsa moyo wanu kukhala wosavuta pokhazikitsa tsamba lofunikira kuti apange tsamba la kompyuta yanu. Tidzatsogolera nambala ku seva ya intaneti posachedwa, koma tikufuna kuonetsetsa kuti pali zigawo zingapo za seva yathu yomwe ikugwirizana ndikunama, ndipo gwiritsani ntchito ma phukusi angapo a Linux kuti muchite izi. Ngati mukufunabe kugwiritsa ntchito Mac OS, mwalandiridwa kuti mufufuze ndikukhazikitsa mapaketi ofunikira pa intaneti, koma sipangakhale njira zina pa phukusi lililonse buku kapena mndandanda uliwonse liziphimba.

Tiyeni tiwonjezere malamulo ochepa kuti agwire ntchito yathu ndi script yosungirako ndalama poyendetsa lamulo lalamulo la SuDo.

# ...

Apanso, kuwongolera X kuti musunge.

Tsopano tikuyenera kuchita zina nthawi imodzi kuti ntchitoyi. Chifukwa posachedwapa padzakhala gat polojekiti, sitifunikira kulemba lamulo lililonse nthawi iliyonse yomwe tikutumiza kuchokera ku malo osungirako git, koma tidzapendekera izi tikalemba zolemba zathu zothandizira. Kuti tiyambire, tiyeni tiwonetsetse kuti tili pachiyanjano choyenera ndikuyambitsa malo osungira git ndikupanga makiyi a ssh.

cd /path/to/directory
git init
git branch -m master
ssh-keygen

Tidzalemba ssh-keygen, kiyi yatsopanoyo iyenera kupulumutsidwa mu chikwatu chanyumba pansi pa chikwatu chotchedwa .sh. Amatchedwa ID_RSA.PUB. Tiyeni tipeze kiyi ndi kuzijambula. Kuti muwone,

cd ~
cat .ssh/id_rsa.pub

Koperani zolemba zomwe zimabwezedwa ndi lamulo lomaliza, ndikupanga akaunti yanu ndi Git Wopereka (musanayambe kugwiritsa ntchito shub), musanawonjezere kiyi ya ssh ku akaunti yanu. Mukakhala ndi akaunti, dinani menyu kumanja ndikulowetsa makonda, musanawonjezere kiyi yanu ya ssh ndi gpg yolowera pamenyu. Sankhani Onjezerani batani la SHsh ndikuwonjezera anu pakuyipirira ndikuyipereka mutu, musanapulumutse ndikubwerera ku Gitub kuti mupange malo atsopano. Izi ndizofanana ndi othandizira ena, muyenera kuwerenga zolemba zawo. Mu kasinthidwe watsopano, perekani chidwi chanu ndi dzina lofotokozera kuti mukufuna kufalitsa, ndipo onetsetsani kuti mulibe mafayilo osaphatikizidwa. Nthawi yomweyo chosungiracho chidapangidwa, koperani zotsekera ndi ssh url, ndikuyika mu lamulo lotsatirali.

git remote add git://… (your remote URL)

Tsopano mutha kubwerera ku malo anu ndi CD, mudzadziwa izi. Yesani zilembo zanu zobwerera tsopano ndi zosunga

Zabwino! Tsopano titha kulembetsa. Tiyeni tikhazikitse Django tsopano kuti tili ndi vuto la kubisala ndi git. DJAngo imatipatsanso pulogalamu yathu, Bash imatha kuchita izi ngakhale kuti Django iyenera kukhala ndi kukhazikika kosavuta (kumatha kukhala olumala ndikukonzekera ndikukonzedwa mosavuta).

Kukhazikitsa mapulogalamu ku Ubuntu, tidzagwiritsa ntchito lamulo la Sudo APt. Choyamba, tiyeni tisinthe ndikukweza pulogalamu yomwe tili nayo kale. Izi zitha kuchitika ndi sudo apt-pezani zosintha ndi sudo apt-perekani. Kenako, tiyeni tikhazikitse Python ndi malo athu enieni, nyumba yathu yotsatira: Potsatira: Sudo Apt-Python3 Python3-Vannv

Izi ndi zonse zomwe muyenera kupita ndi DJAAnga pankhani ya mapulogalamu mu Ubuntu. Kwa Windows ndi Linux Izi ziyenera kukhala zowongoka bwino, koma kwa Mac mwina mungafune kukhazikitsa makina ogwiritsa ntchito ufulu kapena ma desilels desktop ndikukhazikitsa chilengedwe cha Ubuntu. Ubuntu ndizofunikira kwambiri pankhaniyi chifukwa ndi pulogalamu yomwe mawebusayiti omwe amayenda ndikuwapangitsa kuti azigwira mapulogalamu ndi mapulogalamu onse omwe tawalemba kale.

Tiyeni tiwerenge mu Django.

M'dongosolo lathu kachiwiri, ndi CD:

python -m venv venv # Imapanga malo omwe nambala yake imasungidwa
source venv/bin/activate # Imayambitsa chilengedwe
django-admin startproject mysite . # Komwe mysite ndi ntchito yomwe ndikuyambira mu chikwatu changa chapano.

Django akungotipangitsa kuti tiyambitse, chifukwa Django akukhazikitsa seva ya webusayiti ndipo akuchita zonse zomwe tikufuna kuti tipeze tsamba loyambira lakomweko ndikuthamanga. Tsopano popeza tili ndi Django adayika, tiyeni tisinthe makonda pang'ono kuti ipange ntchito momwe tikufunira. Choyamba, tiyeni tipange pulogalamu yatsopano

python manage.py startapp feed

Mudzazindikira pulogalamu yoyamba imatchedwa chakudya. Pulogalamuyi iyenera kutchedwa iliyonse yomwe mungakonde, ndipo tipanga mapulogalamu atsopano, koma dzina la pulogalamu iliyonse liyenera kukhala losasinthika nthawi iliyonse pulogalamuyi ikutchulidwadi nambala. Kuti muwonjezere pulogalamu yatsopano, nthawi zonse tisintha makonda. Kugwiritsa ntchito nano,

nano app/settings.py

Mu zoikamo, pezani masitepe ndi osiyana ndikulekanitsa [] mizere itatu. Pogwiritsa ntchito malo anayi pamzere wopanda kanthu, onjezerani 'kudyetsa', kapena dzina la pulogalamu yanu. Gawo ili la zoikamo.Pey ayenera kuwoneka:

INSTALLED_APPS = [
    'feed',
]

Tisanaiwale, tiyeni tiyese kuti DJAngo ikugwira ntchito. Kugwiritsa ntchito lamulo la Python.

Tsopano, tiyeni tiwone kulemba nambala ina ya Python. Django ali ndi zigawo zikuluzikulu zitatu, onse a iwo amathamanga ndi nambala yonse. Zigawozi zimatchedwa mtundu, kuwona ndi template ndi template, ndipo aliyense ali pamlingo wapamwamba komanso wotsika patsogolo pa tsamba lomwe tsambalo limaperekedwa kwa wogwiritsa ntchito.

Mtunduwu ndi nambala yomwe imasunga chidziwitso mu database kuti mubwezeretse, kukonza ndi kubwereketsa.

Malingalirowo amaganiza momwe chitsanzo chimachitikira, kupusitsidwa, ndikusinthidwa, pafupifupi malingaliro aliwonse amagwiritsa ntchito chitsanzo mwachindunji.

Template ndi nambala ya HTML yokhala ndi mabelu ena owonjezera ndi milomo yotchedwa templalale. Template imaperekedwa ndi malingaliro pomwe imadzazidwa ndi Python Code ndi nkhani monga zitsanzo ndi zidziwitso (zidziwitso) ndi zingwe) kuchokera pamalingaliro.

Django ili ndi zigawo zinanso, kuphatikiza koma osangokhala:

Makonda, omwe amakhazikitsa pulogalamuyi monga takambirana.

URL, yomwe imatsata kuti wosuta amatsata kupeza magawo ena a intaneti.

Mafomu, omwe amatanthauzira momwe chidziwitso chomwe chimatumizidwa ku seva chimasungidwa ndikusungidwa kwa database komanso wogwiritsa ntchito. Awa ndi maziko a chidziwitso cha seva, ndipo amatha kuvomera mtundu uliwonse wamalonda ogulitsa makompyuta, manambala, komanso owona / abodza.

Ma tempulo omwe ali nambala ya HTML ndi template ndi tebuloni kusiyana pakati pa Python, chidziwitso cha Python chitha kukhala ndi tsamba lokhazikika pa intaneti ndipo limathandizanso kukhala pafupi ndi seva.

Mafayilo okhazikika, omwe nthawi zambiri amakhala JavaScript ndipo ndi malaibule omwe seva amatumizirana ndi template.

Mafayilo a Media, omwe seva amagwira ntchito kapena amangopangidwa kunja, kapena amangolembera seva asanakonzedwe ndikuyika seva ina (ndowa) kuti mupewe.

Midselware, zomwe zili zidutswa zamakono zomwe zimayendetsedwa nthawi yomweyo monga malingaliro aliwonse ndipo zimaganiziridwa kuti "zikuphatikizidwa" m'malingaliro.

Zochitika m'malo mwake, zomwe zimatsata malingaliro aliwonse ndipo zimagwiritsidwa ntchito kuwonjezera nkhani yowonjezera.

Kuyesa, komwe kumatsimikizira kuti wogwiritsa ntchito kapena wopemphayo umapereka zofunikira zina zisanachitike.

Ogwiritsa ntchito, omwe amalamula momwe timalonda amagwirira ntchito komanso kuyankhana.

Admin, yomwe imagwiritsidwa ntchito kulembetsa mitundu kuti athane ndi tsatanetsatane mkati mwa tsamba la Django.

Selari, yomwe imatanthauzira ntchito za Asynchronous magawo a Django Code imatha kuyamba kuthamanga musanafike potsatira ntchito yotsatira.

Django atha kukhala ndi zigawo zina zambiri, zomwe tikambirana mwatsatanetsatane apa. Pali njira zambiri zopangira Django zothandiza kwambiri, kuwonjezera ma webbockets, omwe amafulumira mwachangu, udzu winawake, makamaka pamalingaliro a Django opangidwa. Onani Kugwira Ntchito ndi kiyi chifukwa nthawi zambiri amalengeza chidutswa chilichonse chazomwe chimakhala pachimake pa ulalo wake, kapena gawo la seva.

Choyamba, tiyeni tiwone kuwona. Onani kuti ntchito zimayamba ndi kutumiza nambala yomwe ingagwiritsidwe ntchito powonekera, ndipo zimafotokozedwa pogwiritsa ntchito matanthauzidwe okhazikika kapena makalasi. Maganizo osavuta kwambiri amafotokozedwa ndi ntchito tanthauzo la Deku, ndikubwezera Httpresptaty ndi template yoyamba. Tiyeni tiyambe pofotokozera lingaliro loyambira kuti mubwezeretse mawu akuti "moni dziko lapansi". Kumbukirani kuti nthawi iliyonse mukawonjezera code pambuyo poti mawu, ngati, pomwe, chifukwa, etc, muyenera kuwonjezera malo anayi a matanthauzidwe omwe mungafune kugwira ntchito yanu. Tidzalowa munthawi iliyonse ya izi.

Kuchokera ku chikwatu cha tsambalo, Sinthanitsani / Mawonedwe a Incy.ypy pogwiritsa ntchito nano ndikuwonjezera mizere iyi mpaka kumapeto kwa fayilo.

from django.http import HttpResponse

def hello(request):
    return HttpResponse('hello world')

HJAngoppess ya Django imayankha ndi chingwe, chodziwika ndi kutsegulidwa ndikutseka '. Nthawi iliyonse mukamatha kugwiritsa ntchito ntchito kapena kalasi, monga pempho kapena chingwe, muyenera kugwiritsa ntchito kholo (, kutseguka ndikutseka).

Izi sizomwe timafunikira kuwona malingaliro athu panobe. Zachidziwikire, sitinamuuze seva pomwe malingaliro ali, timafunikirabe kutanthauzira njira yomwe lingaliro liyenera kuperekera. Tiyeni tiyambe mwa kufotokozera njira yoyambira mu pulogalamu / urls.py, ndipo tilowa m'magulu.

Mu pulogalamu / urls.py, onjezani mzere pambuyo poti mawu oyambira pambuyo poyambira kulowetsa malingaliro omwe tidangopanga.

from feed import views as feed_views

Tsopano, tiyeni tifotokozere malingaliro. Mawonedwe amawoneka ndi zinthu zitatu, gawo limodzi, lomwe limafotokoza za seva yomwe imachitika pokhapokha ngati ikuyenera kusinthidwa ndikugwiritsa ntchito dzina linalake. Ndizomveka kuchita zinthu motere ndikusinthasintha, chifukwa codebase yanu ikhala yosintha yomwe imafunikira kusinthasintha ndikusinthasintha kuti ikhale yofunika komanso yosavuta kugwira nawo ntchito. Izi ndizomwe malingaliro anu angaoneke ngati, mutha kuwonjezera izi kwa urlpatters = [gawo la pulogalamu / urls.py. Njira yowonetsera imafotokozedwa ndi zigawo zitatu zomwe zafotokozedwa pamwambapa, ndipo ntchito yotchedwa njira. Mindandanda yanu ya URL ndi mndandanda, motero onetsetsani kuti nthawi zonse muzitha chilichonse mwa iwo ndi comma, chifukwa izi zimasiyanitsa aliyense. Chilichonse chiyeneranso kupita pamzere watsopano, kamodzinso ndi malo anayi patsogolo pake, monga pulogalamuyi mu zoikamo.py. Tifotokozera gawo loyamba la malingaliro ndi chingwe chopanda kanthu, kuti mupange malingaliro omwe amayenda pa mizu ya seva ya pa intaneti. URL yanu.Panu tsopano ikuwoneka ngati iyi:

from feed import views as feed_views

urlpatterns = [
    path('', feed_views.hello, name='hello'),
]

Ili ndiye maziko pakupanga tsamba la webusayiti ndi DJAAnga yomwe imakhazikika kwathunthu. Pofuna kupanga tsamba lamphamvu kwambiri komwe tingayambire kuyika zidziwitso, monga zithunzi, makanema, audio ndi ena, tidzafunika kugwiritsa ntchito zitsanzo, zomwe tifunika kutsatira. Pakadali pano, tiyeni tiwone nambala yathu ndikuyendetsa seva. Kuti muwone nambala ya zolakwitsa, kuthamanga:

python manage.py check

Ngati pali mauthenga olakwika, muyenera kubwereza mosamalitsa zosintha zomwe mudapanga pa pulogalamu yanu ndikuwona ngati pali chilichonse chomwe chikufunika kukhazikika, chowoneka bwino, chopanda kanthu, kapena china chilichonse. Kuwerenga kudzera mu uthenga wolakwika (ngati muli ndi imodzi), muyenera kuwona njira yopita ku fayilo yomwe mudapanga kapena nambala ya mzere, choncho yang'anani mufayilo ndi kuwona ngati mungakonze chilichonse chomwe chilipo. Ngati mwakonza nkhaniyo, yaninso lamulo lomwe lili pamwambapa. Mapulogalamu anu akakhala okonzeka kuthamanga ndipo akugwira ntchito, muwona "cheke cha System sichinazindikiretu." Tsopano mwakonzeka kupita. Thamangani seva ndi:

python manage.py runserver 0.0.0.0:8000

Tsopano tsegulani tsamba la msakatuli ndikuyenda ku http: // koloko: 8000. Muyenera kuwona malembawo omwe abwerera mu makolo ndi zolemba za Httprespress Plant yanu. Ichi ndi chitsanzo chofunikira chabe, koma ngati mutachipanga kutali, mumamvetsetsa zoyambira momwe linux, Bash, Python, ndi DJeron, ndi Django. Tiyeni tisambe pang'ono mu mtundu wina wa database, ndikuyang'ana mphamvu ya kalasi ya Python posungira zambiri. Kenako, tiyamba kugwirizira HTML ndi CSS tisanapangitse tsamba lathu tisanapangitse tsamba lathu kukhala lodziwika bwino, losinthika pogwiritsa ntchito makina a Javascript ndi maphunziro.

Makalasi amasungidwa m'mitundu. Kugwiritsa ntchito nano, kusintha pulogalamu / mitundu.y ndikuwonjezera kalasi yatsopano. Kalasi imafotokozedwa ndi tanthauzo la kalasi ndipo imadutsa kwambiri kuti imalandira kuchokera kwa mitundu iyi, motere.model. Dzinalo la kalasi likubwera pambuyo potanthauzira, ndipo pambuyo pa kalasi ya A: (koloni) ligwiritsidwa ntchito, malingaliro ndi matanthauzidwe a ntchito zomwe zimamangidwa pansipa. Kalasi yathu imafunikira ID yomwe titha kugwiritsa ntchito kuti titengepo ndikusunga zapadera, ndipo zimafunikiranso gawo lolemba kuti zisunge zambiri. Pambuyo pake titha kuwonjezera nthawi ya Timestams, mafayilo (owona kapena abodza kapena abodza kapena abodza kapena ayi kapena angagwiritsidwe ntchito), ndipo itha kugwiritsidwa ntchito kuti azimangika. Tiyeni tikwere nambala yomwe ili pansipa:

from django.db import models # Kutulutsa komwe kumagwiritsidwa ntchito kutanthauzira kalasi yathu ndipo ndi malingaliro
class Post(models.Model): # Tanthauzo la kalasi yathu
    id = models.AutoField(primary_key=True) # ID ya mtundu wathu, kiyi yongopangidwa yokha yomwe ingatifunseni molingana ndi izi, muzisunga mwapadera, ndipo ndizothandiza pamene tikufunika kulumikizana ndi chitsanzo chakecho chikapangidwe.
    text = models.TextField(default='') # Mfundo zomwe timasiyidwa m'masitolo athu, pankhaniyi, malembedwe ena, osasunthika ku chingwe chopanda kanthu.

Tsekani ndikusunga fayilo monga tidayambira.

Pali magawo ena ambiri ndi zosankha zomwe tizifufuza tikamasintha kalasi iyi pamene pulogalamu yathu ikusintha, koma izi ndizofunikira kwambiri kuti mupange pulogalamu kuti itumize mawu. Komabe, izi sizigwira ntchito zokha. Monga tafotokozera kale, tidzafunikira mawonekedwe a chizolowezi cha url ndi dongosolo la url kuti lipange ntchito yachitsanzo iyi, ndipo tidzafunikiranso fomu limodzi ndi template. Tiyeni tiwone fomu yoyamba.

Kutanthauzira fomu, Sinthani pulogalamu / mafomu.py ndi nano ndikuwonjezera mizere iyi. Tifunikira zogulitsa ziwiri, gulu lathu la ma forms, komanso mtundu womwe tidapanga (kudyetsa.del.dels.most), gawo limodzi ndi subclass lotchedwa Meta limalumikizana ndi. Fomuyi imathanso kukhala ndi ntchito yoyambira yomwe imakhazikitsa chidziwitso popempha, molingana kapena ayi, tiona izi pambuyo pake.

Mitundu yachitsanzo ndi yofunika kwambiri chifukwa amatha kupanga chitsanzo kapena kusinthanitsa chitsanzo, motero tidzazigwiritsa ntchito kwa onse awiri. Tiyeni tifotokozere imodzi mu mafomu.

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',)

Izi ndiye zoyambira zomwe mawonekedwe ndi mawonekedwe amawoneka. Fomu iyi ikhoza kugwiritsidwa ntchito popumira kapena kusintha positi, kusintha malembawo. Tiona kuphatikiza fomu iyi kukhala lingaliro lotsatira. Choyamba, tiyeni tisamuketse ndikusamukira database kotero kuti nambala yathu ingayanjane ndi mtunduwo ukamayenda. Kuti muchite izi, thanizani malamulo otsatirawa:

python manage.py makemigrations
python manage.py migrate

Izi zimatenga mphindi kuti zitheke, koma zikatero, zimakupatsani mwayi wofikira m'chigawocho, pakati, kapena kwina kulikonse mu pulogalamuyo. Tiyeni tipitirize kupanga malingaliro komwe titha kuwona mtundu wathu. Sinthani feed / malingaliro.py ndikuwonjezera nambala yotsatirayi, monga taonera. Simungafunikire kuwonjezera chilichonse pambuyo pa # chikwangwani cha #, code ija ndi ndemanga zomwe zimagwiritsidwa ntchito pofotokoza zambiri za code. Tiyamba kulemba mtundu wathu m'malingaliro, ndikuwonjezera gawo lomwe tingapatse mu template monga mndandanda wowonetsera. Kenako, tiwonjezera template yomwe tingapereke mawonekedwe ndi mtundu ndi batani kuti tipangire chinthu chatsopano malinga ndi chithunzicho ndikuyilemba seva. Izi zikuwoneka zovuta, kotero tiyeni tingotenga liwiro ndi sitepe. Tisanamalize kuwona, tiyeni tipange template yomwe imangopereka chitsanzo ndikuwonetsetsa kuti titha kuona popanga malo atsopano mu chipolopolo. Umu ndi momwe malingaliro akuyenera kuwonekera:

    posts = Post.objects.all() # Funsani zolemba zonse mu database mpaka pano

Zonsezi zimawoneka zophweka kwambiri mpaka titafika pansi. Perekani, mtengo womwe wabwerera ndi ntchito m'malo mwa kuyankha kwa HTTP monga chitsanzo cham'mbuyomu, chimalandira gawo lakelo (pankhaniyi), zomwe tsopano zingabwezetse template yomwe yatchulidwa mu ntchito. Templateyo ikhala chikalata cha HTML ndi chilankhulo pang'ono chotchedwa jinja2, chomwe chimapangitsa zidziwitso za Python mu HTML.

Kuti muyambe kupanga ma templates, pangani zowongolera ziwiri.

mkdir feed/templates
mkdir feed/templates/feed

Kenako, sinthani template mu chikwatu pamwambapa, kudyetsa / templates / chakudya, ndikuwonjezera nambala ya ichi. Tiyeni tiwone template ya ichi.

Ili ndi template yosavuta kwambiri. Imatanthauzira ndikutseka ma tag a html, mtundu wa chikalata cha chikalata, chinsinsi cha thupi ndi mutu wambiri womwe umawonjezera mzere wambiri womwe umawonjezera mzere uliwonse pamndandanda wa masikono ngati gawo limodzi mu template. Izi ndizomwe zimafunikira kuti muchepetse zolemba, koma palibe mu database pano. Tiyeni tipangire ena ndi chipolopolo. Titha kuyendetsa chipolopolo ndi kuwongolera.py

python manage.py shell

Tsopano tiyeni titumizire chitsanzo chathu

from feed.models import Post

Kenako, tipanga positi yosavuta ndi chingwe ndikutuluka chipolopolo. Chingwe chikhoza kukhala chilichonse, kutalika kwake ndi mawu ovomerezeka.

Post.objects.create(text='hello world')
exit()

Pomaliza, tidzafunika kuwonjezera njira ya url ku chakudya chathu. Chifukwa pulogalamu yathu ya chakudya imagwiritsa ntchito ma urls angapo ndipo tikufuna kusunga mafayilo ang'onoang'ono, tiyeni tipangire ma urls am'deralo.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.feed, name='feed'),
]

Tidzafunikanso kusintha ma urls.py mu gawo la maziko, chilichonse chomwe tidasankha kuyankhula, uwu unali chikwatu choyamba chomwe tidapanga. Edit App / App.Py ndikuwonjezera zotsatirazi ku mawonekedwe a url

from django.urls import include # Pamwamba
    # ... nambala yapita pano

Tsopano, tikamayendetsa seva yokhala ndi Python Care.y Wogulitsa, tiwona tsamba lomwe tidapanga chifukwa tili ndi chitsanzo, mawonekedwe a url komanso zinthu zomwe zili mu database. Kenako, tiyeni tikwaniritse mawonekedwe omwe tidapanga ndikuyamba kupanga zolemba zathu. Koma tisanalembe nambala yochuluka, tiyeni tipeze zosunga pogwiritsa ntchito script tinalemba. Thamangani script iyi mu chipolopolo, dikirani mphindi zochepa, ndipo nambala yonse idzabwezeretsedwa ku GIT yosungira.

backup

Kukhazikitsa mawonekedwe ndi kosavuta. Tidzalemba fomu yathu, onjezerani positi yofunsira ku mawonekedwe, ndikusunga positi mu database musanabwererenso malingaliro omwewo. Titha kugwiritsa ntchito ntchito yowonjezera yomwe tidalowetsa kale, ndipo ntchito ina yotchedwa Refy kuti ipeze ulalo wa malingaliro. Tidzafunsanso izi ndi zojambulajambula: chakudya 'chifukwa dzinalo la DamesPaces limadyedwa, ndipo malingaliro amatchedwanso chakudya.

    posts = Post.objects.all() # Funsani zolemba zonse mu database mpaka pano
    if request.method == 'POST': # Samalani pambuyo pake
        form = PostForm(request.POST) # Pangani chitsanzo cha mawonekedwe ndikusunga zomwe zalembedwazo
        if form.is_valid(): # Konzani fomu
            form.save() # Sungani chinthu chatsopano
        return redirect(reverse('feed:feed')) # Konzani ku URL yomweyo ndi pempho
        'form': PostForm(), # Onetsetsani kuti mukudutsa fomuyo munthawiyo, titha kupereka.

Tsopano, tifunika kusintha template kuti iyankhe fomu yatsopano. Titha kuchita izi pogwiritsa ntchito

tag mu html ndikupanga mawonekedwe mu ka template ya HTML ndi batani la Tumizani. Tidzafunikanso chizindikiro cha CSRF, Chizindikiro chomwe chimalepheretsa masamba akunja kuti tisatumize ku fomu popanda kutsegula tsamba.

Tiyeni tidutse izi. Pali gulu latsopano latsopano, chizindikiro, mawonekedwe omwewo, ndi batani logonjera. Zosavuta, koma tikamayang'ana, titha kufuna kuti ziziwoneka bwino. Imagwira ntchito, titha kutumiza zolemba zatsopano ndi mawonekedwe ndipo tsopano apulumutsidwa mu database. Pali zinthu zochepa zomwe zikuchitika pano. Timagwiritsa ntchito ma tag kuti zilembedwe kuti chikalatacho ndi chikalata cha HTML, timagwiritsa ntchito template tag ({% ...%}) Kuti mupereke mawonekedwe. Tilinso ndi chiuno kuti tipereke zolembazo pogwiritsa ntchito ma tag ndi template. Block Tags ndizofunikira kwenikweni chifukwa titha kufotokoza momwe magawo a template amachitikira nawo, ndipo template ma tags ndiye maziko a momwe timagwiritsira ntchito mosiyanasiyana.

Tsopano tiyenera kupanga pulogalamu yathu kukhala yabwinoko, chifukwa pakadali pano zikuwoneka. Titha kuchita izi pogwiritsa ntchito CSS, ngakhale m'matumbo, kapena m'makalasi omangiriridwa ku chinthu chilichonse m'Chikalata. CSS ndiyabwino kwambiri chifukwa imafotokoza zonse patsamba momwe ziyenera kuwonekera, ndipo zitha kuwoneka bwino. Pali malaibulale angapo omwe angachite izi, koma ndimapita ku bootstrap.

Bootsstrap imatha kutsitsidwa kuchokera patsamba lawo,Getbootstrap.com/. Kamodzi pamenepo, kanikizani batani kuti muwerenge Docs, ndipo poperani nambala kuchokera pagawo la CDN. Mufunika nambala iyi pamwamba pa chikalata chanu cha HTML, mu tag yotchedwa mutu. Komanso, tiyeni tikhale patsogolo ndikupanga template ya pansi kuti tisafunika kuyambiranso maulalo awa mu template iliyonse.

Pangani chikwatu chatsopano chotchedwa machisi ndi ma tempulo a MKDIR, kenako kusintha ma templates / back.html.

Ziyenera kuwoneka motere:

Onetsetsani kuti potsanzira ndi JavaScript, .css ndi .Js Fayilo, chifukwa tidzafunikira JavaScript kuti tsamba lathu lizigwira ntchito mtsogolo.

Tsopano tiyeni tibwerere ku Gull Shell ndikuyendetsa mwachangu. Kumbukirani kuti, ngati mungafunike kupeza malo omwe alipo, mtundu wa mtundu wa venv / bin / yambitsa. Izi zikulolani kukhazikitsa mapaketi a Python kwanuko mwanjira yomwe imalola kuti DJAngo amawapeza. Kupereka mafomu athu omwe amapangidwa ndi makalasi a Django BootsTrap, tidzagwiritsa ntchito phukusi la Python lotchedwa mafomu a crispy. Titha kutsitsa izi ndi lamulo lotsatirali

pip install django-crispy-forms

Izi zikaikidwa, onjezerani ku zoikamo.py

    # ... nambala yapita pano

Tsopano, mmbuyo munkhoyathu ya chakudya, titha kuchotsa zinthu zina. Tiyeni tichotse chiyambi ndi kutha kwa chikalatacho ndikusintha ndi cholowa kuchokera ku template yathu, pogwiritsa ntchito mafinya komanso tanthauzo la chipikacho. Komanso, tionjezanso zoseweretsa za template zokhudzana ndi katundu ndi fayilo ya template ndi mawonekedwe. Pomaliza, tiyeni tiwonjezere kalasi ya bootstrap ku batani pa fomu kuti iwoneke ngati batani. Izi zikuwoneka motere:

Zokongola! Ndilo nambala yaying'ono kale. Kenako, tiyenera kuyeza ndikuonetsetsa kuti titha kuwona kuti chilichonse chikuwoneka bwino, komanso onetsetsani kuti chilichonse chikugwira bwino ntchito. Thamangani seva monga malangizo am'mbuyomu ndikuwonetsetsa kuti malowa akuwoneka bwino. Ntchito yabwino! Mwakonzeka kusamukira ku gawo lotsatira, momwe tionjezera magwiridwe antchito omwe amagwiritsa ntchito ma urls, mitundu, malingaliro ndi ma tempulo. Chinsinsi cha maziko ndichofunikira, ndipo tidzapitilizabe kusintha ndikusintha zina pofuna kuti tsamba lathu likhale lotetezeka komanso passporm yanu yomwe ingagwiritsidwe ntchito ndi inu.

Kuti tichite izi, tifunika kugwiritsa ntchito mtundu wogwiritsa ntchito mu Django. Mtundu wa ogwiritsa ntchito ndi mtundu wa database, monga positi yathu, yomwe ingapangidwiredwe kuti isatumize pawebusayiti. M'tsogolomu, tisanaperekere malowa ku intaneti, tidzakulitsa chitsanzo ichi ndi mitundu ina yomwe idadziwika, ndikupanga njira zina zachitetezo cha malo olowa zomwe sizigwirizana. Tidzayamba kugwiritsa ntchito mafomu ena omwe Django amapereka. Choyamba, tiyeni tipangire pulogalamu yatsopano yomwe tidzagwiritse ntchito kuti tipereke ma tempiki ndi malingaliro a tsamba lolowera. Tipanganso mapulogalamu ena kuti aimire zovuta zomwe zatsala kuti muteteze pulogalamuyi, kuphatikizapo kuzindikiridwa kwapakati, kuyankhulana zakunja, kutsimikizika kwa kunja, ndi kutsimikizira zam'magazi.

Takambirana kale za kuyambitsa pulogalamu. Kuchokera ku chikwatu chathu, mkati mwa chilengedwe, kudutsa pass.Pakulu

python manage.py startapp users

Tsopano, tiyenera kukhala ndi chikwatu cha pulogalamu yatsopanoyo. Tiyeni tiyambe ndikupanga lingaliro mu chikwatu chimenecho chomwe chikufanana ndi kulembetsa. Django adapanga m'mawonedwe a mapulogalamu osuta, koma awa sakhala oyenera kwa ife chifukwa timafunikira mawonekedwe, omwe amachitika mwachidule ndi tanthauzo.

Mu lingaliro ili, tiyamba poyang'ana positi, pempho la UT.POST ku Logning, ikani akaunti ya ogwiritsa ntchito, ndikulowetsani mu pulogalamu yathu isanabwerere ku pulogalamu yathu ya chakudya.

Ogwiritsa ntchito / malingaliro.py, onjezani nambala yotsatirayi

        username = request.POST['username'] # Pezani dzina lolowera ndi mawu achinsinsi kuchokera ku positi
        password = request.POST['password'] # Tsimikizirani wogwiritsa ntchito

Izi ndi zonse zomwe mukufuna kuti muwone malingaliro olowera. Tsopano tiyeni tipange mawonekedwe a malingaliro powonjezera khama. Tiyamba ndikupanga chikwatu chatsopano cha ma templates mufoda ya ogwiritsa ntchito.

mkdir users/templates
mkdir users/templates/users

Tsopano, tiyenera kusintha ogwiritsa ntchito / ma templates / ogwiritsa ntchito / Login.html. Tili pa izi, tipanga template kuti alole wosuta asainenso.

nano users/templates/users/login.html

Tsopano, mu template,

Awa ndiye maziko a template yolowera. Uli ngati template inayo, koma imawoneka yosiyana pang'ono ikaperekedwa. Titha kutengera nambala iyi kuti ipange template inanso yofananira yotchedwa Regit.html, komwe tisintha mawu ndikugwiritsa ntchito mawonekedwe atsopano omwe timamanga. Tiyeni tipangitse template kaye. Sinthani ogwiritsa / ma templates / ogwiritsa / kulembetsa.html ndikuwonjezera nambala yotsatirayi:

Tsopano, tiyeni tinge mawonekedwe a kulembetsa kwathu ndi kuzungulira ziwonetserozo tisanakweze zojambula zathu ndi mtundu. Tipanga mawonekedwe awa kuti ayambe nayo, koma kuphatikiza zambiri ndi zotetezeka monga mapangano ndi CAPTCHA mtsogolo. Sinthani mafomu omwe ali ndi ogwiritsa ntchito a Nano / Mafomu.py, ndikuwonjezera nambala yotsatirayi.

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']

Chifukwa chake tili ndi mawonekedwe ena pano, omwe amagwira ntchito mwachilungamo. Ndi fomu yolembetsa ndi dzina lolowera, imelo ndi chinsinsi, komanso chotsimikizira password. Dziwani kuti fomu iyi siyikulitsa ma forms okhazikika.orform Class, ndi mawonekedwe achitsanzo omwe amatanthauza kuti ili ndi meta. Munda umodzi umafotokozedwa chimodzimodzi, ndipo kalasi meta imatanthauzira mtunduwo fomu imafanana ndi zidziwitso zonse zomwe zidzalembedwe. Zambiri mwa izi zili kale mu Django zomangidwa mu ma django opangidwa kale, kuti tigwiritse ntchito ngati maziko a kalasiyo (idadutsa mwa makolo).

Kenako, tikambirana za kulembetsa wogwiritsa ntchito, tsopano kuti tili ndi mawonekedwe ndi template. Ichi ndi zitsanzo, monganso imodzi mwatsopano. Sinthani Ogwiritsa / Mawonedwe.py ndikuwonjezera nambala yotsatirayi:

# ... zotuluka

Izi ndizomwe timafunikira kuti wogwiritsa ntchito alembetsedwe, koma tiyenera kukhala ndi zambiri. Tikufuna kudziwa nthawi yomwe wogwiritsa ntchito adalembetsedwa, nthawi zina anali atakumananso ndi izi, monga zonena za iwo, monganso, tifunika kusinthitsa mtundu wa wogwiritsa ntchito ndi mawu a wogwiritsa ntchito. Kuti tichite izi, tisinthanitsa mitundu.y m'mapulogalamu onse awiri. Tiyeni tiyambire posintha mtundu. Ziyenera kuwoneka motere:

from django.db import models # ... zotuluka
    author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # Onjezerani mzerewu

Samalani ndi mzere wachiwiri womwe udawonjezeredwa pafayilo. Ichi ndi chifungulo chakunja, chomwe chingapangitse positi iliyonse kwa wogwiritsa ntchito pa positi pa positi, kuti tiwonetsetse kuti tisunge zolemba pa ogwiritsa ntchito ndipo palibe positi omwe angagwiritse ntchito. Timalongosola kiyi yachilendo iyi ndi kalasiyo ikuyimira, kufufutidwa kochotsa zolemba ndi ogwiritsa ntchito omwe tidapanga kale, komanso dzina lomwe limagwiritsa ntchito. Dzinali, mosiyana ndi post.urothor, wolemba positiyo, amatipatsa wogwiritsa ntchito yemwe adatumiza Positi yokha. Titha kupeza zolemba zomwe wogwiritsa ntchito wogwiritsa ntchito.Posts.all (), kapena wolemba.posts.all ().

Tsopano tiyeni tizipindika zina. Titha kupangitsa kuti malo athu akhale osatetezeka kwambiri kuti azikhala achisoni chifukwa chongoyerekeza kuchuluka kwa nthawi zomwe tidzaloleza kulowa pamalowo, izi ndizophweka. Tiyeni tiyambenso kusunga zambiri za wogwiritsa ntchito aliyense m'mbuyomu monga momwe tikupitirizira pulogalamu yathu. Kusintha Ogwiritsa / Makhalidwe.Py, onjezani nambala yotsatirayi.

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='')

Dziwani kuti mtundu uwu ndi wofanana ndi chithunzi. Tili ndi zowonjezera zowonjezera, nthawi ya nthawi yomwe ingatipangitse kukhazikitsa zolakwika paminda ya tsikulo, ndipo tili ndi gulu lokhala ndi zolemba. Kugwiritsa ntchito nthawi zonse izi kumatithandiza kuteteza malowa ndikumvetsetsa momwe amagwiritsidwira ntchito, ndipo malembawo amatipatsa chidziwitso cha wogwiritsa ntchito aliyense, kapena wolemba, pa webusayiti. Ontonefield iyenera kukhala yosanthulira kochepa, imakhala yofanana ndi lamplinkey koma ndi chimodzi chokha chomwe pambuyo pake. Mwanjira imeneyi, wogwiritsa ntchitoyo amakhala ndi mbiri imodzi, pomwe angakhale ndi nsanamira zambiri.

Tsopano, tiyeni tisinthe malingaliro athu ndi kulembetsa ku akaunti ya mbiriyo. Choyamba, Sinthani Ogwiritsa Ntchito / Mawonedwe.py ndikuyang'ana pa Show Show:

# ... zotuluka
            Profile.objects.create(user=user) # Onetsetsani kuti muwonjezere mzerewu, kuti mupange mbiri kwa wogwiritsa ntchito

Izi zimangopanga mbiri kwa wogwiritsa ntchito, osadzaza chilichonse. Tsopano, tikufuna kuonetsetsa kuti akauntiyo singalowe mu nthawi zambiri, kapena passwords sizingayesedwe pafupipafupi, ndiye tiyeni tisinthe mawonekedwe olowera.

# ... zotuluka
        if user and user.profile.can_login < timezone.now(): # Dziwani kuti tsopano tikuwona ngati wogwiritsa ntchito akhoza kulowa
        else: # Ngati malowe sanali opambana,
            user = User.objects.filter(username=username).first() # Ili ndiye gawo lomwe timasinthiratu
                profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Kotero sangathe kulowanso kwa masekondi angapo

Ichi ndiye chitetezo chofunikira kwambiri. Onetsetsani kuti tsambalo silikhala pachiwopsezo kwa munthu amene amangoyesa kuphatikiza kwachinsinsi, kapena ngakhale ochepa a iwo nthawi yomweyo. Izi sizikhala zokhumudwitsa kwa wogwiritsa ntchito yemwe amadziwa passcode yawo ndikungolowa pa zida zochepa, koma zimasunga maloboti angapo otuluka mu pulogalamuyi. Dziwani kuti tidawonjezera mawu omwe ali ndi chosinthika, akhoza_atha_woginenti, ndiye nthawi m'mbuyomu, ndikusintha ndi lolowa chilichonse pogwiritsa ntchito dzina lomwelo. Mwanjira imeneyi, wogwiritsa ntchito woipa sangathe kulosera mawu achinsinsi kwina kulikonse mwachangu. Chiwerengero cha masekondi mu tsiku la tsiku.Timelta () amathanso kusinthidwanso, ndipo tsamba la webusayiti lidzakhala lokhazikika koma pang'ono lotetezeka pang'ono. Ndikupangira 15 kuyamba ndi.

Kumbukirani, tinapanga zolemba zosunga zobwezera kuti tisunge ntchito yathu, ndiye tiyeni tipitirizebe ndikukumbukira zomwe tili nazo kutali kuti tikwaniritse zonse zapulumutsidwa. Thamangani Lamulo:

sudo backup

Apanso, izi zisunga ntchito yanu mpaka pano. Ndikupangira kuthamanga pafupipafupi kuti musunge ntchito yanu, ndipo mungafune kuyendetsa ntchito yosunga ndalama zokha. Mutha kuchita izi pogwiritsa ntchito uniboutility wotchedwa Cron. Kuti muthe kuyambitsa izi, gwiritsani ntchito lamulo lotsatirali ndikulowetsa mawu achinsinsi:

sudo crontab -e

Ngati simunasankhe kale 1 kwa nano, mkonzi walemba kale womwe mukuyenera kukhala nawo kale, ndikupukutira pansi pa fayilo pogwiritsa ntchito makiyi. Onjezani mzere wotsatira:

0 * * * * sudo backup

Cron amagwiritsa ntchito mtundu, ola, tsiku, tsiku la mwezi, mwezi, tsiku la sabata, pomwe A * kapena angapo amaimira nthawi yoyendetsa lamulo. Kugwiritsa ntchito 0 kwa mphindi ndi * kwa zosankha zina, titha kuyendetsa lamulo kwa mphindi imodzi ya ola lililonse kumayambiriro kwa mphindi. Izi zimatipatsanso nambala yokha. Ntchito zonse za cron zikaphedwa ndi sudo zimathamanga ngati mizu, kotero sitifunikira kulemba mawu achinsinsi ola lililonse.

Kuti zikhale zosavuta kubwezeretsa nambala yathu popanda kugwiritsa ntchito mawu achinsinsi, tiyeni tiletse mawu achinsinsi a lamulo lathu losunga ndalama. Tichita izi popereka lamulo lotsatirali ndikulowetsa mawu achinsinsi:

sudo visudo

Tsopano tiyeni tisunge pansi pa fayilo ndikuwonjezera mzere wina:

ALL ALL=NOPASSWD: /bin/backup

Izi zimatidziwitsa kuti tithawe lamulo la "Sungani" monga wogwiritsa ntchito, wopanda mawu achinsinsi. Mtundu wa izi ndi zosavuta, prefix mzere ndi "zonse = noposswd: / Bin /"

Tsopano, tiyeni tiyambe kugwira ntchito ndi imelo. Imelo ndiyofunika kwambiri kwa mawebusayiti, chifukwa ndi njira yosungira tsamba lawebusayiti, onetsetsani kuti ogwiritsa ntchito ndi anthu enieni, komanso mitundu kapena ntchito kwa makasitomala. Anthu ambiri omwe amachita intaneti amayang'ana imelo yawo tsiku lililonse, ndipo amalandila imelo yotsatsa pazinthu ndi ntchito zomwe amakondera. Pali njira zingapo zomwe zimathandizira.

Choyamba, mutha kulipira ntchito ya imelo yomwe ingakuthandizeni kutumiza imelo kuchokera kudera lanu ndipo imafunikira nambala yochepa. Pali mautumiki ambiri omwe amapereka izi, monga Google Colosespace, Tuminblue, mailgun, ndi zina zambiri.

Kupanda kutero, mwayamba kumanga imelo yanu mkati mwa seva yanu kuyambira. Ndikupangira izi, ngakhale ndi code yochulukirapo ndipo imafunikira kuti azitsogolera. Simudzatha kuyambitsa seva yanu yochokera ku Computer yanu kwambiri, choncho tiyeni tiyang'anire kusinthidwa ndi kachidindo kuti mutumize imelo m'tambo ndikupanga seva yathu yokha.

Choyamba, Sinthani makonda.py ndi lamulo lotsatira:

nano app/settings.py

Komwe pulogalamu ndi dzina la pulogalamu yomwe mudapanga ndi Itapp.

Onjezani mizere iyi:

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)

Onetsetsani kuti mwasintha izi mukakonzeka kutumiza pulogalamu yanu, tidzabwezeretsanso izi pambuyo pake. Imelo_adduss Kukhazikitsa kuyenera kukhala imelo yomwe mukufuna kutumiza kuchokera ku, ndi mawu achinsinsi (imelo_huptord) iyenera kukhazikitsidwa password yomwe mumapanga seva. Ndikuluma password kuchokera ku fayilo ya CARD kuti isatulutse mu code pogwiritsa ntchito mfundo zotsatirazi, pamwamba pa mizere iyi m'makonzedwe .y:

import os
import json
with open('/etc/config.json') as config_file:
    config = json.load(config_file)

Kenako, ndakhazikitsa fayilo ya JSSSON ndi mawonekedwe a /tc/config.json pogwiritsa ntchito nano motere.

Kusintha fayilo:

sudo nano /etc/config.json

Onjezani mizere iyi:

{
	"EMAIL_HOST_PASSWORD": "<some password here>"
}

Tipitiliza kusintha fayilo yokhazikika ndikuwonjezera mapasiwedi onse ndi makiyi omwe tidzagwiritsa ntchito mu pulogalamuyi. Pakadali pano, tiyeni tiwone mwachangu momwe mungatumizire imelo pogwiritsa ntchito Python. Choyamba, tiyeni tipange template kuti titumizire imelo yathu yomwe titha kutumiza kwa ogwiritsa ntchito, ndikuyiyika mu templates ya wogwiritsa ntchito. A templateyo adzalembedwa mu HTML.

nano users/templates/users/verification_email.html

Imelo iyi ndi yosavuta. Zimatengera mtundu wa wogwiritsa ntchito, ulalo wapansi pamalopo, ndi id yogwiritsa ntchito ndi chizindikiro chomwe chimagwiritsidwa ntchito kutsimikizira imelo ya wogwiritsa ntchito. Onetsetsani kuti mwatanthauzira ulalo wa maziko.py tisanalembe nambala ina Python kuti tipereke template. Pitani patsogolo ndikuwonjezera mizere iyi ku App / Zikhazikiko.py, pafupi ndi chiyambi.

SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'

BASE_URL = PROTOCOL + '://' + DOMAIN

Pambuyo pake, tsamba lanu litakonzekera intaneti ndipo mukuikira, mudzafuna kutanthauzira gawo lanu ngati dzina lomwe mumagula kuti muimire malowa. Ili ndiye dzina kuti mudzalemba mu Navbar kuti mupeze tsamba lanu. Pakadali pano, mutha kusiya danga lopanda kapena kugwiritsa ntchito wowonekera. Mudzafunanso kusintha tsambalo_MENE MU DZINA MUKUFUNA KUTI MUPETSE TAKE, mwa kusankha kwanu.

Tisanatumize imelo, tiyeni tipangire jenereta ya chizindikiritso kuti titha kukhala ndi chizindikiro cha akaunti yomwe siyitha. Titha kuchita izi pomanga ndikulowetsa chizindikiro cha akaunti yomwe imawoneka ngati zotsatirazi. Sinthani fayilo:

nano users/tokens.py

Onjezani nambala yotsatirayi:

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()

Inchire yoyambirira ya chikwangwani imatulutsa chizindikiro titha kutumiza wosuta mu URL ndipo wosuta angagwiritse ntchito kutsimikizira imelo yawo ndikuyambitsa akaunti yawo.

Kenako, tiwone momwe mungatumizire imelo. Kugwiritsa ntchito nano, kusintha kwa ogwiritsa ntchito / imelo.y.

nano users/email.py

Kutumiza imelo yotsimikizira HTML iwoneka motere:

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)

Izi ndizosavuta. Timatumiza ntchito zomwe timafunikira kutumiza imelo, ndikupereka imelo ndi ma temlalations, ndipo makonda athu, kenako timatanthauzira imelo ndi dzina la wosuta ndikuyitumiza kwa wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta pogwiritsa ntchito wosuta Mungazindikire kuti sitinatumize ntchito kuti titumizire makalata, Tumizani_html_emy, kotero tiyeni tilembetse izi pansipa zomwe tawonjezerapo ogwiritsa /

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()

Izi ndi zovuta kwambiri, ndipo sitinakonzekere kukonzanso nambala yonseyi. Zindikirani kuti tikutanthauzira - ulalo womwe wosuta angagwiritse ntchito kulembetsa m'maimelo athu. Izi ndizofunikira, chifukwa ogwiritsa ntchito adzafunika kusankha m'maimelo athu pokhapokha akufuna kuwaona, nthawi iliyonse. Tikuwonjezeranso njira ina yotumizira uthenga wathu, yomwe ndi uthenga wa HTML. Pomaliza, timayang'ana ngati imelo yotumizidwa, ndipo ngati sichoncho, timalemba mbiri ya wogwiritsa ntchito kuti imelo yawo siyovomerezeka.

Tiyeni tibwerere ku mitundu ya ogwiritsa kuti titha kupanga zonse izi. Tiyenera kutanthauzira ntchito kuti tilembe ulalo kuti ulembetse, ndikutanthauzira gawo la Boolean ku Maliko kuti imelo ya wogwiritsa ntchito siyothandiza.

Choyamba, onjezani izi kwa ogwiritsa ntchito / ogwiritsa ntchito.py

nano users/models.py
# ...

Chotsatira, tiyeni tiwonjezere ntchito kwa wogwiritsa ntchito kuti apange Chizindikiro ndikuyang'ana chizindikiro chomwe chimagwiritsidwa ntchito kuyambitsa imelo, komanso gawo loti wosuta alandire makalata awo. Ogwiritsa ntchito / zitsanzo.py kachiwiri, onjezerani nambala yotsatirayi kumapeto kwa mtundu (nambala yomwe ili)

# ...
            TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # Zovomerezeka kwa masiku 30

Izi ndi zophweka, timagwiritsa ntchito nthawi yayitali, yomwe ndi chida chofunikira, kuti tipangitse chizindikiro chomwe chingathetsere ndalama pambuyo pake, ndipo timagwiritsanso ntchito linanso kuti lifufuze ngati zikugwira ntchito. Timagwiritsa ntchito ma tokeni awa kawiri, kamodzi kuti titsimikizire imelo, ndipo kamodzi pa ulalo wosagwirizana.

Tsopano popeza tili ndi izi, komaliza pantchito yomwe tidzafunika kuchita zili m'malingaliro. Pakati pa ogwiritsa ntchito / malingaliro.py, tiyeni tiwonjezere malingaliro kuti mutsimikizire imelo adilesi, komanso osalemba.

nano users/views.py

Choyamba, onjezani zotsatirazi. Ndinaponya zowonjezera zochepa kotero sitiyeneranso kutumizanso zinthu zambiri pambuyo pake.

from .email import send_verification_email # Onetsetsani kuti mwatumiza imelo yotsimikizira ntchito

Mutha kukhala kale ndi zina mwazomwezi, koma sizipweteka kubwereza. Mukuyenera kulowetsa imelo yotsimikizika, komanso akaunti_Cackitation_k_chonso ku Ogwiritsa ntchito.tokens, pakati pazosankha zina.

Tsopano, pansi pa fayilo, onjezani nambala yotsatirayi:

        # Alembetse
    # Kupanda kupozerani tsamba lolowera
# Imelo (pempho, ogwiritsa)

Izi ndi nambala yambiri. Tithyole. Ntchito yoyamba, yoyera komanso yosavuta, yosasinthika wosuta kuchokera pamndandanda wa makalata. Ntchito yachiwiri imayendetsa imelo yawo, ndipo mudzazindikira ndidawonjezera ntchito, itandasungeniilo. Mwalandilidwa kugwiritsa ntchito template ya imelo ndi tanthauzo la ntchito kutumiza imelo yolandiridwa, sindinangokhalapo. Ntchito yomaliza yomwe ndidaponya ndiyofunikira, chifukwa maimelo oyambitsa amatha. Chifukwa chake, tidzafunikiranso kubwezeretsa imelo nthawi zina. Titha kugwiritsa ntchito fomu yoyambira pa izi, ndikuyimbira ntchito kuti itumize imelo yotsimikizira. Tisanachite izi, tiyeni tiwonetsetse kuti zikutumizidwa pamalo oyamba, powonjezera ntchito ku Regide to Region. Onjezani mzerewu usanayambe kuwongolera malingaliro a Registern, dev Registern, mu ogwiritsa ntchito / malingaliro.py.

nano users/views.py
# ... (pambuyo) def reges (pempho):
# ... (kale) amaperekanso (

Simuyenera kuwonjezera mizere yoyamba ndi yomaliza mu code ija, ingotsimikizirani kuti muwone imelo yotsimikizira imatumiza imelo. Ziyenera kuwoneka motere:

# ... zotuluka
            send_verification_email(user) # Onetsetsani kuti muwonjezere mzerewu!

Tsopano, tifunikira kuwonjezera fomu kuti isinthe imelo. Ogwiritsa / mafomu.py, onjezani fomu iyi:

# ... (zotulukapo)

Tidzafunanso templala yolingana ndi mawonekedwe a imelo. Tiyeni tiwonjezere template iyi. Sinthani fayilo:

nano users/templates/users/resend_activation.html

Kenako, onjezani nambala yotsatirayi.

Whew, ndizo zochuluka! Tsopano, tikatumiza code ku seva yathu, tidzatha kutumiza imelo ya HTML ndikuyambitsa maakaunti ogwiritsa ntchito ndi imelo. Tingafunenso kutumiza imelo yovomerezeka, kotero tiwone momwe mungachitire izi. Kubwerera mu Ogwiritsa / Imelo.Py, onjezani nambala yotsatirayi:

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)

Komanso, tidzafunikira template kuti tikwaniritse zonsezi. Pa webusayiti yanga, template imawoneka pansipa, koma ndinu olandilidwa kuti musinthe.

Dziwani kuti sitikhala ndi ma tag otsetsereka kapena html, chifukwa timawonjezera izi tikamawonjezera ulalo wa HTML. Izi ndizofunikira, koma sitikufuna kuzimasulira kawiri.

Ndiye wotsatira ndi uti? Tapita kutali. Zowonadi, tiyenera kukhala okonzeka kuperekera malowa ku seva. Titha kuwonjezera zokongoletsedwa ndi @login_kupangitsa malingaliro athu kukhala otetezeka, osakanikirana, tumizani imelo yogwirizana, ndi chidziwitso cha COBS, chomwe ndi maziko a tsamba la webusayiti ayenera kuchita zothandiza. Tidzawonjezera magawo ena othandiza, kenako pangani maziko potumiza nambala yathu ku seva yakutali, kukhazikitsa makina a makalata, makonzedwe a Domain, ndi zophweka kuti malo athu akhale otetezeka komanso oyenera.

Tidzafunikiranso mawonekedwe achinsinsi, kotero tiyeni tiwonjezere mwachangu. Makina opangidwa ndi Django omwe amapezeka password amawonongeka nthawi ina, koma tiwona momwe tingalemberere malingaliro athu, imelo, ndi ma url. Izi ndi zomwe malingaliro akuwoneka ngati, ogwiritsa ntchito / malingaliro.py

# ... zotuluka

Fomuyi imamangidwa ku Django, koma tifunikira template kuti zitsimikizire kuti kubwezeretsanso kwachinsinsi, ogwiritsa / ma templates / ogwiritsa ntchito - achinsinsi -

Tilinso ndi template kuti titumizire imelo yokonzanso mawu achinsinsi, ndi mawonekedwe osavuta, ogwiritsa ntchito / ma templates / ogwiritsa ntchito / ogwiritsa ntchito ...html

Chinsinsi cha imelo ndi chosavuta, ndi fayilo yoyambira ya HTML yokonzanso mawu achinsinsi, ogwiritsa ntchito / ma templates / ogwiritsa ntchito - DJAngo imangotanthauzira fayilo iyi.

Tiyeneranso ma tempulo ena awiri. Choyamba ndikutsimikizira kuti imelo yatumizidwa. Mawonedwe a awa ali kale mu Django, kotero tikungofunika kuziyankha mu URLS.PPY. Chinsinsi ichi chili pa ogwiritsa ntchito / ma templates / ogwiritsa ntchito / achinsinsi_Dese.html

Ndipo komaliza, kutsimikizira kuti kubwezeretsa kwapachinsinsi kuli kokwanira, ogwiritsa / ma templates / ogwiritsa ntchito / ogwiritsa ntchito - achinsinsi -

Tsopano, tikufuna mapangidwe a url chifukwa cha malingaliro awa. Ogwiritsa ntchito / urls.py, onjezani njira zotsatirazi:

    # ... ma urls asitikali pano

Ma temlalai anayi, ndiye zambiri! Koma tsopano titha kukhala otsimikiza kuti mubwezeretsenso mawu achinsinsi nthawi iliyonse yomwe tikufuna, zonse kuchokera pa tsamba lawebusalo.

Ndikumvetsa kuti izi ndi nambala yambiri. Ngati zikuwoneka pang'ono pamutu panu, ndizabwino. Mudzayenda bwino, kumvetsetsa kwanu kudzakhala koyenera, ndipo mudzakhala wokhoza kwambiri ndi code posachedwa. Ngati mukutayika kwathunthu, ndikulimbikitsa kuti mubwerere ku pulogalamuyi pambuyo pake mutayamba kugwira ntchito yodzifunsa nokha kuti muphunzire maphunziro pa intaneti. Awa nthawi zambiri amakhala omasuka kuyamba, ndipo adzakutsogoletsani kudzera pazonse zomwe muyenera kuchita bwino mukadzabweranso ku polojekiti iyi. Ngati mukumva ngati muli okonzeka kupitiliza, werengani, kenako, tikambirana kutumizirana nambala yanu ndikukhazikitsa manyuzi ndi mabungwe atsopano ndi malamulo osavuta ambiri.

Chinthu chomaliza chomwe tikufunika kuchita musanatumize ku seva yakutali ndikupangitsa kuti tsamba lathu likhale lotetezeka pang'ono. Muzindikira kuti malingaliro olowera amangoyambitsa dzina lolowera ndi mawu achinsinsi, ndipo palibe chitsimikizo chambiri kapena nthawi imodzi. Uku ndikusintha kosavuta, ndipo ndi nambala yomweyi, titha kupangitsa kuti malo athu atumize mameseji ndipo ngakhale kutumizirana mameseji kutumizira seva. Poyamba, tidzabwereranso ku ogwiritsa ntchito ndikuwonjezera sizalambiri yomwe ikuyimira kulowa kulikonse. Tidzawonjezera chizindikiritso chapadera, choyendetsedwa ndi ogwiritsa ntchito zomwe zingagwiritsidwe ntchito kuwonjezera chitetezo chowonjezera kulowera. Kusintha Mitundu, Ogwiritsa Ntchito / Models.py, Onjezani nambala yotsatirayi:

# Onetsetsani kuti mwatanitsa UUID, simtali waminonda ndi url genereta (kusintha)
    # Onjezani nambala iyi pano
    # Ndipo onjezani ntchitoyi
            TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # Zovomerezeka kwa mphindi zitatu

Onetsetsani kuti ogwiritsa ntchito / Anu.y amawoneka ngati awa, kupatula ndemanga (Code pamizere ndi #). Kuphwanya izi, ndikosavuta. Tili ndi ntchito zochepa, nthawi yopuma yomwe ndi yothandizira kuti ipange nambala yotetezeka ndikutsimikizira kuti ndizovomerezeka, osagwiritsidwa ntchito kamodzi, osati wamkulu kuposa masekondi angapo. Timagwiritsanso ntchito UUID, yomwe ndi chizindikiritso chapadera chomwe chimazindikiritsa wogwiritsa ntchito posayina chizindikiro, ndipo mu ulalo womwe chizindikiro chimatumizidwa kwa wogwiritsa ntchito. Tigwiritsa ntchito mawu oyambira oyambira kuti apange mawonekedwe awiri omwe. Tisanachite china chilichonse, tiyeni tichite kusuntha kuti mitundu yathu ya ogwiritsa ntchito isinthidwa. Mu chikwatu chomwe ndikuwongolera.py, yendetsani malamulo otsatirawa kuti mukwaniritse ndikumaliza kusamuka.

source venv/bin/activate
python manage.py makemigrations && python manage.py migrate

Izi ndizofunikira chifukwa nthawi iliyonse tikasintha zitsanzozo, tidzafunikira kupanga matebulo ndikusintha database ndi zinsinsi tisanagwiritse ntchito zitsanzozo.

Kenako, tiyeni tichite bwino malingaliro athu olowera kuti akhazikitsenso mawonekedwe otsimikizika. Mu ogwiritsa ntchito / malingaliro.py, chotsani ntchito yolowera ndikuwongolera ku URL tangopanga mitundu ya ogwiritsa ntchito.

# ... zotuluka
        if user and user.profile.can_login < timezone.now(): # Dziwani kuti tsopano tikuwona ngati wogwiritsa ntchito akhoza kulowa
            # Chotsani ntchito _Login ntchito yomwe inali pano
                return redirect(user.profile.create_auth_url()) # Dziwani kuti timaperekanso ulalo watsopano pano
            else: # Ngati wogwiritsa ntchito sakugwiritsa ntchito kutsimikizika kwa mitundu yambiri, ingolowetsani.
        else: # Ngati malowe sanali opambana,
            user = User.objects.filter(username=username).first() # Ili ndiye gawo lomwe timasinthiratu
                profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # Kotero sangathe kulowanso kwa masekondi angapo

Chifukwa chake izi ndizosavuta, tsopano tili ndi njira yobwezeranso ku malingaliro azotsimikiziro awiri omwe timawalenga. Tilinso ndi vuto ngati wogwiritsa ntchito sanawonjezere nambala yafoni. Tionjezera lingaliro loyambira kuti liwonjezere nambala yafoni posachedwa ndikulowa ndi meseji posachedwa.

Choyamba, timafunikira njira yosavuta yotumizira uthenga kuchokera ku code yathu. Kuti tichite izi, titha kusankha kuchokera ku apis angapo, koma osavuta kwambiri m'malingaliro anga ndi Twilio. Amaperekanso mitengo yabwino yamapulojekiti ang'onoang'ono, komanso kuchotsera kwakukulu. Pangani akaunti pa Twilio.com, lembani mwatsatanetsatane za polojekiti yanu, gulani nambala yafoni, ndikukopera makiyi anu a apic ku zoikapo. Kenako, onjezani nambala iyi pansi pa fayilo yatsopano, ogwiritsa ntchito / SMS.YPY.

nano users/sms.py
# Ikani mapaketi onse ofunikira
# Nambala iyi imatumiza malembawo ndi Twilio
# Ntchito yothandizira kuti ipeze nambala ndi manambala ambiri
# Tumizani lembalo kuti mutsimikizire wogwiritsa ntchito
# Tumizani wogwiritsa ntchito lemba lililonse ndi ntchitoyi
# Vomerezani nambala ndi izi
# Khalani ndi nthawi

Onetsetsani kuti mwasintha makonda anu moyenerera, ndikuwonjezera mizere iyi ndi makiyi anu:

# Onetsetsani kuti potengera izi kuchokera ku Twilio Dashboard yanu
AUTH_VALID_MINUTES = 3 # Kuchuluka kwa mphindi za TFA Tsamba la TFA limagwira nthawi yomweyo

Choyamba, tidzafunikira mafomu a zinthu zathu ziwiri zotsimikizika. Kusintha Ogwiritsa / Mafomu.py, onjezani nambala yotsatirayi.

# ... zotuluka
# Fomu yolowera nambala yathu ya foni
# Fomu Yotsimikizika

Kenako, tiyeni tipangire malingaliro mu ogwiritsa ntchito / malingaliro.py

# ... zotuluka

Tidzafunanso ma templanges a onse onsewa. Tiyeni tionjezere template ya MFA yoyamba.

nano users/templates/users/mfa.html

Onjezani nambala iyi ya HTML ku template

Izi ndi zokongola zokha. Fomuyi imatumiza nambala kapena nambala yopanda kanthu, ndipo mudzazindikira mu malingaliro omwe timatumizira nambala ngati talandira code yopanda kanthu. Kenako timangokhala ndi mabatani awiri obwerera, ndipo motere titha kutumiza nambala ndi batani lililonse. Kenako, tiwonjezera mawonekedwe osavuta kuti muwonjezere nambala yafoni.

nano users/templates/users/mfa_onboarding.html

Onjezani zotsatirazi za HTML:

Fomuyi ndi yosavuta kwambiri, imangopereka fomu ya foni yomwe tidapanga ndipo imalola wosuta kuwonjezera nambala yafoni.

Izi zimawoneka bwino kwambiri! Malingana ngati chilichonse chimakhazikitsidwa moyenera, tiyenera kutumiza mauthenga, ndikulemba wosuta ndi nambala yawo yafoni mukangowonjezera ma url. Chinthu chomaliza chomwe timafunikira kukhazikitsa mbiri ya mbiri kuti tiwonetsetse kuti wogwiritsa ntchito sangasinthe nambala yawo popanda kulowa "kuti atuluke" kuti atumize mauthenga amtsogolo.

Tiyeni tiwonjezere lingaliro la ogwiritsa ntchito / malingaliro.py. Malingaliro awa adzasintha Bio, imelo, dzina lolowera, ndi nambala yafoni, komanso kutilola kuti titsimikizire kutsimikizika kwa zinthu zambiri. Choyamba, tifunika mitundu iwiri ina mu ogwiritsa / mafomu.py

# ... zotuluka

Kenako, titha kupanga lingaliro logwiritsa ntchito mitundu yonseyi. Sinthani ogwiritsa / malingaliro.py ndikuwonjezera mawonekedwe.

# Onjezani izi

Tiyeneranso kuyesa template chifukwa cha malingaliro awa.

nano users/templates/users/profile.html

Mungazindikire kuti uwu ndi mtundu wosavuta, koma uli ndi JavaScript mwa iwo omwe amangolemba zomwe zili mu fomu momwe zimasinthidwira. Izi ndizothandiza kukhala nazo, kotero mutha kupanga zida popanda kukakamiza nthawi iliyonse.

Kenako, tikufuna ma urls kuyimira malingaliro onsewa mu ma sapoti a URL. Sinthani ogwiritsa ntchito / ma urls.py ndikuwonjezera nambala iyi:

# ... nambala yapita, kutumiza
# ... ma url ma urter tidalowa kale, onjezerani mizere itatu yotsatira

Ino ndi nthawi yabwino kuyesa ntchito yathu. Koma choyamba, tiyeni tichite zosunga zina.

backup

Ndikuyendetsa seva. Tisanaperekeze ku seva ya Linux, ndi lingaliro labwino kuti mutsimikizire kutsimikizika kawiri pa akaunti. Tidzachita izi ku URL yathu, / Ogwiritsa / Mbiri /, ndikuyang'ana bokosi kuti mutsimikizire mukadzalowa nambala yathu, kenako ndikutumiza fomuyo.

python manage.py runserver localhost:8000

Pitani patsamba lanu popita ku msakatuli wanu, ndikugwiritsa ntchito Google Christal pachitsanzo ichi, ndikulowetsa ulalo wa URL: // komweko: 8000 / maakaunti /

Mudzatha kulowa ngati pakufunika ndikuthandizira kutsimikizika kawiri konse.

Pulojekitiyi ikufunika seva kuti ithamangire kuti ithe kutumiza makalata. Koma choyamba, timafunikira njira yopezera zolakwa. Mungazindikire kuti ngati mungayendetse seva mu Debog mode, yokhala ndi zoikamo.debug ofanana, seva imawonetsa zolakwa zokha. Kuti muwonetse zolakwika popanda kugwiritsa ntchito njira yolakwika, yomwe siyikutetezeka pa seva yopanga, tiyenera kuwonjezera lingaliro. Zolakwika zofunika kwambiri zomwe timafunikira kuti tithe kugwira:

Vuto la 500 - Vuto ndi nambala yathu Vuto 404 - tsamba lomwe silinapezeke (URL yosweka) Vuto 403 - cholakwa chololedwa

Tiyeni tiwonjezere pulogalamu yatsopano kuti igwire zolakwa izi, zotchedwa zolakwa.

python manage.py startapp errors

Onjezani izi ku zoikapo.Pendani monga kale, mu kuyika_kukhala mutakhala, ndikuyamba kuwonjezera malingaliro ena mu pulogalamu yanu ya Django.

handler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'

Izi ndi zonse zomwe tikufuna kuwonjezera pa malingaliro olakwika, ma template ndi pang'ono pang'ono. Tiyeni tifotokoze kuti:

# Pangani malingaliro anu pano.

Kenako, tiyeni tifotokozere za middaware kuti igwire zolakwika izi. Tichita izi powonjezera koyamba ku middleware_clanases.

    # ...

Kenako, tiyeni tiwonjezere middleware.

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.')

Tikuwonjezera ntchito kuti mupeze gawo laposachedwa pogwiritsa ntchito komweko, zomwe zimatithandiza kudziwa zolakwika zilizonse patsamba lathu. Pankhani ya templates, timangofunika mmodzi, chifukwa timalongosola mutuwo. Template imangofunika kupereka mutuwo ndikuti "Tsatirani", Tracesback yathu yolakwika.

nano errors/templates/errors/error.html

Awa ndi template yathu yosavuta komabe, koma ndizosavuta kuwona zolakwikazo pantchito yathu. Kenako, tiyeni tilepheretse debug mu makonda.

nano app/settings.py

Pezani mzere womwe wakhazikika, ndikusintha

DEBUG = False

Pitani patsogolo ndikusunga pulogalamuyi tsopano. Ndife okonzeka kuperekera ku seva yakutali ya linux, ndikupitiliza kuwonjezera zinthuzi.

sudo backup

Tisanatumize nambala iyi ku seva, tiyenera kuganizira kuti pakhoza kukhala zovuta ndi malamulo. Kutengera ndi mlanduwu, masamba omwe amalandila zidziwitso zomwe adaziyika zikhala ndi zovuta zomwe zimatumizidwa komanso zovuta kuchotsa sipamu. Izi siziyenera kuchitika nthawi yomweyo, koma zikachitika, tidzasanthula za SPAM yolondola pamalopo ndikupangitsa kuti pakhale maakaunti a wogwiritsa ntchito, ndikutsimikizira kuti azolowera ku ID, ngati chala kapena kuzindikiridwa ndi nkhope.

Kuyang'ana zitsanzo zotsimikizika zamitundu yamitundu yomwe timayang'ana, popanga, zinthu zitha kukhala zosiyana. Onani momwe tili ndi malire otsegula, ndi tokeni. Ngati maloboti akupeza tsamba, kutsimikizika kawiri konse kumatha kukhala kovuta kwambiri pomwe angalowe nawo ma code nthawi yomweyo wogwiritsa ntchito. Pofuna kuthana ndi izi, tiyeni tigwiritse ntchito mtundu mu mitundu yogwiritsa ntchito, kulengeza momwe timalumikizirana ndi tsamba lomwe tikutsimikizira kutsimikizika pogwiritsa ntchito nambala yafoni ndi nambala yafoni. Tidzawonjezeranso njira yoyenera kutsimikizira ndi imelo. Yambani posintha mitundu ya ogwiritsa ndi nano.

nano users/models.py

Izi ndi zomwe zitsanzo zomwe tikuwonjezera ziyenera kuwoneka. Sitikufuna njira zilizonse, zosintha zokhazokha kuti tisunge ID, wogwiritsa ntchito, nthawi yokwanira, kutalika ndi kuyesera kutsimikizika kwa zinthu iliyonse (nambala ngati 123456 yotumizidwa ku foni kapena imelo).

# Chizindikiro choyambirira chomwe chimagwiritsidwa ntchito kuti mulowe patsamba la webusayiti

Tionjezerenso mwayi kwa wogwiritsa ntchito wathu, ndipo tidzaziyika pakali pano kuti tisiye kulembetsa ogwiritsa ntchito bwino. Mu mitundu yogwiritsa ntchito, onjezerani mzerewu mu mbiri:

    vendor = models.BooleanField(default=False)

Monga kusintha kulikonse ku database, tifunika kupanga kusamuka ndikusamuka nthawi iliyonse tikasintha mafayilo achitsanzo.y ku Django. Kumbukirani, kuti tichite izi timagwiritsa ntchito koyamba (ngati sichinagwiritsidwe ntchito kale kuyambira pomwe ma terminal anali otseguka) kenako Python Carget.py kupanga zosamuka ndi kusamuka.

cd project-directory-you-named # (ngati pangafunike)

Pakadali pano, mutha kulembera akaunti iliyonse yomwe mwapanga ngati ogulitsa pogwiritsa ntchito chipolopolo.

python manage.py shell
from users.models import Profile
p = Profile.objects.get(user__username='Charlotte')
p.vendor = True
p.save()
exit()

Tsopano, tiyeni tisinthe mawonekedwe athu otsimikizika kuti azigwiritsa ntchito chizindikiro ichi. Choyamba, tiyenera kusintha zinthu zathu za MBA. Kugwiritsa ntchito 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
# Tsimikizirani wosuta pogwiritsa ntchito imelo kapena nambala yafoni
    token = MFAToken.objects.filter(uid=username, expires__gt=timezone.now() + datetime.timedelta(seconds=30)).order_by('-timestamp').last() # Fululirani chizindikiro ndi mtengo womwe wadutsa mu URL (UUID)
    if not token: token = MFAToken.objects.create(user=User.objects.filter(profile__uuid=username).first(), uid=username, expires=timezone.now() + datetime.timedelta(seconds=115)) # Ngati gawoli silinapangidwe, pangani
    user = User.objects.filter(id=token.user.id).first() # Pezani wosuta kuchokera ku chizindikiro
    if not user and request.user.is_authenticated: return redirect(reverse('feed:home')) # Ngati atsimikizika kale, mulowetseni
    if not user: raise PermissionDenied() # Kukana ngati palibe wogwiritsa ntchito
    if not user.profile.enable_two_factor_authentication and user.is_active and user.profile.check_auth_token(usertoken, token): # Onani chizindikiro cha auth
        auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Lowani mu wogwiritsa ntchito ngati sanalowe kale
        user.profile.mfa_expires = timezone.now() + datetime.timedelta(minutes=settings.LOGIN_VALID_MINUTES) # Khazikitsani kutsimikizika pa zotsimikizika zamitundu yawo
        return HttpResponseRedirect(next if next != '' else reverse('landing:landing')) # Sinthani wosuta ku tsamba lotsatira
    if not user.profile.mfa_enabled: # Onani ngati MFA imathandizidwa
        if not check_verification_time(user, token): # Onani nthawiyo
            user.profile.mfa_enabled = False # Chotsani nambala yafoni
            user.profile.enable_two_factor_authentication = True # Yambitsani MFA
            user.profile.phone_number = '+1' # Letsani nambala yafoni
            user.profile.save() # Sungani mbiri
            auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Lowetsani wogwiritsa ntchito ngati MFA yawo siyotha
    if request.method == 'POST' and not fraud_detect(request, True): # Ngati pempholi ndi pempho la positi
        form = TfaForm(request.POST) # Sinthani mawonekedwe
        code = str(form.data.get('code', None)) # Pezani nambala
        if code and code != '' and code != None: # Onetsetsani kuti zilibe kanthu
            token_validated = user.profile.check_auth_token(usertoken) # Onani chizindikiro cha auth
            is_verified = check_verification_code(user, token, code) # Chongani nambala
            if token_validated: # Ngati chilichonse
                if is_verified: # Ali mu dongosolo
                    user.profile.mfa_enabled = True # Yambitsani MFA (ngati sanathe kale)
                    auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # Lowani mu wogwiritsa ntchito
                    for key, value in request.GET.items(): # Pangani njira yobwereza kwa gawo lotsatira (ngati alipo)
                        return HttpResponseRedirect(next) # Reactirect
            elif not token_validated: # Ngati chizindikiro chinali chosavomerezeka
            if p.mfa_attempts > 3: # Ngati panali zoyesayesa zochuluka
            if form.data.get('send_email', False): # Tumizani imelo (kapena mawu)
    # Sinthani mawonekedwe (popempha)

Tikamawonjezera nambala iyi, onetsetsani kuti mwatanitsa ntchitoyo kuti itumize imelo. Pamwamba pa fayilo, malingaliro ogwiritsa ntchito (ndi zina), onjezani

from .mfa import send_verification_email as send_mfa_verification_email

Tsopano, tiyenera kulemba ntchito imeneyi isanagwire ntchito. Iyenera kuwonjezera kutumiza imelo, ndikungotumiza imelo kwa wosuta ndi nambala yotsimikizira.

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))

Chifukwa chake zonse izi ndizovuta kwambiri, tsopano tili ndi dongosolo lotsimikizira kuti lili ndi nambala yafoni kapena imelo kuti tikhoze kulowa. Koma timafunikiranso njira yochotsera, kapena ogwiritsa ntchito omwe sagwirizana nawo. Izi zitha kukhala spommers, maloboti kapena wina aliyense amene sakutanthauza ntchito yathu. Onani malingaliro omwe ndili nawo chifukwa cha ogwiritsa ntchito patsamba langa:

# zotulukapo
from .tests import is_superuser_or_vendor # Tidzafunika kupanga mayeso awa
    # Pezani mndandanda wa ogwiritsa ntchito
    return render(request, 'users/users.html', { # Ogwiritsa ntchito mu template

Dziwani kuti nambala iyi imagwiritsa ntchito mayeso, tidzafunikira kulengeza izi m'mayeso a mayeso.ypy ndikuitanitsa. Kusintha Ogwiritsa / Kuyesa.py, tiyeni tipange mayeso.

def is_superuser_or_vendor(user):
    return user.profile.vendor or user.is_superuser

Izi zili molumikizana ndi ogwiritsa ntchito / ogwiritsa.html template, yomwe imawoneka ngati iyi:

Dziwani kuti template imaphatikizapo template ina, ogwiritsa ntchito /wogwiritsa.html. Mukamagwiritsa ntchito template yomwe imakhala ndi bongalate ndipo osagwiritsa ntchito mawu, ndi lingaliro labwino kuwonjezera () Tchulani dzina la fayilo kuti lichuluke, kuti lisiyanitse ma tempi.

Dziwani kuti ili ndi jinja yaikulu, mwina simungakhale ndi zinthu zonse zomwe zafotokozedwa. Koma izi ndi zomwe nambala yanga imawoneka.

      <small># {{wogwiritsa ntchito.id} </ yaying'ono>

Tikufunanso ntchentche ina, sinthani_kuyenda bwino.html. Templateyi iyenera kukhala mawonekedwe omwe amalola kuti tiletse kuti wogwiritsa ntchito azigwira ntchito.

Tidzafunikanso kuwonjezera lingaliro loti tisinthe ntchito, komanso njira zoyenera ulalo. Tili mmene tili, tiyeni tiwonjezere kuchotsera wogwiritsa ntchito ngati tikufuna.

# Zotulukapo
    success_url = '/' # Kubwezeretsanso kwa URL yopambana
    def test_func(self): # Yesani ngati wogwiritsa ntchito ndi wolemera ndipo ali ndi chilolezo chochotsa

Ngakhale izi ndizotheka pakafunika kutero, kuchotsa wogwiritsa ntchito sikuyenera kuyenera nthawi yambiri, titha kungotsegulanso mawonekedwe a ogwiritsa omwe amapita kumalo ngati tikufunika kuwachotsa.

Zithunzi za URL tidawonjezeranso zikuwoneka choncho. Ndi nano, ogwiritsa ntchito / ma urls.py ndikuwonjezera mizere iyi:

nano users/urls.py

Mizereyo iyenera kupita pamndandanda wa njira zomwe zimapangitsa kuti asunge, lisanafike "] koma pambuyo pa chiyambi" [".

# ...
# ...

Tsopano, onetsetsani kuti mubwezeretse tsambalo kuti mutha kutsitsa pa seva ya pa intaneti yomwe tikupitilizabe. Kuchokera pamzere wa lamulo,

sudo backup

Tsopano tsamba lathu limasungidwa.

Chifukwa chake tsopano tili ndi zinthu zochepa zothandiza. Koma bwanji za chithunzi chachikulu apa? Nambala iyi siyipezeka pa intaneti, tiribe seva ya makalata pano, ndipo tiyenera kukulitsa pulogalamu yathu kuti iphatikizepo njira yotsimikizika yokwanira kuti mufufuze malowa, pamodzi ndi ma protocols ovomerezeka kuti titsimikizire ogwiritsa ntchito bwino.

Tifika pa zonsezi. Chofunikira kwambiri pakali pano chingopeza nambala iyi pa intaneti, yomwe titha kuchita ndi mizere yochepa chabe ya bash pa seva ya Ubuntu. Muyenera kubwereka Server pa nkhaniyi, pokhapokha mutakhala ndi seva kunyumba ndi kulembetsa pa intaneti komwe kumakupatsani mwayi wotsegula madoko. Ndimayendetsa ndege yanga pa HP Z440 yomwe yaikidwa mchipinda changa, koma nthawi zambiri limakhala lotsika mtengo kwambiri kuti libweretse seva yapamwamba (VPS).

Dziwani kuti nambala yomwe tikutha tsopano ndi yoonda, iyenera kusungidwa ndikusintha tisanakonzekere kugwiritsa ntchito zomwe tili nazo kuti tipeze malonda. Onetsetsani kuti musamale zomwe mumachita pa intaneti, onetsetsani kuti mwatumiza tsamba ili pagulu la seva pa seva ya Linux, muli ndi mapulani oletsa tsatane ndi tsamba lanu. Izi sizingakhale vuto poyamba, koma tiona njira zosiyanasiyana zothanirana ndi izi, kuphatikizapo kuphunzira makina, luntha laukadaulo ndi masomphenya makompyuta. Ikakhala vuto, yang'anani palemba ili pa yankho.

Pankhani yobwereka VPS, pali malo ambiri omwe mungapiteko. Mtambo wa Google ali ndi maseva a VPS, oos, Kamathera, Amazon AWS, ndi opereka ambiri amathetsa njira zothetsera mavuto omwe angakwaniritse zosowa zathu.

Muyenera kudina mitundu yawo ndikusankha dongosolo kuti muyambe. Mutha kupita ndi pulani yoyambira ndi wopereka aliyense, koma onetsetsani kuti woperekayo akulola kuti mutsegule madoko a Port kuti mutumize imelo (izi zikuyenera kukhala padoko 587 ndi doko 25), opereka ena amatseka madoko awa. Pakadali pano ndakhala ndikukumana nazo kwambiri ndi Ionos ndi Kamathera, onsewa amandilola kutumiza imelo yopanda malire ndipo mitengo yawo ndi yotsika mtengo.

Mudzalumikizana ndi seva yanu yatsopano pa protocol yotchedwa Ssh kapena chipolopolo chotetezedwa, chomwe chimakupatsani mwayi wakutali ndi seva yomwe ili ngati kompyuta yanu, kuchokera pa kompyuta yanu. Mukakhazikitsa seva, wopereka wamkuluyo akufunsani kuti muwonjezere kiyi ya ssh, kapena adzakupatsani dzina lolowera ndi mawu achinsinsi. Chinsinsi cha SH ndi momwe mungagwiritsire ntchito ku seva kuchokera ku Command kuti musinthe nambala. Gwiritsani ntchito njira zomwe zili pansipa za SHS-Key-Key-Key-Key-Key-Key kuti mupange fungulo la ssh.

ssh-keygen

Sungani fayiloyo ndikulemba ngati mukufuna, ndibwino kuzungulira makiyi anu a ssh ngati simunatero. Tsopano, mutha kugwiritsa ntchito lamulo lotsatira kuti muwone kiyi yanu ya SHS. Mudzafuna kutengera seva yanu yakutali kuti mutha kugwiritsa ntchito kuti mutsimikizire.

cat ~/.ssh/id_rsa.pub

Ngati simunathe kuwona kiyi ya SHsh mukamalamula (zingwe zazitali za manambala ndi zilembo zoyambira ndi "ssh-rsta AAA"), yesani kuyimilira.

ssh-keygen -t rsa -b 4096

Pangani vps ikuyenda ubuntu, komabe mukufuna kuchita izi. Mukangopanga vps podina mafomu pa Webusayiti ya Othandizira (Kamatera.com, Inos.com), mumafuna kulowa nawo. Muyenera kukhala ndi chidwi ndi dzina lolowera pa seva yomwe tidapanga, mwachitsanzo, Ubuntu.

ssh ubuntu@XX.XX.XX.XX

Mutha kufunsidwa ndi mawu achinsinsi, ngati mukufunsidwa mawu achinsinsi, lembani. Sitigwiritsa ntchito dzina lolowera, kotero tiyeni tiyambe kupanga wogwiritsa ntchito watsopano ndikuwonjezera chinsinsi cha SHS ku akaunti yawo.

Tiyeni tiyambe powonjezera fayilo yatsopano ya SSSD -conk, yomwe imauza seva momwe mungagwiritsire ntchito ssh.

nano sshd_config
# Ili ndiye fayilo ya SSHD ya SSVARDER TRUSTRARD.  Kuwona
# SSD_Config (5) kuti mumve zambiri.
# SHDD iyi idaphatikizidwa ndi njira = / USR / CBR: / USR / Bin / Cinr / SBR: / Ber / USR / Masewera
# Njira yomwe imagwiritsidwa ntchito pazosankha mu sshd_config yotumizidwa ndi
# Tsegulani ndikutchulanso zosankha ndi mtengo wawo wokhazikika kuti
# zotheka, koma zisiyeni zonena.  Zosankha zosakanikirana zimapitilira
# mtengo wokwanira.
# Port 22
# Adilesi iliyonse
# Mbatizi 0,0.0.0
# Mverani ::
# Woyambitsa / etc / ssh / ssh_host_rsa_key
# Stockey / etc / ssh / ssh_host_ecdsa_key
# Stockey / etc / ssh / sshst_ed25519_key
# Ziphuphu ndi zokopa
# Rekeylit osakhazikika
# Kudula
# MayslogFacfo
# Chidziwitso cha Loglevel
# Kutsimikizika:
# Kolowera 2m
# Chinsinsi cha chilolezo
# Oyang'anira inde
# Maxautities 6
# Maxsessis 10
# Yembekezerani .ssh / Wovomerezeka_keys2 kuti amverere.
# Wovomerezeka palibe
# Wovomerezeka satero
# Wovomerezeka ndi munthu
# Kuti mugwire ntchito mudzafunikiranso makiyi a IND / Etc / Ssh / Ssh_Ad_Ad_hosts
# Wokhala wozunzidwa ayi
# Sinthani kukhala inde ngati simukhulupirira ~ / .ssh / kudziwika_hosts
# Wotsimikiza
# Kunyalanyaza soinoshosts
# Osawerenga ~ /.Rosts ndi ~ /.shosts
# Kunyalanyaza inde
# Kuletsa mapasiwedi odziwika bwino, kusintha kwa Ayi!
# PermitemptyPassPaps ayi
# Sinthani ku Inde kuti muthetse masiwebusayiti oyankha (machenjere ndi
# ma Pam ena ndi ulusi
# Zosankha za Kerdos
# Kerberosiautive no
# Kerberoorlocalddyd
# Kerberseckiccleanups Inde
# Kerberosgafs
# Zosankha za GSsapi
# Gssapiauntication ayi
# Gssapicleanupcrediess Inde
# GSSapistrictCictcheck inde
# Gssavakikeyexchange ayi
# Khazikitsani izi kuti 'Inde' athandizire kutsimikizika, kukonza akaunti,
# ndi gawo la pokonzekera. Ngati izi zathandizidwa, kutsimikizika kwa Pam
# kuloledwa kudzera mu kbdinteractive ndi
# Chinsinsi.  Kutengera mawonekedwe anu,
# Pam kutsimikizika kudzera pa kbdinteractive chipwirikiti
# kukhazikitsidwa kwa "betrootlootlogin popanda-achinsinsi".
# Ngati mukungofuna Pam akaunti ndi mawonekedwe a gawo kuti ayende popanda
# Kutsimikizika kwa Pam, kenako onetsetsani izi koma kukhazikitsa chinsinsi
# ndi kbdinteractive in 'Ayi'.
# Zovomerezeka Inde
# Lolani Inde
# Chipata chalibe
# X11displayftfsert 10
# X11ugulhost sol
# Lolatty Inde
# Priplastlog Inde
# Tcpkeepel Inde
# Loattiverreeronivents ayi
# Kusokonekera
# Makasitomala a 0
# MakasitomalaMax 3
# Osagwiritsidwa ntchito
# Pidfile /run/sshd.pid
# MaxstartarPeps 10: 30: 100
# Chilolezo ayi
# Chrootdirekiver palibe
# Valani Palibe
# palibe njira yopanda chinsinsi
# Lolani kasitomala kudutsa malo a malo osinthira
# Kupitilira kosasunthika
# Chitsanzo chopitilira makonda ogwiritsa ntchito ogwiritsa ntchito
# Gwirizanani ndi oncvvs
# X11Forching no
# Lolani NO
# Chilolezo ayi
# Masewera a CVS

Kumbukirani, Ctrl + X ndi Y kuti musunge fayilo. Chotsatira, tiyeni tilembe zolemba zoyambira zomwe zimayambitsidwa (zonse mu Directory Yogwiritsa Ntchito Yathu).

nano initialize

Onjezani mizere iyi ku fayilo, ndikusinthandi kiyi yanu ya SH yomwe mudapeza pogwiritsa ntchito mphaka. (.ssh / id_rsa.pub)

# ! / bin / bash

Kuyenda mu fayilo iyi, tiyeni tiyambire mzere. Mzere woyamba umauza wopanga kuti uwu ndi script ya bash. Kenako tikukhazikitsa zodalira, kukopera SSD_Config ku chikwatu cholondola, chotsani makiyi a ssh, ndikupanga dzina la ogwiritsa ntchito " Tionjezeranso gulu kupita ku gulu la Sudo, lonjezerani fungulo lawo la ssh, onjezerani chinsinsi chathu kuti tivomereze makiyi ndi nyonga zawo, ndikusindikiza fungulo lawo. Wogwiritsa ntchito watsopanoyu adzakhala momwe timalowera patsamba.

Mu gawo latsopano, pitirirani ndikutsegulanso seva.

ssh team@XX.XX.XX.XX

Simuyenera kufuna mawu achinsinsi nthawi ino, kukhala ngati muli ndi kiyi ya ssh. Talemalanso kulowa ndi mawu achinsinsi kuti tsamba likhale lotetezeka.

Tsopano, seva iyi imayamba kukhala yopanda kanthu popanda chidziwitso. Tiyeni tiyambe pomanga pulojekiti yathu kuchokera ku git kuti titha kutsitsa ndikuyendetsa pamakina akutali. Pa seva yakutali yolumikizidwa pa SSH, kusindikiza choyambirira cha SH:

cat ~/.ssh/id_rsa.pub

Kenako, pangani fungulo ili mu zoika zazikulu monga tidatero musanakhazikitse malo osungira git. Mwina tsopano titha kuzungulira polojekiti yathu mwachindunji ku seva. Onetsetsani kuti mwakonza ntchitoyi kwanuko koyamba kuti ikhale ya seva yotsitsa.

git clone git://github.com/you/yourproject.git

Wangwiro. Tsopano mafayilo onse ali pano. Titha kuwaona ndi LS

ls

Tsopano, tiyeni tiyambe kukhazikitsa seva. Choyamba, lembani dzina lanu la polojekiti yomwe tidzagwiritse ntchito polojekiti.

cp -r yourproject whatyoucalledit

Kumene "Ichoucaldit" ndi dzina latsopano la polojekiti yanu. Kenako, tidzafunika kumanga zinthu zofunika kukhazikitsa seva. Tisunga izi ndikugwiritsa ntchito mtsogolo. Kuti mupange zofunikira izi, tiyeni tipangitse wogwiritsa ntchito kuti afotokoze momwe timasinthira kalembedwe. Kugwiritsa ntchito Bash, Edit / USR / bin / ascript

sudo nano /usr/bin/ascript

Onetsetsani kuti mukugwiritsa ntchito SuDo pamenepo kuti mukhale ndi chilolezo chosintha fayilo. Mu fayilo, onjezani mizere iyi:

# ! / bin / bash
    echo "# ! / bin / bash ">> / USr / bin / $ 1

Kumbukirani mawu awa amakangana, dzina la zilembo, monga $ 1. Choyamba zimayang'ana ngati fayilo ilipo, kapena ngati ina imapanga icho, imawonjezera mzere woyamba kunena kuti ndi / zina zololeza kuti tisunge mayina a zomwe tikupanga. Ngati fayilo ilipo kale, ingosinthani chilolezo ndikusintha. Sungani fayiloyo, kenako tisinthe ndi chilolezo. Malingana ngati tigwiritsa ntchito scrept iyi, sitiyeneranso kuchita izi.

sudo chmod a+x /usr/bin/ascript

Wangwiro. Tsopano tiyeni tipangire zolembedwa. Choyamba, osakulepheretsani, koma yang'anani zomwe makonzedwe anga akhazikike akuwoneka. Tidzayenda pazomwe scrept iyi iyenera kuwoneka ngati polojekiti yanu, simudzafunikira chilichonse m'gulu langa kuti muyambe nazo.

# ! / bin / bash
# Sudo Chmod A + X / Ogwiritsa Ntchito
# ./script/userdup
# SS-Keygen
# Chizindikiro cha Project
# Malamulo a Log
# Nano tengani
# Git
# Kusintha ndi kukhazikitsa
# Yambitsani Clamav antivarus
# Khazikitsani dzina
# Kukhazikitsa Kutumiza
# Khazikitsani zosunga
# Lemekezani
# Kukhazikitsa bitdefer
# Kukhazikitsa Postfix
# Pangani mlungu
# Kukhazikitsa ufiyulenv
# Pezani ndikupanga zodalira
# Khazikitsani malamulo amoto
# Ikani zodalira za PYPI
pip3 install --upgrade opencv-python # == 4.5.4.60
pip3 install --upgrade opencv-contrib-python # == 4.5.4.60
# PIP LIP TOFCV-PYTHON == 4.5.5.64
# PIP LIP LAPTCV-PYNIB-PYTHON == 4.5.6.64
# Ikani cerbot
# Thamangitsani Chutbot
# Kwezerani Maimelo Server
# Koperani
# sudo cp /tsencvrypt/feve/fevemmebabe.com/privkey.pem Prigkey.Pam
# sudo cp /tsencryptpt/Leve/femmebabe.com/cert.pem Certic.pem
# Chigamba venv
# Khazikitsani ogwiritsa ntchito
# Khazikitsani chilolezo
# Gulu Lown Lown -r: Ogwiritsa / Var / Run /
# SuDo Chofero Chombo: Muzu / Run / Sudo / TS -R
# sudo chodd 664 db.sqlite3
# Sudo Chofen Www-deta: Ogwiritsa ntchito DB.SQliite3
# Koperani chiwonetsero ndikukhazikitsa chilolezo
# Kukhazikitsa Database
# Jekeseni pamsiri ndikuchotsa cholakwika cha SHsh cholakwika
# Sudo Sed-'-' $ '$ d' /
# Sudo Sed-'' - $ d '/ etc / mbiri
# Kopetsani zolemba ndikuyika zilolezo
# Kwezerani ndi kuthandizira
# Sinthani ma module a Apache
# sudo a2dismod mpm_event
# sudo a2dismod mpm_workker
# Sudo A2enmord mpm_preferk
# Lemekezani tsamba lokhazikika
# Yambitsani tsamba lathu
# Tsegulani daemon ndikuyambitsa Apache, Postfix ndi Operam
# Khazikitsani chilolezo
# Kusintha kwa kusinthasintha
# Imbani Inction Injini
# Khazikitsani git
# Onetsani IPV6 ndi OPANKIM POPANDA KUSINTHA
# Kukhazikitsa Kumalizidwa

Izi ndi kukhazikitsa zambiri! Mwachidule. Ma spines amadalira satifiketi ndipo imakhazikitsa seva, imakhazikitsa kasinthidwe, imayamba kusungunuka, imakhazikitsa ip, adilesi ya Operand ndi Operand. Zosavuta, koma zimawoneka ngati nambala yambiri. Sitifunikira kwambiri chifukwa sitikhala ndi zomudalira, sitikugwiritsa ntchito udzu winawake, udzu winawake kapena Dalhne, koma tikhazikitsa ena mwa iwo mulimonse kuti ayambe. Onani kuti code iyi ili ndi Domain adalemba kangapo.

Tidzafunikanso kugula dzina la Domain (lomwe ndi chindapusa cha chaka chilichonse). Ndikupangira ScardPace kuti mugule domain, malingaliro awo ndi okonda komanso osavuta kugwiritsa ntchito. Mutha kugula chilichonse chomwe mungasankhe, koma ndikugwiritsa ntchito domain femmebabe.com mwachitsanzo ichi. Mukangogula domain, mpaka pabwalo lazigawo za DZINA DZINA ndikuwonjezera mbiri yolozera malo anu ku seva ndi adilesi ya IP. Ziyenera kuwoneka motere:

@ Xx.xx.xx.xx

Ndi @ Othandizira monga mwininyumbayo, kutanthauzira pamitsinje yonse yomwe ili m'manja mwake ndi muzu domain yonse idzaperekanso kwa seva. Pali zolemba zambiri zoti afotokozere, koma titha kupitilirabe kuti tikonzekere kutumiza makalata. Kumbukirani, zitha kutenga masiku angapo musanayambe kutumiza makalata kuchokera ku seva. Zolemba za DNS zomwe takhala tikukonzekera zidzatenga nthawi kuti tifalikire.

Komabe, mbiri yokhayo yomwe tikufunika kuyamba ndi mbiri. Chifukwa chake tsopano titha kudzaza mu script pansipa malinga ndi polojekiti yathu ndikuyendetsa.

Tiyeni tiyambe ndi zilembo zazing'onoting'ono kukhazikitsa zomwe tikufuna kuti tipite patsogolo. Sitigwiritsa ntchito zodalira zambiri kapena postgresql, tingoyambitsa seva yoyambira ya HTTP ndikudandaula za kutsimikizira zomwe zachitika. Kumbukirani, kuti mupeze satifiketi ya HTTPPS ndikuyendetsa seva molimba, tidzafunika kugula domare limodzi ndi kubwereka seva. Pakadali pano, sinthani "timu" mu fayilo iyi ndi dzina la wogwiritsa ntchito, "Dir" ndi chikwatu cha polojekiti yanu, ndikupereka imelo yanu ndikuwongolera mu <> ma tag.

Kuphatikiza apo, tisananyamule nambala iyi, tifunika kusintha zoika kuti zizikonza zowongolera zomwe amathandizira, ngati alipo. Nthawi zambiri izi zili mu 'Networks' za wopereka wanu, kapena ngati mukudzikonda, mu gawo la 'port kupita' pa 'rauta yanu. Mufunanso kukhazikitsa IP yokhazikika kudzera pa rauta yanu ndi adilesi ya makina anu a seva, ngati mukugwiritsa ntchito. Muyenera kutsegula madoko otsatirawa kuti muwerenge / lembani mwayi.

22 (SSH) 25 (makalata) 587 (makalata) 110 (Makasitomala A Makalata) 80 (http) 443 (https)

# ! / bin / bash
# Malamulo a Log
# Nano tengani
# Git
# Kusintha ndi kukhazikitsa
# Yambitsani Clamav antivarus
# Khazikitsani dzina
# Khazikitsani zosunga
# Lemekezani
# Kukhazikitsa ufiyulenv
# Ikani cerbot
# Thamangitsani Chutbot
# Khazikitsani ogwiritsa ntchito
# Khazikitsani chilolezo
# Gulu Lown Lown -r: Ogwiritsa / Var / Run /
# SuDo Chofero Chombo: Muzu / Run / Sudo / TS -R
# Kwezerani ndi kuthandizira
# Sinthani ma module a Apache
# Tsegulani daemon ndikuyambitsa Apache, Postfix ndi Operam
# Onetsani IPV6 ndi OPANKIM POPANDA KUSINTHA

Musanagwire nambala iyi, onetsetsani kuti mwagula kuti wagulidwa ndi seva. Kuti muchite izi, tsegulani machipatala anu, ndikuyendetsa lamulo ili ndi tsamba lanu:

ping femmebabe.com # ikani domain pano, mukatha kujambula

Ngati zonse zikuwoneka bwino ndipo seva ikutumiza mayankho, tili okonzeka kuyendetsa script ndikukhazikitsa mapaketi komanso kuyamba, kuthandizira ndikutsimikizira ndikutsimikizira seva yathu ya Apache.

Izi sizofunikira kuti zikhazikike postfix, tiona kukhazikitsa koyamba. Pakadali pano, yendetsani nambala yokhazikitsira iyi ndipo iyenera kutenga mphindi zochepa kukhazikitsa ndikutsimikizira seva yanu. Apanso, onetsetsani kuti mwasintha dzina, imelo ndi dzina lolowera mu script malingana ndi dzina lomwe mudagula.

Tsopano seva ikuperekedwa, mutha kupita ku ulalo mu msakatuli wa pa intaneti ndikuyang'ana kuti seva ikuyenda bwino. Ngati sichoncho, yesani kudikirira kwakanthawi kochepa kwa DNS kuti mugwire kenako ndikuyendetsa lamulo lotsatira ku Renffet:

sudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com

Malingana ngati mwakhazikitsa chilichonse moyenera, muyenera kupeza tsamba losasinthika la Apache kungodziwa kuti nambala yanu ikugwira ntchito ndikuwonetsa tsamba lamoyo. Kenako, tiyeni tisinthe zikhazikiko. Tikhazikitsanso maudindo mu makonda, komanso mayps amkati.

nano yourproject/settings.py

Mu makonda, sinthani / onjezani mizere iyi.

# Tsamba la Tsamba

Tsopano, tifunika kulinganiza Apache2. Tiyeni tisinthe fayilo yomwe tidzapereka ndi mzerewu:

sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf

Fayilo yadongosolo ili iyenera kukhala ndi dzina lathu lotchedwa, ndi dzina la wosuta ndi polojekiti. Ndikugwiritsa ntchito dzina la domain Femmebabe.com, gulu la Username, ndipo polojekitiyo dzina la Femmebabe.

ServerSignature Off
ServerTokens Prod
<IfModule mod_ssl.c>
<VirtualHost *:80> 
	Redirect permanent / https://femmebabe.com/
</VirtualHost>
<VirtualHost *:443>
	ServerName femmebabe.com
	ServerAdmin team@femmebabe.com
	DocumentRoot /var/www/html

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
	Alias /static /home/team/femmebabe/static
	<Directory /home/team/femmebabe/static>
		Require all granted
	</Directory>

Alias /media/icons /home/team/femmebabe/media/
<Directory /home/team/femmebabe/media>
Require all granted
</Directory>

	<Directory /home/team/femmebabe/femmebabe>
		<Files wsgi.py>
			Require all granted
		</Files>
	</Directory>

	WSGIScriptAlias / /home/team/femmebabe/femmebabe/wsgi.py
	WSGIDaemonProcess femmebabe python-path=/home/team/femmebabe/ python-home=/home/team/femmebabe/venv header-buffer-size=100000000000 user=team
	WSGIProcessGroup femmebabe
	WSGIApplicationGroup %{GLOBAL}
	
	<Directory /home/team/femmebabe/static>
                Options Indexes FollowSymLinks
                AllowOverride All
	</Directory>

	<IfModule mod_rewrite.c>
		RewriteEngine on
		RewriteCond %{REQUEST_URI} \.(css|webp|webm|gif|png|mp3|wav|jpeg|jpg|svg|webp)$ [NC]
		RewriteCond %{HTTP_REFERER} !^https://femmebabe.com/media/.*$ [NC]
		RewriteRule ^(.+?)/$ /media/$1 [F,L]
	</IfModule>

	Include /etc/letsencrypt/options-ssl-apache.conf
	SSLCertificateFile /etc/letsencrypt/live/femmebabe.com/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/femmebabe.com/privkey.pem

	Header set X-Frame-Options: "SAMEORIGIN"
	Header set Access-Control-Allow-Origin "https://femmebabe.com"

	TimeOut 60000
	LimitRequestBody 0

	<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|webp|JPG|JPEG|wav|mp3|mp4|public|js|css|swf|webp|svg)$">
		Header set Cache-Control "max-age=30, public"
	</FilesMatch>
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
	ServerName femmebabe.com
	ServerAdmin team@femmebabe.com
	DocumentRoot /var/www/html

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	RewriteEngine on
	RewriteCond %{SERVER_NAME} =femmebabe.com
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
</IfModule>

Onetsetsani kuti mwasintha dzina la polojekitiyi, zowongolera, ndi madera mu code iyi mukakonza seva yanu. Tsopano, tifunika kuletsa tsamba lokhazikika. Izi zitha kuchitika pogwiritsa ntchito bash.

sudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl

Kenako, titha kulola malo osungirako osakhazikika ndikuyikanso pachache2, kugwiritsanso ntchito kubzala. Kumbukirani kusinthanitsa femmebabe ndi dzina la fayilo lomwe mudalengeza mukasintha mu / etc / pachete2 / malo omwe alipo /.

sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2

Bwererani kudera lanu ku Navbar. Muyenera kuwona tsamba lomwe mwakonza mu msakatuli wanu. Zabwino! Ngati simukuwona, mungafunike kusintha zina. Unikani mosamala makonda anu, kusinthika kwa apaya, ndikuwonetsetsa kuti mulibe zolakwika zilizonse, ndikuyendetsa malamulo otsatirawa kuti muwone ntchitoyi chifukwa cha zolakwa.

cd projectname
source venv/bin/activate
python manage.py check

Ngati muli ndi zolakwika mu python polojekiti yanu, iwafufuze komwe ali ndikuwakonza. Simungathe kuwona zolakwitsa zanu zonse kutengera komwe ali, kotero ngati muli ndi cholakwika chomwe chimangonena kuti "poput sichinabwereze", sinthani fayilo yotsatirayi mu chilengedwe.

nano venv/lib/python3.12/site-packages/django/apps/registry.py

Pindani ku mzere 83, pomwe cholakwika cha runtime chija chimakwezedwa (kwezani runtimeror (") osavomereza")) Izi zikuwoneka motere:

                # Pewani kuyitanitsa wobwereketsa kuti mupewe kuwononga appConfig. ()
                # njira kawiri.
# kwezani Runimeerror ("popple () sapereka")

Mutha kuyang'ananso polojekitiyi ndikuwonetsa cholakwika.

python manage.py check

Kenako mutha kuwona cholakwika ndikukonza. Mukakhala kuti mwakonzanso ndipo nambala imatha popanda zolakwa, onetsetsani kuti mwasintha fayilo kuti ioneke motere:

                # Pewani kuyitanitsa wobwereketsa kuti mupewe kuwononga appConfig. ()
                # njira kawiri.
# nokha.app_configs = {}

Adapereka seva ili pa intaneti, tikasintha zina zina, tiyenera kugwiritsa ntchito lamulo lotsatirali kuti mulembetse seva:

sudo systemctl reload apache2

Zowopsa! Koma bwanji za kutumiza makalata? Kuti muyambe kutumiza imelo, tifunika kusinthitsa kusintha kwamalamulo. Izi zikuyenera kukhala mu gawo lanu la DNS mu Scard Spacespace, kapena chilichonse chomwe mungalembetse dzina lanu lolembetsa. Tidzafunikanso kukhazikitsa ndikuwonjezera kasinthidwe, ndikuyendetsa malamulo ochepa.

Choyamba, tiyeni titenge adilesi ya ipv6 ya seva. Titsegula DNS yanu ndikuwonjezera mbiri.

Kuti mupeze adilesi ya seva ya seva, gwiritsani ntchito lamuloli:

ip -6 addr

Tsopano, titha kuwonjezera zolemba zotsatirazi ku makonda a DNS. Zolemba zanga zikuwoneka zotere. Komabe, zolembedwa zanu, muyenera kusintha adilesi ya IP ndi IP yanu (osati 75.147.182.11.214.214, ndiye mgodi). Onjezaninso madera anu m'malo mwa femmebabe.com, komanso adilesi yanu ya IPV6 yopezeka ndi lamulo lakale (simungathe kugwiritsa ntchito mgodi, Feft: FFF: Fef: Feft: Fef: 3e02). Osadandaula za Domainy pakadali pano, izi zimapangidwa pomwe tidakhazikitsa positi, seva yamakalata, ndi Operam, ndikusindikiza fungulo. Tidzakhazikitsa izi zomaliza.

@ A N / A 75.147.182.214

@ Mx mX 10 femmebabe.com

@ Ptr N / A femmebabe.com

@ NDILEMBERENI N / A Txt @ v = spf1 mx ip75.147.182.214IP6: Fef6: FA80 ::7A: FFF: Feft: FA49 ~ Onse

osasinthika._bimi NDILEMBERENI N / A v = BIMI1; L = HTTPS: //femmebabe.Media/stia/stricac/femmmebabe.svg

_DMarc NDILEMBERENI N / A v = DAMAC1; p = palibe

Componly.ya NDILEMBERENI N / A

Tsopano, tifunikira kuwonjezera kasinthidwe kwina kokhazikika kwa postfix. Zomwe tikuyenera kuchita ndikuonetsetsa kuti tikusintha dzina la domain, femmebabe.com, lomwe lili ndi dzina lomwe mukugwiritsa ntchito. Tiyeni tiwone mafayilo onse amodzi ndi amodzi, ndikuwayika mu chikwatu chotchedwa Offlojekiti yathu, kukhazikitsa ku OS.

nano config/etc_postfix_main.cf

Onjezani izi ku fayilo

# Onani /srur/share/postfix/main.cf.dist ya mawu onenedwa, ochulukirapo
# Debian cons: Kufotokozera dzina la fayilo lidzayambitsa yoyamba
# mzere wa fayiloyo kuti igwiritsidwe ntchito ngati dzinalo.  Kuwonongeka kwa debian
# ndi / etc / makalata.
# myorigin = / etc / makalata
# Kumaliza .Dain ndi ntchito ya MuA.
# Zosasamala mzere wotsatira kuti mupange "Makalata Ochenjera"
# kuchedwa_wartar_ nthawi = 4h
# Onani http://www.postfix.org/ormomme.html - Okhazikika mpaka 3.6
# Kukhazikitsa Kwatsopano.
# TLS
# Kusintha kwa Miller

Khola Lotsatira!

nano config/etc_postfix_master.cf

Onjezani mizere iyi:

# 
# Postfix MARD Njira yosinthira.  Zambiri pamtundu
# wa fayilo, onani tsamba (5) Tsamba (Lamulo: "Munthu 5 Master" kapena
# pa intaneti: http://www.postfix.org/master.5.html).
# 
# Musaiwale kuthira "Postfix Regiad" mutasintha fayilo iyi.
# 
# =======================================.
# Service TRAET CORCEC CARD Chroop maxproc Command + Args
# (inde) (inde) (ayi) (konse) (100)
# =======================================.
# SMTP Int N - Y - 1 Topscreen
# SMTPD Pass - - Y - - SMTPD
# DSBLOG UNIX - - Y - 0 DNSBlog
# Tlsproxy Unix - - Y - 0 Tlspoxy
# Sankhani chimodzi: Yambitsani kugonjera kwa makasitomala owonera okha, kapena kwa kasitomala aliyense.
# 127.0.0.1:1:1Subetion Int N - Y - - SMTPD
# -o syslog_name = Postfix / kutumiza
# -O smtpd_tls_seculd_level = Sncrrytt
# -o smtpd_sasl_auth_ed = inde
# -o smtpd_tls_uti_my = inde
# -o smtpd_rejets_reliprint = ayi
# -o smtpd_clint_restrictions = $ mua_cling_rentstings
# -o smtpd_helounts = $ mua_helo_restrictions
# -o smtpd_sertictions = $ mua_ender_restrictions
# -o smtpd_recipnt_restrictions =
# -o SMTPD_relay_reketions = chilolezo_sasl_sasted, sikani
# -O ma ntroster_macroro_daemomon_name = kuyambira
# Sankhani chimodzi: Yambitsani ma SMTPS pa makasitomala owonera okha, kapena kwa kasitomala aliyense.
# 127.0.0.1:1:1:1Symtps Int N - Y - - SMTPD
# SMTPS IDET N - Y - - SMTPD
# -o syslog_name = Postfix / SMTPS
# -O smtpd_tls_wrappermode = inde
# -o smtpd_sasl_auth_ed = inde
# -o smtpd_rejets_reliprint = ayi
# -o smtpd_clint_restrictions = $ mua_cling_rentstings
# -o smtpd_helounts = $ mua_helo_restrictions
# -o smtpd_sertictions = $ mua_ender_restrictions
# -o smtpd_recipnt_restrictions =
# -o SMTPD_relay_reketions = chilolezo_sasl_sasted, sikani
# -O ma ntroster_macroro_daemomon_name = kuyambira
# 628 nduna n - y - - qmqpd
# QMGR Unix N - n 300 1 OQMGR
# -O smtp_helout_utumiki = 5 -O smtp_konknect_utumiki = 5
# 
# ========================================.
# Makina ophatikizira mapulogalamu osalemba. Onetsetsani kuti mwapenda bukulo
# masamba a mapulogalamu omwe si positi kuti adziwe zomwe mukufuna.
# 
# Ambiri mwa maulendo otsatirawa amagwiritsa ntchito chitoliro cha postfix (8)
# wothandizira.  Onani bomba (8) la munthu kudziwa za $ {wopatsidwa}
# ndi zosankha zina envelopu.
# ========================================.
# 
# Maidrose. Onani Fayilo ya Postfix 4.
# Amatchulanso ku mailt.CF: Maidroprop_Desiprint_limit = 1
# 
# 
# ========================================.
# 
# Matembenuzidwe aposachedwa amatha kugwiritsa ntchito "LMTP".
# 
# Tchulani mu cyrus.conf:
# LMTP CMD = "LMTPD -A" Mverani = "LMTP" LMTP
# 
# Fotokozerani mukulu.CF imodzi kapena zingapo zotsatirazi:
# makalata_transport = lmtp: cut:
# Virtual_transport = LMTP: REDET:
# 
# ========================================.
# 
# Koresi 2.1.5 (Amosi Goux)
# Amatchulanso ku Main.CF: Cyrus_Destures_Reciprent_limit = 1
# 
# Koresi Unix - N n - - chitoliro
# Mbendera = Wogwiritsa Ntchito = Cyrus Argv = / Cyrus / bin /r $
# 
# ========================================.
# Chitsanzo Chakale cha Kupereka Via Cyrus.
# 
# United-Cyrus Unix - N n - - chitoliro
# mbendera = r ogwiritsa ntchito = cyrus argv = / cyrus / bin / amapereka - {kuwonjezera-} $} $} $
# 
# ========================================.
# 
# Onani fayilo ya Postfix Uucp_okha kuti musinthe.
# 
# 
# Njira zina zakulera zakunja.
# 

Ndi kusinthidwa kwa otsegula. Operam amazindikiritsa ma seva amaimelo ndi makiyi apadera kuti awapangitse kukhala otetezeka. Popanda izi, makalata sanasainidwe ndipo mwina sangayipangitse itbox.

nano config/etc_default_opendkim

Onjezani mizere iyi:

# Chidziwitso: Ili ndi fayilo yosinthira. Sizigwiritsidwa ntchito ndi OPANKKIM
# ntchito. Chonde gwiritsani ntchito magawo ofanana
# /tc/opendkim.conf m'malo mwake.
# 
# M'mbuyomu, munthu amasintha makonda apa, kenako nkutha
# /lib/ovandkim/ovandkim.rsevice.Getete kuti mupange mafayilo ochulukirapo ku
# /tc/systemd/system/ovandkim.Sirvice.d/override.conf ndi
# /tc/tmpfiles.d/ovandkim.conf. Ngakhale izi zithekabe, tsopano ndi
# Analimbikitsa kuti asinthe makondawo mwachindunji mu /tc/opendkim.conf.
# 
# Daemon_opts = ""
# Sinthani ku / var / spool / postfix / kuthamanga / operat gwiritsani ntchito zidziwitso
# Postfix mu Chroot:
# Rundir = / var / spool / postfix / kuthamanga / operam
# 
# Chinsinsi chofotokozerani zitsulo zina
# Zindikirani kuti kupanga izi kumapitilira phindu lililonse ku Operatkim.conf
# ZOSAVUTA:
# Mverani zigawo zonse pa doko 54321:
# Socket = Mutu: 54321
# Mverani Loopback pa Port 12345:
# Socket = Cut: 12345 @ rectost
# Mverani pa 192.0.2.1 pa doko 12345:
# Socket = Cut: 12345@192.0.2.1
nano config/etc_dovecot_conf.d_10-master.conf

Onjezani mizere iyi:

# kusintha_mrocess_lit = 100
# Zosintha_MClint_lit = 1000
# Vsz (kukula kwa kukumbukira) kuwongolera njira zogwiritsira ntchito. Izi ndizo
# anafuna kugwira ndikupha njira zomwe zimayitanitsa asanadye
# Chilichonse.
# Sinthani_vsz_lit = 256m
# Wogwiritsa ntchito Login amagwiritsidwa ntchito mkati mwa njira zolowera. Izi ndizomwe zimadziwika kwambiri
# wosuta mu Dovecot System. Siziyenera kukhala ndi chilichonse.
# Zosintha_Login_ser = Dongosolo
# Wogwiritsa ntchito mkati amagwiritsidwa ntchito ndi njira zopanda pake. Ziyenera kupatukana ndi
# Wogwiritsa ntchito Login, kotero njira zolowera sizingasokoneze njira zina.
# osasinthika_inage_ser = Dovecot
    # doko = 143
    # doko = 993
    # SSL = Inde
  # Kuchuluka kwa kulumikizana musanayambe njira yatsopano. Mwachinthu
  # mfundo zothandiza ndi 0 (zopanda malire) kapena 1. 1 ndiotetezeka kwambiri, koma 0
  # ikufulumira. <doc / wiki / Logiinprocess.txt>
  # Ntchito_CATE = 1
  # Chiwerengero cha njira kuti nthawi zonse muzidikirira kulumikizana kwambiri.
  # Njira_Mman_avail = 0
  # Ngati mumakhazikitsa ntchito_kusintha = 0, mwina muyenera kukula.
  # vsz_lit = $ yokhazikika_vsz_limit
    # doko = 110
    # doko = 995
    # SSL = Inde
    # doko = 587
  # Pangani womvera mwa atatu pokhapokha ngati simungathe kugwiritsa ntchito zitsulo pamwambapa
  # Idet_Luliner LMTP {
    # Pewani kupanga LMTP kuwoneka pa intaneti yonse
    # adilesi =
    # doko =
  # }
  # Makumbukiro ambiri amapita ku mafayilo () mafayilo. Mungafunike kuwonjezera izi
  # Chepetsa ngati muli ndi makalata akuluakulu.
  # vsz_lit = $ yokhazikika_vsz_limit
  # Max. Chiwerengero cha njira ya iyop (maulalo)
  # Njira_limat = 1024
  # Max. Chiwerengero cha njira za pop3 (zolumikizira)
  # Njira_limat = 1024
  # Max. Chiwerengero cha njira zoperekera (zolumikizira)
  # Njira_limat = 1024
  # Auth_Socket_path imaloza ku makonda a UFTRDB iyi. Ndi
  # ogwiritsidwa ntchito ndi Dovecot-ldoa, Doveadm, imps njira, etc. ogwiritsa ntchito omwe ali nawo
  # Chilolezo chonse cha zitsulo izi amatha kupeza mndandanda wazomwe amasuta komanso
  # pezani zotsatira za zomwe aliyense akugwiritsa ntchito.
  # 
  # Makina osinthika 0666 amalola munthu kuti alumikizane ndi zitsulo, koma
  # Ogwiritsa ntchito ogwiritsira ntchito amapambana pokhapokha ngati ogwiritsa ntchito amabwezera munda wa "UID"
  # imagwirizana ndi zoyeserera. Komanso ngati woyimba naye kapena gid amafanana
  # Socket ndi uid kapena gid wowoneka bwino. China chilichonse chimayambitsa kulephera.
  # 
  # Kupatsa chilolezo chokhazikika kuti ayang'ane onse ogwiritsa ntchito, khazikitsani mawonekedwe
  # china chake kuposa 0666 ndipo Dovecot amalola kuti kernel ikhale yopanga
  # Zilolezo (E.g. 0777 imalola aliyense chilolezo chonse).
  # Njira yogwira ntchito imayendetsedwa ngati mizu mosasinthika, kuti ithe
  # / etc / mthunzi. Ngati izi sizofunikira, wogwiritsa ntchitoyo ayenera kusinthidwa kukhala
  # $ yokhazikika_inage_iser.
  # wosuta =
  # Ngati kulowererapo kumagwiritsidwa ntchito, njira zamakalata ziyenera kukhala ndi zitsulo zake.
  # Mwachitsanzo: Mode = 0660, gulu = Vail ndi zapadziko lonse_gnups_groups = Vmail
    # mode = 0600
    # wosuta =
    # gulu =

Apanso, onetsetsani kuti mwasintha mafayilo onse m'mafayilo onsewa, femmebabe.com, ndi domain yomwe mwasankha. Sinthani fayilo yotsatira, Khomo la Dovecot,

nano config/etc_dovecot_dovecot

Ndikuwonjezera mizere iyi

## Mafayilo a Dovecot
# Ngati muli mwachangu, onani http://wikique2.Dovecot.org/quickconFation
# "Dovecoff -n" Lamulo la "limapereka zotulutsa zosinthika zosintha. Gwiritsani ntchito
# M'malo mokopera & mafayilo olemba mukamatumizira mndandanda wa Maimelo.
# '# 'Khalidwe ndi zonse atatha kuyankha ngati ndemanga. Malo owonjezera
# Ndipo ma tabu samanyalanyazidwa. Ngati mukufuna kugwiritsa ntchito izi momveka bwino, ikani
# value inside quotes, eg.: key = "# Phiri loyera "
# Ambiri (koma si onse) zosintha zitha kukhala zochulukirapo ndi ma protocol osiyanasiyana ndi / kapena
# Gwero / komwe akupita kuyika makonda mkati mwa magawo, mwachitsanzo:
# protocol ip {}, komweko 127.0.0.1 {}, kutalinso 10.0.0.0/8 {}
# Mitengo yokhazikika imawonetsedwa pa mawonekedwe aliwonse, sikofunikira kwa
# Awo. Izi ndizosiyana ndi izi: Palibe magawo (mwachitsanzo.g.space {})
# Kapenanso makonda amawonjezeredwa ndi osakhazikika, amalembedwa monga zitsanzo zokha.
# Njira ndinso zitsanzo zongoyerekeza ndi zosintha zenizeni zomwe zimakhazikitsidwa
# zosankha. Njira zomwe zalembedwa pano ndi zakonzedwa --prefix = / USR
# --Sysconfdir = / etc --localstiir = / var
# Yambitsani ma protocols
# Mndandanda wopatukana wa ma IPS kapena owongolera komwe angamverere kulumikizana.
# "* *" Ikumva ku IPV4 Maminito onse, ":::" Kumvera ku IPV6.
# Ngati mukufuna kutchula madoko osakhazikika kapena china chake chovuta,
# Sinthani cret.d / mbuye.Conf.
# Mverani = * ::
# Directory Yoyambira Komwe Mungasungire deta ya Runtime.
# maziko_Dir = / var / frop / dovecot /
# Dzina la izi. M'makonzedwe a Doup
# imatha kugwiritsa ntchito -i <Innance_name> kusankha nthawi yomwe imagwiritsidwa ntchito (njira ina
# ku -c <Fordig_path>). Dzinalo limawonjezeredwanso ku Dovecot Njira
# Kutulutsa kwa Ps.
# Nthawi_NEME = Dovecot
# Uthenga wa makasitomala.
# Lowani_Geting = Dovecot okonzeka.
# Mndandanda wopatulidwa wa malo odalirika. Zolumikizana ndi izi
# IPs amaloledwa kuthana ndi ma adilesi awo a IP ndi madoko (pofuna kudula ndipo
# macheke otsimikizika). Lemeke_pbwext_uuth imanyalanyazidwanso
# maukonde awa. Nthawi zambiri mungafotokoze ma seva anu a Proxy pano.
# Login_TURD_NERRESS =
# Mndandanda wopatukana wopatuka wolowera kuwunika (E.g. TCPWWRAP)
# Login_access_Sockets =
# Ndi proxy_maybe = inde ngati gawo la Proxy likugwirizana ndi IPS, musachite
# Kupanga. Izi sizoyenera, koma zitha kukhala zothandiza ngati mukupita
# Ip ndi e.g. IP Yogulitsa katundu.
# Auth_proxy_okha =
# Sonyezani mawu owonjezera muyeso (mwa PS). Pakadali pano akuwonetsa dzina la ogwiritsa ntchito ndipo
# Adilesi ya IP. Zothandiza kuwona omwe akugwiritsa ntchito njira za sap
# (mwachitsanzo.
# vervose_proctitle = ayi
# Njira zonse ziyenera kuphedwa pomwe njira ya Dovecot imakhazikika.
# Kukhazikitsa izi kwa "Ayi" kumatanthauza kuti Dovecot imatha kukonzedwa popanda
# kukakamiza kulumikizana kwa kasitomala komweko kutseka (ngakhale izi zitha kukhalanso
# vuto ngati kukweza ndi e.g. chifukwa cha chitetezo).
# kutseka_Mints = inde
# Ngati osakhala zero, oyendetsa makalata kudzera pamalumikizidwe ambiri awa pa seva ya Doveadm,
# m'malo mongoyendetsa mwachindunji chimodzimodzi.
# Doveadm_workker_Count = 0
# Unix Swacket kapena Wogulitsa: Port yomwe imagwiritsidwa ntchito polumikiza seva ya Doveadm
# Doveadm_ocket_path = Doveadm-seva
# Mndandanda wopatukana ndi madera omwe amasungidwa pa Dovecot
# Kuyambira ndikupita pansi pa njira za mwana wawo zonse. Muthanso kupereka
# kiyi = Train awiriawiri nthawi zonse amakhazikitsa zoikamo.
# ikani_endarlonments = tz
## 
## Makina a Spever Server
## 
# Mtanthauzira mawu akhoza kugwiritsidwa ntchito kusunga kiyi = Mndandanda Wamtengo wapatali. Izi zimagwiritsidwa ntchito ndi angapo
# mapulagini. Mtanthauzira mawuwo amatha kupezeka mwachindunji kapena a
# seva yabodza. Zotsatira zotsatirazi zimalepheretsa Mamapu a Scorery ku Uris
# Seva ikagwiritsidwa ntchito. Izi zitha kutchulidwa pogwiritsa ntchito ursis
# "Proxy :: <dzina>".
  # Quota = MySQL: / /tc/dovecot/dovecot-dict-sql.conf.net
# Zambiri mwa kasinthidwe zenizeni zimaphatikizidwa pansipa. Mafayilo ali
# Choyamba chosankhidwa ndi mtengo wawo wa ASCII ndikusungidwa mu dongosolo limenelo. Ma prefixes
# M'mafayilo a fayilo amapangidwa kuti ikhale yosavuta kumvetsetsa.
# Fayilo yotsatsira imathanso kuyesedwanso osapereka cholakwika ngati
# Sizinapezeke:
# Imalola kuti pakhale kumvetsera ku kulumikizana konse (IPV4 / IPV6)

Onjezani mawu achinsinsi a Wogwiritsa ntchito:

nano config/etc_dovecot_passwd

Gawo loyamba la fayilo, lisanalowe m'bwalo, ndiye dzina lolowera. Gawo lomaliza, "Thispassword", limatanthawuza mawu achinsinsi omwe mungafune kupereka seva yanu.

team:{plain}yourpassword

Kenako, Openkkim

nano config/etc_opendkim.conf

Ndi kuwonjezera mizere iyi:

# Uku ndiko kusinthika koyambirira kwa kusaina ndi kutsimikizira. Zitha kukhala zosavuta
# adasinthidwa kuti agwirizane ndi kukhazikitsa koyambira. Onani Operatkim.conf (5) ndi
# Oli /
# zolemba za magawo osinthira.
# Lomba la ayi
# Magawo wamba ndi otsimikizira. Mbali yamutu wakuti, wochokera "wamutu
# onjezerani, chifukwa nthawi zambiri nthawi zambiri imakhala yodziwika bwino
# ndipo motero pena pakeni.
# Kusaina domain, kusankha, ndi kiyi (yofunikira). Mwachitsanzo, gwiritsani ntchito kusaina
# Ponena za "chitsanzo cha domain.com" ndi osankha "2020" (2020._mandey
# Kugwiritsa ntchito kiyi yachinsinsi yosungidwa mu /tc/dkimkeys/example.private. Granular yambiri
# Zosankha zokhazikitsira zimatha kupezeka mu /usr/share/doc/opendkim/opendkimme.omandkim.
# Chikhalidwe cha Domain.com
# Sankhani 2020
# Keyfile /tc/dkimkeys/example.private
# Ku Debaan, Operam amayenda ngati wogwiritsa ntchito "Operamm". Maina a 007 amafunikira liti
# Kugwiritsa ntchito chinsalu chakomweko ndi mtas omwe amalowa zitsulo ngati osakhala ndi mwayi
# Wogwiritsa ntchito (mwachitsanzo, postfix). Mungafunike kuwonjezera "postfix" pagulu
# "OPANKKIM" Zikatero.
# Zitsulo zolumikizira Mta (zofunika). Ngati Mta ali mkati mwa ndende ya Chroot,
# Ziyenera kutsimikiziridwa kuti zitsulo zimapezeka. Ku Deba, positi imayenda
# Chroot in / var / spool / postfix, motero suix iyenera kukhala
# Kukonzedwa monga zikuwonekera pamzere womaliza pansipa.
# Socket Excle: / / Crun/ovandkim/ovandkim.sock
# @ 8891 @
# Socket SET: 8891
# Oyendetsa makasitomala omwe angasainire m'malo motsimikiza, kusakhazikika ndi 127.0.0.1. Onani
# Gawo la Operation of Ponkkim (8) kuti mumve zambiri.
# InternalHosts		192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
# Nanchor wamkulu amathandizira DNSSEC. Ku Deba, Fayilo ya Anchor Incor imaperekedwa
# ndi phukusi la DNS-mizu.
# Mayina 127.0.0.1
# Mapu Mapulogalamu kuchokera ku maadiresi ku mafungu omwe amagwiritsidwa ntchito kulembetsa mauthenga
# Malo okhala mkati mwa omwe makalata omwe makalata amayenera kusainidwa
nano config/etc_default_opendkim

Ndikuwonjezera mizere iyi

# Chidziwitso: Ili ndi fayilo yosinthira. Sizigwiritsidwa ntchito ndi OPANKKIM
# ntchito. Chonde gwiritsani ntchito magawo ofanana
# /tc/opendkim.conf m'malo mwake.
# 
# M'mbuyomu, munthu amasintha makonda apa, kenako nkutha
# /lib/ovandkim/ovandkim.rsevice.Getete kuti mupange mafayilo ochulukirapo ku
# /tc/systemd/system/ovandkim.Sirvice.d/override.conf ndi
# /tc/tmpfiles.d/ovandkim.conf. Ngakhale izi zithekabe, tsopano ndi
# Analimbikitsa kuti asinthe makondawo mwachindunji mu /tc/opendkim.conf.
# 
# Daemon_opts = ""
# Sinthani ku / var / spool / postfix / kuthamanga / operat gwiritsani ntchito zidziwitso
# Postfix mu Chroot:
# Rundir = / var / spool / postfix / kuthamanga / operam
# 
# Chinsinsi chofotokozerani zitsulo zina
# Zindikirani kuti kupanga izi kumapitilira phindu lililonse ku Operatkim.conf
# ZOSAVUTA:
# Mverani zigawo zonse pa doko 54321:
# Socket = Mutu: 54321
# Mverani Loopback pa Port 12345:
# Socket = Cut: 12345 @ rectost
# Mverani pa 192.0.2.1 pa doko 12345:
# Socket = Cut: 12345@192.0.2.1

Tikakhala okonzeka kukhazikitsa seva yathu yaku Postfix, tidzayendetsa nambala yomwe ili pansipa, yomwe ili ndi dzina lovomerezeka lophatikizidwa. Yambani ndikupanga script

touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup

Tsopano, ku Nano, mkonzi wa malembawo, sinthani fayilo iyi ndi dzina lanu la domain m'malo mwa femmebabe.com.

# ! / bin / bash
# Kukhazikitsa Postfix

Tsopano, yendetsani zilembo zoyesedwa kuti zikhazikike postfix, Operam ndi Dovecot.

./scripts/postfixsetup

Izi zikangoyendetsa, kukopera mzere womaliza kumasindikiza ndikuyika mu kasinthidwe wanu wa DNS monga mtengo wa Tramnon. Ichi ndi fungulo la Oxtkim lomwe limagwiritsidwa ntchito kuzindikira madera anu potumiza makalata otetezeka.

Zowopsa! Patangopita masiku ochepa, muyenera kutumiza makalata kuchokera ku seva yomwe imapereka chilichonse chokonzedwa bwino.

Ngati mutangoganiza za DNS pa seva yanu yamakalata, iyenera kutenga maola ochepera 72 kuti zilembedwe. Nthawi zambiri zimakhala zambiri mwachangu. Mutha kuwona ngati seva yanu ikugwira ntchito pogwiritsa ntchito lamuloli, adapereka imelo yanu:

echo "test" | mail -s "Test Email" youremail@gmail.com

Ngati chilichonse chikuwoneka kuti chikugwira ntchito molondola, muyenera kutumiza imelo ndi seva yanu. Ngati sizikugwira ntchito, yesani kuyang'ana mitengo kuti muwone zomwe zingakhale zolakwika.

tail –lines 150 /var/log/mail.log

Izi zimapereka chidziwitso chokhudza makalata omwe akutumizidwa ndi seva komanso ngati ikugwira bwino ntchito. Muyenera kuwona imelo mu bokosi lanu la bokosi lanu labwino kwambiri, ngati mulibe, onani chikwatu chanu cha Spam.

Muyeneranso kukhazikitsa makonda anu mu zoikamo .y kotero seva yanu ya imelo imatha kuyankhula ndi pulogalamu yanu ya Djanga, polojekiti. Onjezani kapena sinthani mizere iyi m'makonzedwe anu

EMAIL_HOST_USER = 'team' # 'Chikondano@mamasheen.com'

Onani kuti tikugwiritsa ntchito fayilo yokhazikika kuti tipeze mawu achinsinsi. Tiyeni titumize fayiloyi mu makonda monga choncho, kumayambiriro kwa fayilo.:

# Tsegulani ndi kukweza

Tiyeni tipangire fayilo iyi ndikuwonjezera chinsinsi cha izi, komanso mawu achinsinsi. Kupanga kiyi yachinsinsi, gwiritsani ntchito lamuloli, kutalika kulikonse komwe mungakonde:

openssl rand -base64 64

Tsopano, koperani mawu omwe akutseguka omwe amapangidwa ndikusintha /tc/config.JSON

sudo nano /etc/config.json

Onjezani mizere yotsatirayi ku fayilo yanu, ndi kiyi yomwe tsegulani yopangidwa ngati kiyi yachinsinsi.

{
	"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
	"EMAIL_HOST_PASSWORD": "yourpassword"
}

Mtundu wa Jonas ndiwosavuta komanso wosavuta kugwiritsa ntchito makiyi ena omwe tikufuna kugwiritsa ntchito mu polojekiti yathu motere, ndikuwasunga kuti aletse ndalama zina kuti ogwiritsa ntchito satha kuwalembera, ndipo sangathe kuwerengedwa kuchokera ku zolojekiti zathu zokha. Ili ndi chizolowezi cha API makiyi a API, omwe tidzagwiritsa ntchito zoposa ochepa pano.

Mufunanso kubwezeretsa polojekiti yanu kuti mutsimikizire kuti zonse zasungidwa ndipo mudzatha kubwezeretsa ntchito yanu pambuyo pake ngakhale simungafune kubwereka seva.

sudo backup

Tsopano, yesani kutumiza imelo ya HTML kuchokera ku seva ya pa intaneti, yomwe imaperekedwa kuti itumize mzere wolamulira ukugwira ntchito. Funsani nthawi yanu yogwiritsa ntchito chipolopolo, ndipo tumizani imelo ya HTML kwa wogwiritsa ntchitoyo kudzera ku Django. Sinthani dzina langa mu code, Charlotte, ku dzina lanu lolowera.

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()

Ngati lamulo loyamba siligwira ntchito, onetsetsani kuti mwagwiritsa ntchito

source venv/bin/activate

Tidapereka chilichonse molondola, tsopano mudzapeza imelo yolandiridwa mu bokosi lanu la maimelo yanu. Ntchito yabwino! Mwabwera kutali.

Ndinkafuna kuwonjezera, ngati mukulimbana ndi zolakwa zilizonse nthawi yonseyi ndikugwira ntchito ngati izi, musazengereze kufunafuna mayankho ndikupempha thandizo. Google, pakati pa injini zina zosaka, ndizokhalitsa kufunafuna thandizo la pulogalamu. Ingofunani cholakwika chomwe mukupeza, ndipo mudzatha kuwona momwe anthu ena amathetsa vutoli. Komanso, mwalandilidwa kuti mundilumikizane ndi ine, aphunzitsi anu (aphunzitsi, ophunzitsa), anzanu aliwonse omwe akupezeka pa intaneti, kapena kuti mupezenso bukuli kapena zinthu zina kuti mupeze mayankho omwe mukukumana nawo. Ndikumvetsa kuti izi sizophweka, koma ngakhale mutawerenga izi mpaka pano ndipo simukulemba code iliyonse, mukuphunzira zambiri za kupanga pulogalamu ya Web. Dziperekeni kumbuyo, mukuchita ntchito yabwino.

Zikomo kwambiri chifukwa chowerenga nthawi yowerenga buku lachitatu lachitatu. M'makonzedwe amtsogolo, ndidzaphatikizanso zitsanzo zingapo zomwe zafotokozedwa kumayambiriro kwa chikalatacho ndipo tidzayendanso kwambiri m'dziko lamapulogalamu ndi zovuta. Khalani okonzeka zomwe zikubwera, ndipo ndikuyembekeza kukuphunzitsani momwe mungapangire pulogalamu yodabwitsa. Tikuwonani mu buku lotsatira!






Tseka
Tsamba 1
Dumpha
Onani nkhani yonse
Pitilizani kuwerenga

Gula | Gulani ndi Crypto



https://glamgirlx.com/ny/practical-web-based-deep-learning-and -


Zosangalatsa, Zithunzi, makanema, audio, kupezeka kwa masewera olimbitsa thupi komanso masewera olimbitsa thupi, komanso kusanthula ID, luso laubusayiti.

Ndisiye nsonga ku Bitcoin pogwiritsa ntchito adilesi iyi: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE

© Glam Girl X 2025

Migwirizano Yantchito