למידה עמוקה וביטחון מעשי מבוסס אינטרנט בדוגמה

עַל יְדֵי Daisy
למידה עמוקה וביטחון מעשי מבוסס אינטרנט בדוגמה מהדורה שלישית שרלוט הרפר 3 ביולי 2024 עודכן/הומר 3 ביוני 2025 הַקדָמָה: שיקולי אבטחה בבניית תוכנות לרשת הם חלק חשוב בתוכנית וביצוע של מפתח אינטרנט כלשהו תוך הנדסת אב -טיפוס שהוא אמין, יציב ושימושי למטרות מעשיות. ה- DOM (סימון אובייקטים של מסמך), עם יישום ה- HTML, JavaScript ו- CSS וכן תוכנות Backend המיישמות את פייתון, C/C ++, Java ו- Bash, מעניקים למפתחי אתרים את החופש והכוח כדי ליצור מגוון רחב של פרויקטים המבטאים את היצירתיות, מספקים קלות של שימוש ופונקציונליות, מתארות את ההעצמות והעוצמה, ומוצגים את הקלות, גם במראה נוי, קלות, קלות, כדי להרוג זמן או לבצע משהו באינטרנט, בדרך כלל במכשיר סמארטפון למסך מגע. רוב האנשים אפילו לא היו יודעים מאיפה להתחיל מתי הם רוצים לבנות אתר מאפס, הם היו נוטים להתחיל באתר של אדם אחר ולבנות משהו מוגבל בפונקציונליות, אמינות, קלות שימוש ובעיקר יצירתיות כאשר הם יכלו לקבל את כל הכלים החזקים האחרונים העומדים לרשותם על מנת לבנות משהו שימושי מבלי לבזבז זמן לחיצה על כפתורים, ובמיוחד לבזבז כסף בתשלום עבור מנויים יקרים לתוכנה ולמכלול שימוש במגבלות בכל מקרה. אם יש לך כמה דקות לקרוא את הספר הזה וללמוד מה אני רוצה ללמד אותך, או אפילו לדבר איתי באופן אישי על המטרות שלך ולקבל הדרכה בכיוון הנכון, ואתה מוטיבציה ללמוד לקוד ולכתוב תוכנה משלך, לקחת את הספר הזה הביתה ולהקדיש זמן מה כדי ללמוד לבנות את הצרכים המשפיעים, החזקים, היעילים והחשובים, אתר אינטרנט שהוא הכל עלייך וכן בדיוק את הצרכים שלך. עלי: אני מפתח תוכנה עם מגוון רחב של ניסיון ב- C/C ++, Java, Python, HTML, CSS ו- JavaScript. אני בונה אתרים שאנשים רוצים להשתמש בהם, רוצים לבקר ואפילו להתמכר לשימוש רק כדי ללמוד, לשחזר זמן ולהרוג, והכי חשוב, אני מוכר תוכנה. אם היה לך רעיון בדיוק איך רצית שאתר יחפש ויתפקד, היית מוכן לתמוך בי כדי שאוכל לענות על הצרכים שלי בזמן שאני פוגש את שלך, ואתה מוכן לכסות את העלויות של הפעלת אתר בעצמך, הייתי בונה לך את יוטיוב הבא, Tiktok, Twitter, Google או אפילו אפליקציית האבטחה היי-טק רק שתוכל לגשת אליו. במקום לנסות למכור לך את זמני, אני מנסה לקנות את שלך: אני רוצה לדבר אותך בבניית אפליקציה (אתר) בעצמך עם המידע שכבר קיים, וללמד אותך את מה שאתה צריך כדי להיות מפתח תוכנה עצמאי, יזם, המוביל קריירה מצליחה בכל תחום שאתה רוצה. ותן לי להיות ברור, החינוך שאני נותן לך יהיה לא פורמלי. אתה יכול ללכת לבית הספר וללמוד את כל זה בחינוך רשמי, או אפילו לקרוא את הספר הזה בבית הספר, להשלים את המטלות שלך ולקחת הרבה מהשכלה שלך, אבל אני לא אשים אותך רשמית למושב החם ולבקש ממך להשלים מטלות. אני לא הפרופסור שלך, אתה יכול לחשוב עלי כמו חבר שרוצה להדריך אותך לקריירה המונעת על ידי ההצלחה האישית שלך. ואני גם לא מוכר לך הצלחה, תצטרך לקנות את זה עם הזמן שלך. למידה לקוד יש עקומת למידה תלולה ולעולם לא הייתה קלה, או אפילו אמורה להיות. אתה צריך לעבוד קשה ככל שתוכל ולהמשיך לנסות ולהיכשל ולנסות שוב גם כשאתה מתוסכל כדי ללמוד ולבנות אפליקציות בעצמך. זה באופי הקוד עצמו. הקוד מנוהל על ידי מהדר שנועד למסור את הודעות השגיאה של המתכנת, ואלה ילמדו אותך כיצד לקוד, גם אם אתה פשוט מעתיק את השגיאה במנוע החיפוש שלך וקורא דוגמאות של אנשים אחרים. ואני חייב לומר, אתה לא צריך להיות עשיר במיוחד, חכם, מצליח או אפילו מכוון או לארגן פרטים כדי לבנות אפליקציה. המחשב דואג לארגון זה עבורך. אתה רק צריך להתמיד דרך הניסוי והטעייה, לשמור על מיקוד ולעבוד קשה במה שאתה עושה, ותהיה לך קריירה מצליחה מאוד בכל מה שאתה עושה. מי אני: אני מבין שהקטע האחרון היה יותר על למידה ולקחת דרכים מהספר הזה. מי אני בדיוק? זו שאלה מסובכת. אני לא ברור על עצמי בעצמי, מכיוון שאני סובל ממצבים רפואיים שיכולים להקשות עלי אפילו לקוד או לכתוב את הספר הזה לפעמים, תוך הצגת אתגרים עם סוגיות סוציאליזציה וזהות שמקשות על חיי כשמדובר בהצגת עצמי. בקיצור, אם אתה קורא את הספר הזה, הבאת אותו הביתה מכיוון שהפכת דרכו וחשבת שהוא שימושי, או אפילו אם אתה פשוט קורא את זה רחוק, לך אני אינדיבידואלי כמו אופק שרוצה לראות אותך מצליח בכל מה שאתה עושה. אנימהנדס את עצמי, מפתח תוכנה וסטודנט, ואני כותב את הספר הזה לתלמידים אחרים שרוצים להקל על חייהם על ידי קיום ספר יד של התוכנה שהם זקוקים להקל על חייהם על ידי מתן דוגמאות להעתיק המתאימות כמו חידה גדולה לאפליקציה עובדת, שימושית, גדולה, פונקציונאלית, מגובשת ומעוררת שיכולה להביא להצלחה לא משנה קו העסקים. בעיקר, זה מה שאני עושה: אני בונה אפליקציות שיעזרו לעצמי ולאנשים אחרים להצליח. אני גם מחבר, אם כי זה הפרסום הראשון שלי שאני מתכוון להשלים כדי להרכיב את תיק העבודות שלי למסמך שימושי, וגם אני אמן. אני אודה לך בזה, אני סוג של אדם מוזר. אני לא מושלם, ניהלתי תוספות עם החוק אפילו להוביל אותי לעזוב את המכללות והאוניברסיטאות ולעזוב מדינות כדי לנסות לעשות לעצמי שם עם יותר הצלחה. אני אישה מלידה, אני לובשת איפור, מצלמת את עצמי, לובשת שמלות ובגדי נשים אחרות, ואני נשארת מודעת לעצמי כנקבה מטבען. היו לי בעיות עם אנשים אחרים בעבר שמובילים למאבקים בכתיבה ובניית WebApps, ואני מתנצל שלא הצלחתי להכניס את הספר הזה לידיים מוקדם יותר: היית זקוק לזה. אתה תרצה לקרוא ולכתוב קוד שנראה כמו שלי ועובד כמו שלי ועושה את אותו הדבר אבל אפילו טוב יותר, כי אם אתה יכול להרשות לעצמך לקנות את הספר הזה במקום לרסק את המקלדת שלך כמו שאני עושה רק כדי ליצור ספר בעצמך מבקש כסף עבורו, יש לך את המשאבים שאתה צריך כדי להצליח בחיים שלך. היו לי כל מיני בעיות עם משפחת התבגרות, מצבי בריאות, רופאים, התקשורת והחוק, והקוד שלי משקף עמוקות את המאבק שהוא פמיניזם ואופי נשי בעולם מחולק ומתוסכל. עם זאת, הספר הזה הוא משהו שאכפת לי מאוד ממנו, התינוק שלי, התיק שלי והפרנסה שלי, אז אני מעריך את שיקולך כשאתה לוקח את הטקסט הביתה ומטפל בו בזהירות כדי ללמוד ממני. אנא זכור שאני לא מושלם, לספר זה יהיו שגיאות, תיקונים ומהדורות חדשות, ותצטרך לחשוב עם המוח ההגיוני שלך כמיטב יכולתך כדי לקבל חוויה מוצלחת עם הכתיבה שלי. כמו כן, הבין שאני מתכוון טוב לך גם כשאתה מתמודד עם אתגרים בעת הכתיבה. חשבו על זה ככה: כשאתה יכול פשוט לשכור מערכת מחשבים שתעשה כל דבר שאתה יכול לדמיין במרחב הדיגיטלי, לאחסן את כל המידע שאתה נתקל בו, לנתח ולארגן אותו, ותבין אותו, אתה בהכרח נתקל בקשיים עם המידע שאתה בולע ואפילו לפרסם. אני אומר לך את זה כי אני נתקל באותם קשיים. השתמש בספר זה על אחריותך בלבד, לעבוד עם הקהילה שלך ובקהילות העומדות לרשותך לבניית תוכנה במסגרת בטוחה, ואל תתייחס לדברים באופן אישי כשאתה נכשל או אפילו מצליח בצורה לא נכונה: ככה הגעתי עד כה, ומדוע אני יכול להביא לך את הטקסט הזה ולעזור לך להצליח מבלי להתנצל על דרך הגלובליות שנמצאים על גודל הגלובלי שנמצא את הגלובליות של CANTALITIST WOAL ADLAL TORTAL ADLAL WA THE CARELLIST TORACOL CALLANCE TORATINAL ACTONAL ANTAL CARELAL TOODAL DALLAL ANCALAL CARELAL TOONAL CARELAL ALAL ALAL CANELL CANELL CANELL CANELL CANELL CANELL CHANELL. עבודה, האינטרנט. יתכן שאתה לא מכיר את מי שאני רק עם כמה מילים, אבל אני ממליץ לך לקרוא, תכיר אותי כשאתה ממשיך לקרוא ולהבין אותי תוך כדי בניית פרויקטים משלך להשלמת העבודה שלך. לא יהיו שיעורי בית עם הספר הזה, כל עוד הפרופסורים או המורים שלך לא מקצים לך שום דבר, אבל אני ממליץ לך מאוד לבנות פורטפוליו של פרויקטים בעצמך כשאתה קורא, כמו גם פרויקט Capstone המציג כיצד אתה יכול ליישם את מה שלמדת. פרויקט Capstone שלי הוא הבסיס לרוב מה שתקראו בספר זה, מכיוון שהוא משלב קוד מהפרויקטים הקודמים שלי, קוד שיצרתי ולמדתי לכתוב באופן שיטתי ביד, ומגוון רחב של רעיונות וטיפים שעזרו לי להצליח עד כדי כך שאוכל לסובב אפליקציה פשוטה המופיעה במלואם או מתנהג כמו אפליקציה פופולרית שאולי תראו את חברכם או המשפחה, באפליקציה, המפורסמת בחדשות. מהו הספר הזה: ספר זה הוא הדרכה לפי דוגמה. אתה יכול למצוא קוד כאן, הוראות כיצד ללמוד לקוד, מידע על ניפוי באגים ותיקון שגיאות, פתרון בעיות שלבים, הוראות כיצד לגבות ולשמור את הקוד שלך, לפרוס מחדש אם מישהו ישבור את הקוד שלך, לאבטח את הקוד שלך, לפרוס את הקוד שלך, לבנות את האתרים והאיש שלך, וכן את האפליקציה שלך, וכן את ההתחשבנות שלך, וכן את זה, מדובר, זה, מדוע זה, מדובר, תוכנה שאתה בונה את האור הטוב ביותר המוחלט להיות האטרקטיבי ביותר ככל האפשר למשתמשי הקצה שלך, המבקרים באתר שלך. בספר זה, אדגים מספר דוגמאות לעיצוב תוכנה עם דגש על האינטרנט כפלטפורמה כמו גם אבטחה. אנו נתחיל את הלמידהRIENCEપ્રાયોગિક વેબ આધારિત deep ંડા શિક્ષણ અને ઉદાહરણ દ્વારા સુરક્ષા ત્રીજી આવૃત્તિ ચાર્લોટ હાર્પર જુલાઈ 3, 2024 3 જૂન, 2025 અપડેટ/રૂપાંતરિત
મુખ્ય શબ્દ:
વેબ માટે સ software ફ્ટવેર બિલ્ડિંગમાં સુરક્ષા વિચારણા એ કોઈપણ વેબ ડેવલપરની યોજના અને એક્ઝેક્યુશનનો એક મહત્વપૂર્ણ ભાગ છે જ્યારે પ્રોટોટાઇપ કે જે વ્યવહારિક હેતુઓ માટે વિશ્વાસપાત્ર, સ્થિર અને ઉપયોગી છે. ડીઓએમ (દસ્તાવેજ object બ્જેક્ટ માર્કઅપ), તેના એચટીએમએલ, જાવાસ્ક્રિપ્ટ અને સીએસએસ તેમજ પાયથોન, સી/સી ++, જાવા અને બાશના અમલીકરણ સાથે, વેબ ડેવલપર્સને વિવિધ પ્રોજેક્ટ્સ બનાવવા માટે, ઉપયોગ અને કાર્યક્ષમતા, વિશિષ્ટતા અને પાત્રની જેમ, ઉપયોગીતા અને યોગ્યતા માટે, વિવિધ પ્રકારના પ્રોજેક્ટ્સ બનાવવા માટે સ્વતંત્રતા અને શક્તિ પ્રદાન કરે છે. સામાન્ય રીતે ટચસ્ક્રીન સ્માર્ટફોન ડિવાઇસ પર, ઇન્ટરનેટ પર સમય કા or વા અથવા કંઈક કરવા માટે જોઈએ છે. મોટાભાગના લોકોને શરૂઆતથી વેબસાઇટ બનાવવાની ઇચ્છા હોય ત્યારે તે ક્યાંથી શરૂ કરવું તે પણ જાણતા ન હતા, તેઓ બીજા વ્યક્તિની વેબસાઇટ પર પ્રારંભ કરશે અને કાર્યક્ષમતા, અવલંબન, ઉપયોગમાં સરળતા અને ખાસ કરીને સર્જનાત્મકતામાં કંઈક બનાવવાનું વલણ ધરાવે છે જ્યારે તેઓ તેમના નિકાલ પર તમામ નવીનતમ શક્તિશાળી સાધનો ધરાવતા હતા, જેથી સમયનો ઉપયોગ ન કરતા વધુ સમય માટે, સ software ફ્ટવેરનો ઉપયોગ કરવામાં આવતા સમયના ઉપયોગમાં લેવાતા સમય માટે ઉપયોગમાં લેવાતા સમય માટે ઉપયોગી કંઈક બનાવ્યા વિના. જો તમારી પાસે આ પુસ્તક દ્વારા વાંચવા માટે થોડી મિનિટો છે અને હું તમને શું શીખવવા માંગું છું તે જાણવા માટે, અથવા મારા લક્ષ્યો વિશે વ્યક્તિગત રૂપે મારી સાથે વાત કરવા અને સાચી દિશામાં થોડું માર્ગદર્શન મેળવવા માટે, અને તમારા પોતાના સ software ફ્ટવેરને કોડ શીખવા અને લખવા માટે પ્રેરિત છે, તો આ પુસ્તકને ઘરે લઈ જાઓ અને આગામી પ્રભાવશાળી, સુવ્યવસ્થિત અને મહત્વપૂર્ણ વેબ એપ્લિકેશન, જે તમારી પાસે છે અને તે તમારા પ્રેક્ષકોને જેટલું જ છે તે બધું જ બનાવવાનું શીખવા માટે થોડો સમય નક્કી કરે છે.મારા વિશે: હું સી/સી ++, જાવા, પાયથોન, એચટીએમએલ, સીએસએસ અને જાવાસ્ક્રિપ્ટમાં વિવિધ અનુભવ સાથેનો સ software ફ્ટવેર ડેવલપર છું. હું વેબસાઇટ્સ બનાવું છું, લોકો ઉપયોગ કરવા માગે છે, મુલાકાત લેવા માંગે છે, અને સમય શીખવા, ફરીથી બનાવવા અને મારવા માટે ઉપયોગ કરવાના વ્યસની પણ છે, અને સૌથી અગત્યનું, હું સ software ફ્ટવેર વેચું છું. જો તમને કોઈ વેબસાઇટ જોવા અને કાર્ય કરવા માંગતા હો તે અંગેનો વિચાર હતો, તો તમે મને ટેકો આપવા તૈયાર છો જેથી હું તમારી સાથે મળતી વખતે મારી પોતાની જરૂરિયાતો પૂરી કરી શકું, અને તમે જાતે જ વેબસાઇટ ચલાવવાના ખર્ચને આવરી લેવા તૈયાર છો, હું તમને આગામી યુટ્યુબ, ટિકટોક, ટ્વિટર, ગૂગલ, અથવા તો હાઇ-ટેક સિક્યુરિટી એપ્લિકેશન બનાવી શકું છું. તમને મારો સમય વેચવાનો પ્રયાસ કરવાને બદલે, હું તમારું ખરીદવાનો પ્રયાસ કરી રહ્યો છું: હું પહેલેથી જ અસ્તિત્વમાં છે તે માહિતી સાથે તમારી જાતે એપ્લિકેશન (વેબસાઇટ) બનાવવા માટે વાત કરવા માંગું છું, અને તમને જે ઇચ્છે છે તે ક્ષેત્રમાં સફળ કારકિર્દીની આગેવાની, સ્વતંત્ર સ software ફ્ટવેર ડેવલપર, ઉદ્યોગસાહસિક બનવાની જરૂર છે તે શીખવે છે. અને મને સ્પષ્ટ થવા દો, હું તમને જે શિક્ષણ આપું છું તે અનૌપચારિક રહેશે. તમે શાળાએ જઈ શકો છો અને આ બધું education પચારિક શિક્ષણથી શીખી શકો છો, અથવા આ પુસ્તકને શાળામાં વાંચી શકો છો, તમારી સોંપણીઓ પૂર્ણ કરી શકો છો, અને તમારા શિક્ષણમાંથી મોટો સોદો કરી શકો છો, પરંતુ હું તમને formal પચારિક રીતે હોટ સીટ પર મૂકીશ નહીં અને તમને સોંપણીઓ પૂર્ણ કરવા માટે કહીશ નહીં. હું તમારો પ્રોફેસર નથી, તમે મારા મિત્રની જેમ વિચારી શકો છો જે તમને તમારી પોતાની વ્યક્તિગત સફળતા દ્વારા સંચાલિત કારકિર્દી તરફ માર્ગદર્શન આપવા માંગે છે. અને હું તમને સફળતા પણ વેચતો નથી, તમારે તેને તમારા સમય સાથે ખરીદવાની જરૂર રહેશે. કોડમાં શીખવાની learning ભી શીખવાની વળાંક હોય છે અને તે ક્યારેય સરળ નહોતી, અથવા તે પણ માનવામાં આવતી નહોતી. તમારે શક્ય તેટલી સખત મહેનત કરવાની જરૂર છે અને પ્રયાસો અને નિષ્ફળ થવાનું ચાલુ રાખો અને જ્યારે તમે એપ્લિકેશનો જાતે શીખવા અને બનાવવા માટે નિરાશ હોવ ત્યારે પણ ફરીથી પ્રયાસ કરો. તે કોડની પ્રકૃતિમાં છે. કોડ એક કમ્પાઇલર દ્વારા ચલાવવામાં આવે છે જે પ્રોગ્રામર ભૂલ સંદેશાઓ આપવા માટે રચાયેલ છે, અને આ તમને કોડ કેવી રીતે કરવો તે શીખવશે, પછી ભલે તમે ફક્ત તમારા શોધ એન્જિનમાં ભૂલની નકલ કરી રહ્યાં છો અને અન્ય લોકોના ઉદાહરણો વાંચી રહ્યા છો. અને મારે કહેવું જ જોઇએ કે, તમારે એપ્લિકેશન બનાવવા માટે ખૂબ સમૃદ્ધ, સ્માર્ટ, સફળ અથવા વિગતવાર લક્ષી અથવા ગોઠવવાની જરૂર નથી. કમ્પ્યુટર તમારા માટે તે સંસ્થાની સંભાળ રાખે છે. તમારે ફક્ત અજમાયશ અને ભૂલ દ્વારા સતત ધ્યાન આપવાની જરૂર છે, ધ્યાન જાળવવું અને તમે જે કરો છો તેના પર સખત મહેનત કરવાની જરૂર છે, અને તમે જે કરો છો તેની સંપૂર્ણતામાં તમારી ખૂબ જ સફળ કારકિર્દી હશે.
હું કોણ છું: મને ખ્યાલ છે કે છેલ્લો વિભાગ શીખવા વિશે વધુ હતો અને તમે આ પુસ્તકમાંથી એક માર્ગ લે છે. હું બરાબર કોણ છું? તે એક જટિલ પ્રશ્ન છે. હું મારા પર અસ્પષ્ટ છું, કેમ કે હું તબીબી પરિસ્થિતિઓથી પીડાય છું જે મારા માટે આ પુસ્તકને કોડ અથવા લખવાનું મુશ્કેલ બનાવી શકે છે, જ્યારે સમાજીકરણ અને ઓળખના મુદ્દાઓ સાથે પડકારો પ્રસ્તુત કરે છે જે મારા જીવનને રજૂ કરવાની વાત આવે છે ત્યારે મારા જીવનને વધુ મુશ્કેલ બનાવે છે. ટૂંકમાં, જો તમે આ પુસ્તક વાંચી રહ્યાં છો, તો તમે તેને ઘરે લાવ્યા કારણ કે તમે તેના દ્વારા પલટાવ્યા હતા અને વિચાર્યું હતું કે તે ઉપયોગી છે, અથવા જો તમે હમણાં જ આ વાંચ્યું છે, તો પણ હું તમને એક એવું માનસ વ્યક્તિ છું જે તમને જે પણ કરો છો તેમાં સફળ થવું જોઈએ. હું જાતે, એક સ software ફ્ટવેર ડેવલપર અને એક વિદ્યાર્થી છું, અને હું આ પુસ્તક અન્ય વિદ્યાર્થીઓ માટે લખી રહ્યો છું કે જેઓ સ software ફ્ટવેરની હેન્ડબુક રાખીને પોતાનું જીવન સરળ બનાવવા માંગે છે, તેઓને એકસાથે કામ કરવા માટે, જેમ કે એક મોટી પઝલની જેમ એક સાથે ફિટ રહેલી, એકસાથે, ઉપયોગી, મોટા, કાર્યાત્મક, સુસંગત, અને સંલગ્ન એપ્લિકેશનમાં એકસાથે ફિટ થઈ શકે છે, જે વ્યવસાયની લાઇનથી કોઈ બાબતને ધ્યાનમાં રાખતા નથી. મોટે ભાગે, આ હું કરું છું: હું મારી જાતને અને અન્ય લોકોને સફળ થવા માટે એપ્લિકેશનો બનાવું છું. હું પણ એક લેખક છું, જોકે આ મારું પહેલું પ્રકાશન છે જેનો મારો પોર્ટફોલિયો એક ઉપયોગી દસ્તાવેજમાં મૂકવા માટે પૂર્ણ કરવાનો ઇરાદો છે, અને હું પણ એક કલાકાર છું. હું તમને આ સ્વીકાર કરીશ, હું એક વિચિત્ર વ્યક્તિ છું. હું સંપૂર્ણ નથી, મેં કાયદાની સાથે ઇન્સ ચલાવી લીધું છે, પણ મને કોલેજો અને યુનિવર્સિટીઓ છોડી દેવા અને વધુ સફળતા સાથે પોતાનું નામ બનાવવાનો પ્રયાસ કરવા માટે રાજ્યો છોડી દેવા તરફ દોરી ગઈ. હું જન્મથી એક સ્ત્રી છું, હું મેકઅપ પહેરું છું, મારા ફોટા લઉં છું, કપડાં પહેરે છે અને અન્ય મહિલા વસ્ત્રો પહેરું છું, અને હું પ્રકૃતિ દ્વારા સ્ત્રી તરીકે મારી જાતને સભાન રહું છું. મારી પાસે ભૂતકાળમાં અન્ય લોકો સાથે સમસ્યાઓ છે જે વેબએપીએસ લખવા અને બનાવવા માટેના સંઘર્ષો તરફ દોરી જાય છે, અને હું માફી માંગું છું કે હું આ પુસ્તકને તમારા હાથમાં વહેલા મેળવી શક્યો નથી: તમને આની જરૂર છે. તમે મારા જેવું લાગે છે અને મારા જેવું કામ કરે છે તે કોડ વાંચવા અને લખવા માંગો છો અને તે જ સારું કરે છે, કારણ કે જો તમે તમારા કીબોર્ડને મેશ કરવાને બદલે આ પુસ્તક ખરીદવાનું પરવડી શકો છો, જેમ કે હું જાતે જ તેના માટે પૈસા પૂછવા માટે કોઈ પુસ્તક બનાવવા માટે કરું છું, તો તમારે તમારા જીવનમાં સફળ થવાની જરૂર છે. મારી પાસે કુટુંબમાં મોટા થતાં, આરોગ્યની સ્થિતિ, ડોકટરો, મીડિયા અને કાયદો સાથે તમામ પ્રકારના મુદ્દાઓ હતા અને મારો કોડ વિભાજિત અને હતાશ વિશ્વમાં નારીવાદ અને સ્ત્રી પ્રકૃતિના સંઘર્ષને deeply ંડે પ્રતિબિંબિત કરે છે. જો કે, આ પુસ્તક કંઈક છે જેની હું ખૂબ કાળજી રાખું છું, મારા બાળક, મારા પોર્ટફોલિયો અને મારા આજીવિકા, તેથી જ્યારે તમે ટેક્સ્ટને ઘરે લેશો અને મારી પાસેથી શીખવા માટે કાળજીપૂર્વક તેના પર ધ્યાન આપશો ત્યારે હું તમારી વિચારણાની પ્રશંસા કરું છું. મહેરબાની કરીને ધ્યાનમાં રાખો કે હું સંપૂર્ણ નથી, આ પુસ્તકમાં ભૂલો, સંશોધનો અને નવી આવૃત્તિઓ હશે, અને મારા લેખન સાથે સફળ અનુભવ મેળવવા માટે તમારે તમારા તાર્કિક મગજ સાથે શ્રેષ્ઠ વિચારવાની જરૂર રહેશે. ઉપરાંત, સમજો કે લખતી વખતે પડકારોનો સામનો કરવો પડે ત્યારે પણ હું તમારા માટે સારી રીતે અર્થ કરું છું. આ વિશે વિચારો: જ્યારે તમે ડિજિટલ સ્પેસમાં કલ્પના કરી શકો છો તે કંઇપણ કરવા માટે ફક્ત કમ્પ્યુટર સિસ્ટમ ભાડે આપી શકો છો, ત્યારે તમે જે માહિતી અનુભવી શકો છો તે સંગ્રહિત કરી શકો છો, તેનું વિશ્લેષણ કરો અને તેને સમજવા માટે આવી શકો છો, ત્યારે તમે જે માહિતી પીતા હોવ અને પ્રકાશિત કરી રહ્યાં છો તેની સાથે તમને અનિવાર્યપણે મુશ્કેલીઓનો સામનો કરવો પડશે. હું તમને આ કહું છું કારણ કે મને તે જ મુશ્કેલીઓનો સામનો કરવો પડે છે. 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 કામ, ઇન્ટરનેટ. હું ફક્ત થોડા શબ્દોથી કોણ છું તેનાથી તમે ખૂબ પરિચિત ન હોવ, પરંતુ હું તમને વાંચવા માટે પ્રોત્સાહિત કરું છું, તમારું કાર્ય પૂર્ણ કરવા માટે તમે તમારા પોતાના પ્રોજેક્ટ્સ બનાવતી વખતે મને વાંચવાનું અને સમજવાનું ચાલુ રાખશો ત્યારે તમે મને જાણશો. આ પુસ્તક સાથે કોઈ હોમવર્ક રહેશે નહીં, ત્યાં સુધી તમારા પ્રોફેસરો અથવા શિક્ષકો તમને કોઈ સોંપશે નહીં, પરંતુ તમે વાંચો ત્યારે પ્રોજેક્ટ્સનો પોર્ટફોલિયો બનાવવા માટે હું તમને ખૂબ પ્રોત્સાહિત કરું છું, તેમજ તમે જે શીખ્યા તે તમે કેવી રીતે લાગુ કરી શકો છો તે દર્શાવતા એક કેપસ્ટોન પ્રોજેક્ટ. મારો કેપસ્ટોન પ્રોજેક્ટ આ પુસ્તકમાં તમે જે વાંચશો તે મોટાભાગના માટેનો આધાર છે, કારણ કે તેમાં મારા પાછલા પ્રોજેક્ટ્સનો કોડ શામેલ છે, મેં હાથથી પદ્ધતિસર લખવાનું અને લખવાનું શીખ્યા છે, અને વિશાળ શ્રેણીના વિચારો અને ટીપ્સ કે જેણે મને એક સરળ એપ્લિકેશન સ્પિન કરી શકું છું જે તમે તમારા મિત્ર અથવા કુટુંબનો ઉપયોગ કરીને, એક સરળ એપ્લિકેશનને સ્પિન કરી શકો છો, જેમ કે તમે તમારા મિત્ર અથવા કુટુંબનો ઉપયોગ કરી શકો છો, અથવા તમે ઇન્ટરનેટનો ઉપયોગ કરી શકો છો, અથવા તમે તમારા મિત્ર પર ઉપયોગ કરી શકો છો.આ પુસ્તક શું છે: આ પુસ્તક ઉદાહરણ દ્વારા ટ્યુટોરિયલ છે. 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 તમારા અંતિમ વપરાશકર્તાઓ, તમારી વેબસાઇટના મુલાકાતીઓ માટે શક્ય તેટલું આકર્ષક બનવા માટે તમે સંપૂર્ણ શ્રેષ્ઠ પ્રકાશમાં બનાવેલ સ software ફ્ટવેર. આ પુસ્તકમાં, હું એક પ્લેટફોર્મ તેમજ સુરક્ષા તરીકે વેબ પર ધ્યાન કેન્દ્રિત કરીને સ software ફ્ટવેર ડિઝાઇનના ઘણા ઉદાહરણો દર્શાવીશ. અમે બેકઅપ અને સ્ક્રિપ્ટીંગ સુવિધાઓ સાથે, યુનિક્સ શેલનો ઉપયોગ કરીને મૂળભૂત પ્રોજેક્ટ બનાવીને શીખવાના અનુભવની શરૂઆત કરીશું. તે પછી, અમે મૂળભૂત બ્લોગ વેબસાઇટની તપાસ કરીશું, ફોટો અને વિડિઓ સુવિધાઓ સાથે અમારા બ્લોગને અપગ્રેડ કરીશું તેમજ મફત સ software ફ્ટવેરનો ઉપયોગ કરીને સુરક્ષા ઉકેલોને રોજગારી આપવા માટે આ સુવિધાઓનો ઉપયોગ કરીશું, અને પ્લગેબલ ઓથેન્ટિકેશન મોડ્યુલ (પીએએમ) નો ઉપયોગ કરીને અમારા સર્વરને સુરક્ષિત કરીશું. ત્યારબાદ અમે અન્ય ખ્યાલોની વચ્ચે ફાઇલ હેન્ડલિંગ અને પ્રોસેસિંગ, વિડિઓ સંપાદન, વ voice ઇસ દાન, બારકોડ સ્કેનીંગ અને opt પ્ટિકલ પાત્ર માન્યતાની અન્વેષણ કરવાની સમીક્ષા કરીશું. રસ્તામાં અમે એપીઆઈની તપાસ કરીશું જે આપણને મફત અને ચૂકવણી કરેલા વિકલ્પો સાથે, અમારા સ software ફ્ટવેરને વધુ ઉપયોગી અને સુરક્ષિત બનાવવામાં મદદ કરશે. માર્ગમાં, અમે બેરલ અને રિપીટર ડિઝાઇન, સંઘાડો અને ડ્રોન ડિઝાઇન, અને અન્ય આચાર્યો સહિતના ફાયરઆર્મ્સ અને મ્યુનિશન ડિઝાઇન અને મેન્યુફેક્ચરિંગ જેવા શારીરિક સુરક્ષા અને આતંકવાદી સાધનોની શોધ કરીશું, જેથી અમે અમારા સ software ફ્ટવેરને સુરક્ષિત રાખવા અને સ્વ -સંરક્ષણ અને રીસિલિયન્સનું નિદર્શન કરવા માટે હાલના નેટવર્ક પર અમારા સ software ફ્ટવેર સાથે એકીકૃત કરીશું. અમે રમતો, 2 ડી અને 3 ડી રેન્ડરિંગ એન્જિનો બનાવવાની રીત સાથે વિરામ લઈશું, અને અનુક્રમે સિલિકોન રબરમાં મૂળભૂત પરિમાણીય રેન્ડરિંગ સ software ફ્ટવેર અને ઇલેક્ટ્રોનિક વાઇબ્રેટિંગ મસાજરના કેસના અભ્યાસના ઉદાહરણોમાં એમ્બેડ કરેલા હાર્ડવેર સાથે કામ કરીશું. માર્ગમાં, અમે અમારા સ software ફ્ટવેરને વધુ સારી રીતે સુરક્ષિત કરવા માટે પહેલાથી ઉપલબ્ધ મશીન લર્નિંગ સોલ્યુશન્સનો ઉપયોગ કરીશું. પ્રક્રિયાને સુવ્યવસ્થિત કરવા અને સુરક્ષિત કરવા માટે અમે વેબ માટે ઉપલબ્ધ સ્ટોક ટૂલ્સ પણ રોજગારી આપીશું. આ પુસ્તક વેબ એપ્લિકેશન બનાવવા અને તેને કમ્પ્યુટર અને એમ્બેડ કરેલા મિકેનિકલ સિસ્ટમ્સના વ્યાવસાયિક નેટવર્ક સાથે એકીકૃત કરવામાં તમારી સફળતાની માર્ગદર્શિકા છે, અને પૃષ્ઠભૂમિ જ્ knowledge ાન અથવા પાછલા અનુભવ વિના સ software ફ્ટવેર અને એમ્બેડેડ હાર્ડવેર બનાવવા માટે એકંદરે માર્ગદર્શિકા છે.
આ પુસ્તક શું નથી: જો તમે ખરેખર કોઈ વેબસાઇટ રાખવા માંગતા હો, તો તમે ફક્ત એક સરળ સ્ટોર સેટ કરી શકો છો અને તમને જે જોઈએ તે વેચી શકો છો, બ્લોગ પોસ્ટ કરો, ફોટા અથવા વિડિઓઝ પોસ્ટ કરી શકો છો, અથવા તો ક્યારેય કોડની એક લાઇન લખ્યા વિના. આ પુસ્તક તે નથી. આ પુસ્તક તમને પહેલેથી જ શોધી શકે તેવા કોઈપણ સ software ફ્ટવેર કરતાં વધુ ઉપયોગી, સંપૂર્ણ રીતે દર્શાવવામાં આવેલ, કાર્યાત્મક અને સુરક્ષિત કેવી રીતે બનાવવું તે શીખવશે, કારણ કે તે નવીનતમ સ software ફ્ટવેર જમાવટ કરે છે જે હજી પણ પ્રોટોટાઇપ્સ છે, જૂની કંપનીઓ ચલાવતા સ્કેલ પર ચલાવવા માટે ખર્ચાળ હોઈ શકે છે, અને જે લોકો ખરેખર કંઇપણ ન કરતા હોય તેવા લોકો માટે પૈસા બનાવવા માટે, પાછળની બાજુએ, મનાવી કંપનીઓને અપીલ કરતી નથી. જો તમે આ પુસ્તકને નજીકથી અનુસરો છો, તો તમે કોડ, સંશોધન કોડ લખવા, તમારી પોતાની એપ્લિકેશનો બનાવવાની ઇચ્છા કરશો, અને તમે જે કરો છો તેનાથી તમે પૈસા કમાવશો. હું આ પુસ્તકમાંથી પ્રારંભિક તબક્કામાં પણ પૈસા કમાવીશ, કારણ કે તેમાં લોકોને જરૂરી માહિતી છે અને તે વાંચવા માંગે છે, અને જ્યારે તેઓ મારી એપ્લિકેશનો ખરીદે છે અથવા તેનો ઉપયોગ કરે છે ત્યારે પહેલેથી જ ખરીદી રહ્યા છે. આ પુસ્તક તમારા માટે કોઈ એપ્લિકેશન બનાવશે નહીં, પરંતુ તે તમને યોગ્ય દિશામાં નિર્દેશ કરશે અને તમને જરૂરી સાધનો અને કુશળતા અને ટીપ્સ સાથે સજ્જ કરશે જે વેબ માટે સ software ફ્ટવેર બનાવવાની તમારી પોતાની સફળતાને સરળ બનાવશે, કોડની દરેક લાઇન સાથે તમારે ઉદાહરણ તરીકે લખવાની જરૂર રહેશે, તમે અને તમારા સમર્થકો, અતિથિઓ, ગ્રાહકો, મિત્રો, મિત્રો, કુટુંબ, કોન્ટ્રાક્ટર્સ અને સપોર્ટની ઇચ્છિત સ software ફ્ટવેર, તમે અને તમારા સમર્થકો, સોફ્ટવેર સાથે જોડાયેલા રહેવા માટે તૈયાર છો.તમે શું શીખી શકશો: આ પુસ્તક તમને સ software ફ્ટવેર, ખરેખર કાર્યાત્મક, ઉપયોગી સ software ફ્ટવેર, મીડિયા રેકોર્ડિંગ, ચહેરાની ઓળખ, મશીન રીડિબલ ઝોન બારકોડ સ્કેનીંગ, વેબ એપીઆઇને પ્રમાણિત કરવા, રેકોર્ડ કરવા અને રેન્ડર કરવા માટે વેબ એપીઆઇ, અને બ્લૂટૂથ અને નજીકના ક્ષેત્ર (એનએફસી) સંદેશાવ્યવહાર જેવા સંદેશાઓને કેવી રીતે બનાવવું અને વેચવું તે શીખવશે. આ પુસ્તક તમને નેટવર્કવાળા કમ્પ્યુટરનો ઉપયોગ કેવી રીતે કરવો તે શીખવશે, ડેબિયન લિનક્સ પર ધ્યાન કેન્દ્રિત કરીને, તમારા સ software ફ્ટવેરને સીમલેસ, સ્વચાલિત પવનની ઇન્સ્ટોલ કરવા અને બેકઅપ બનાવવા માટે, બેશ કોડ કેવી રીતે બનાવવો, કેવી રીતે પાયથોન કોડને બેકએન્ડ તરીકે બનાવવો, ગતિશીલ સંદેશાઓને સેવા આપવા માટે ગતિશીલ સંદેશાઓ, સક્ષમ વપરાશકર્તા લ lag ગિન સાથે સીએસએસ સ્ટાઇલનો ઉપયોગ કરીને, અન્ય ઇન્ટરેક્ટિવ મીડિયા અને ઇન્ટરેક્ટિવ ડિવાઇસેસ સાથે ઇન્ટરેક્ટિવ મીડિયા સાથે, શ્રેષ્ઠ રીતે ઉપયોગમાં લેવાતા, નેટવર્ક અને ઇન્ટરેક્ટિવ ડિપાર્ટમેન્ટ્સ સાથે, નેટવર્ક્સ, ઇન્ટરેક્ટિવ મીડિયા, ઇન્ટરેક્ટિવ મીડિયા સાથે, ઇન્ટરેક્ટિવ મીડિયા, ઇન્ટરેક્ટિવ મીડિયા સાથે, ઇન્ટરેક્ટિવ મીડિયા, ઇન્ટરેક્ટિવ મીડિયા, બિલ્ડ. ચકાસણી અથવા અન્ય હેતુઓ, આઈડી સ્કેનીંગ, છબી અને વિડિઓ મધ્યસ્થતા, તમારા સ software ફ્ટવેરને સુરક્ષિત, ચુકવણી પ્રક્રિયા, ક્રિપ્ટોકરન્સી ટ્રેડિંગ, અસુમેળ કાર્યો અને વધુ રાખવા માટે ડેટા માઇક્રોટ્રાંસેક્શન્સ. સોલ્ડર, વાયર અને 3 ડી પ્રિન્ટેડ તેમજ કાસ્ટ મટિરીયલ્સનો ઉપયોગ કરીને, તમે બેટરી, ચાર્જર્સ, માઇક્રોકન્ટ્રોલર્સ, સર્કિટ્સ, મોટર્સ અને સેન્સર સાથે, તમારા પોતાના બ્લૂટૂથ ઉપકરણો કેવી રીતે બનાવવી તે શીખી શકશો. હું એડિટિવ મેન્યુફેક્ચરિંગ અને ટૂલ અને ડાઇ મેકિંગ પર લાગુ 3 ડી ડિઝાઇન આચાર્યોનું નિદર્શન કરીશ, જેથી તમે તમારા પોતાના એમ્બેડ કરેલા, હાર્ડવેર ડિવાઇસેસને ઇન્ટિગ્રેટેડ બેટરીઓ, ચાર્જર્સ, ઇલેક્ટ્રોનિક સર્કિટ્સ અને કાર્યાત્મક આઉટપુટ સાથે બનાવવામાં સક્ષમ છો. અને તેમને બ્લૂટૂથ અને વેબ સાથે નેટવર્ક કરો. ખાસ કરીને, અમે બે કેસ સ્ટડીઝ, એક વાઇબ્રેટીંગ મસાજર અને હોમમેઇડ ફાયરઆર્મની તપાસ કરીશું, બંને ઓપનસીએડીમાં પ્રોગ્રામ કરેલા છે, જે ગ્રાફિકલ ઇન્ટરફેસ અથવા કમાન્ડ લાઇન યુટિલિટી તરીકે ઉપલબ્ધ છે અને ઝડપી પરિણામો માટે વેબમાં એકીકૃત કરી શકાય છે. તમે કોઈ પૂર્વ અનુભવ વિના ગ્રાઉન્ડથી વેબસાઇટ કેવી રીતે બનાવવી અને જમાવવી તે શીખી શકશો, તેને કાર્યાત્મક, સુરક્ષિત, સુંદર, ઉપયોગી અને સૌથી અગત્યનું વ્યવહારુ બનાવશે. તમે સાઇટને સુરક્ષિત અને વધુ વ્યવહારુ બનાવવા માટે મશીન લર્નિંગ અને કમ્પ્યુટર વિઝનનો ઉપયોગ કેવી રીતે કરવો તે શીખી શકશો, તમારી વેબસાઇટમાંથી વિડિઓ અને audio ડિઓ રેકોર્ડ કરો, તમારો અવાજ દાન કરો, ઉપયોગી નમૂનાઓ બનાવવા માટે સંગીત બનાવો અને audio ડિઓને મોડ્યુલેટ કરો, અને તમે તમારી પાસે વધુ ઉપયોગી માહિતીને શેર કરવા માટે અને તે જ ઉપયોગમાં લેવાતી વેબસાઇટ્સનું શ્રેષ્ઠ શક્ય નેટવર્ક બનાવવા માટે અન્ય વેબસાઇટ્સનો લાભ આપીને અવાજને કેવી રીતે તોડી શકો છો. આ પુસ્તક મીડિયા, સિક્યુરિટી અને મશીન લર્નિંગ પર ખૂબ ધ્યાન કેન્દ્રિત કરશે, જે મુખ્ય ત્રણ ઘટકો છે જે તમને યોગ્ય વપરાશકર્તાઓને સંલગ્ન કરીને અને ખોટા લોકોને વાસ્તવિક, વ્યવહારિક, હાથ પર અને સંલગ્ન રીતે વિખેરી કરીને, જ્યારે સ્વચાલિત અને સખત હોય છે તે રીતે ખોટા લોકોને વિખેરી નાખવામાં મદદ કરશે. આ પુસ્તક યુનિક્સ, ખાસ કરીને ડેબિયન (ઉબુન્ટુ), બાશ શેલ, પાયથોન, એચટીએમએલ, સીએસએસ, જાવાસ્ક્રિપ્ટ અને વિનંતીઓ જેવા પાયથોન માટે ઘણા ઉપયોગી સ software ફ્ટવેર પેકેજો, તેમજ ગિટ અને એફએફએમપીઇજી જેવા ઉપયોગી બાશ સ software ફ્ટવેર શીખવે છે. હું તમને ક્રિપ્ટોકરન્સી આપમેળે કેવી રીતે વેપાર કરવો તે શીખવીશ, અને ક્રિપ્ટોકરન્સીમાં અથવા નિયમિત ડેબિટ કાર્ડ્સમાંથી ચુકવણીઓ લઈશ, જ્યારે તમે તેમ કરવાનું પસંદ કરો છો તો પણ તમારા મુલાકાતીઓને તમારી આવકનો હિસ્સો ચૂકવવો. હું તમને જાહેરાત દ્વારા તમારી વેબસાઇટમાંથી પૈસા કેવી રીતે બનાવવી, તમારી એપ્લિકેશનને સર્ચ એન્જિન માટે કેવી રીતે તૈયાર કરવી અને તેને ઝડપી બનાવવી, તમારા ગ્રાહકો તમને શોધવા માટે જે શોધશે તે માટે પ્રથમ રેન્કિંગમાં ક્રમે કેવી રીતે બનાવવી, અને શક્ય તેટલી સામાન્ય શોધમાં રેન્કિંગ આપું છું તે શીખવીશ. હું તમને તમારા સ software ફ્ટવેરને વેચવું, તેની જાહેરાત કેવી રીતે કરવી, તમારી સેવાઓ શોધતા ગ્રાહકોને અપીલ કરવી, અને પહેલાથી અસ્તિત્વમાં રહેલા એવન્યુ દ્વારા ઇન્ટરનેટ પર તમારા માટે નામ કેવી રીતે બનાવવી, સસ્તું છે અને સારી રીતે કાર્ય કરીશ તે શીખવીશ. તમારા માટે કાર્યરત ક્લાઉડ કમ્પ્યુટર્સ પર તમારો ડેટા કેવી રીતે સાચવો અને તમારા ડેટાને સસ્તી રીતે સાચવવી, તમારા વપરાશકર્તાઓને શું જોઈએ છે અને તમે શું ઇચ્છો છો તે વેબસાઇટ કેવી રીતે બનાવવી, અને તમારા વપરાશકર્તાઓને સૂચનાઓ, ઇમેઇલ, ટેક્સ્ટ સંદેશાઓ, ફોન ક calls લ્સ અને તમારા વપરાશકર્તાઓને તમારા વપરાશકર્તાઓને તમારા વપરાશકર્તાઓને તમારા સીક પર પાછા લાવવા માટે કેવી રીતે તમારા વપરાશકર્તાઓને તમારી વેબસાઇટ પર પાછા લાવવા માટે તમારા વપરાશકર્તાઓને તમારી વેબસાઇટ પર પાછા લાવવા માટે કેવી રીતે બનાવવી તે તમારા માટે ક્લાઉડ કમ્પ્યુટર્સ પર તમારો ડેટા કેવી રીતે સાચવવો, હું તમને શીખવીશ. આ પુસ્તક મીડિયાને મોટા પ્રમાણમાં પ્રકાશન અને વિતરિત કરવાની વ્યવહારિકતા પર ધ્યાન કેન્દ્રિત કરશે, ટેક્સ્ટથી લઈને ફોટાઓથી લઈને video ડિઓ સુધી, અંતિમ વપરાશકર્તાઓ (તમારા અસીલો) પર સારી છાપ બનાવશે, અને વેબસાઇટ બનાવવા માટે તમે જે રીતે કરો છો તે કોઈપણ રીતે તમારી જાતને વેચશે, જે એક એપ્લિકેશન છે, જે તમારા અને ફક્ત તમારા સ software ફ્ટવેર અને તમારી કંપનીને શ્રેષ્ઠ રીતે શક્ય બનાવે છે. કોડિંગ ટીપ્સ, મેકઅપ અને ફોટોગ્રાફી, મોડેલિંગ અને અભિનય જેવા વ્યવહારુ મિથ્યાભિમાનથી તમે મારી પાસેથી કેટલીક ટીપ્સ અને યુક્તિઓ પણ શીખી શકશો, જે તમને તમારા માટે ઉપલબ્ધ તમામ ટૂલ્સનો ઉપયોગ કરીને તમારા માટે ઉપલબ્ધ તમામ ટૂલ્સનો ઉપયોગ કરીને તમારી જાતને અને તમારી કંપનીને શ્રેષ્ઠ રીતે શક્ય પ્રકાશમાં રજૂ કરવા માટે મહત્વપૂર્ણ રહેશે, જ્યારે તમને જરૂરી ન હોય તેવા કામ અથવા પૈસાની સાથે કોઈ વધુ પ્રયાસો માટે તમારા સ software ફ્ટવેરને લાવવા માટે જરૂરી છે. આ પુસ્તકને "પ્રાયોગિક" કહેવામાં આવે છેવેબ આધારિત deep ંડા શિક્ષણ અને સલામતી ઉદાહરણ દ્વારા "એક કારણ માટે: તે કોડના શીખવાની સાથે, ખાસ કરીને વેબ માટે, ખાસ કરીને સુરક્ષા પર ધ્યાન કેન્દ્રિત કરીને, વ્યવહારિક દૃષ્ટિકોણથી, કાર્યકારી કોડના ઉદાહરણો સાથે, જે ટેક્સ્ટમાં દર્શાવેલ વ્યવહારિક હેતુઓને સેવા આપે છે. આ ટેક્સ્ટના શીખવાના ઘટકને પણ મશીન લર્નિંગ, હું તમને કેવી રીતે છબી અને કમ્પ્યુટર વિઝન માટે ચલાવશે તે બતાવીશ, વિડિઓ અને કમ્પ્યુટર વિઝન માટે કેવી રીતે દોડશે, વિડિઓ, વિડિઓ અને વિડિઓ. ઉન્નતીકરણ, ઇમેજ ક tion પ્શનિંગ અને અન્ય કાર્યો જેમ કે છબીઓમાંથી મેળવેલા આગાહી મેટ્રિક્સ, જેમ કે એક અધિકૃત, કમ્પ્યુટર-ટ્રાન્સફર કરેલી છબી તરીકે, અથવા opt પ્ટિકલ ક copy પિ (એક છબીનો ફોટો, અથવા છાપેલ ફોટો) જ્યારે તે તમારા કમ્પ્યુટરમાં લ log ગમાં લ log ગમાં રહે છે, તો તે તમારા કમ્પ્યુટરમાં ઉપયોગમાં આવે છે. ચહેરો તમે સર્વર કમ્પ્યુટરને સલામત બનાવી શકો છો, જે તમને સામાન્ય રીતે વપરાશકર્તા નામ અને પાસકોડ માટે પૂછશે અને દરેક નવા લ login ગિન અથવા નવા આઇપી સરનામાં માટે પુષ્ટિ ટોકન સાથે. કોઈપણ જે સ software ફ્ટવેર બનાવે છે જે દોષરહિત રીતે સુરક્ષિત છે તે આ સૂચવે છે તેનો થોડો અર્થ છે. સ software ફ્ટવેર સ્વાભાવિક રીતે અસુરક્ષિત છે કારણ કે આપણે તેને access ક્સેસ કરવા માટે ઉપયોગમાં લેવાયેલા ઉપકરણો અને એકાઉન્ટ્સ હંમેશાં અમારા નિકાલમાં હોતા નથી, તે સ software ફ્ટવેર માટે ખરાબ ઉદ્દેશ્યવાળા કોઈપણના હાથમાં હોઈ શકે છે અને તેથી તે સ software ફ્ટવેર માટે જોખમ ઉભું કરી શકે છે. આ આ પુસ્તકનું ધ્યાન કેન્દ્રિત કરવાની વાત છે. નેટવર્ક્ડ કમ્પ્યુટર ડિફ default લ્ટ રૂપે લાંબી કી ટોકન સાથે સુરક્ષિત છે, જેને અને એસએસએચ અથવા સુરક્ષિત શેલ કી કહેવામાં આવે છે, અને તે વેબ સર્વરથી શ્રેષ્ઠ રીતે સુરક્ષિત છે, કારણ કે વેબ સર્વર સર્વર પર જ ચાલતી આર્ટ સિક્યુરિટી ટૂલ્સની ખુલ્લી access ક્સેસ પ્રદાન કરે છે. વેબ સર્વર પાસે વપરાશકર્તાના વેબ બ્રાઉઝરની .ક્સેસ છે, જે દલીલથી વપરાશકર્તાના ઉપકરણનો સૌથી શક્તિશાળી ભાગ છે, કારણ કે તે તે સ્થાન છે જ્યાં વપરાશકર્તા નેટવર્ક સ software ફ્ટવેરને access ક્સેસ કરી શકે છે. આ ટૂલકિટ ટેક્સ્ટ, તમે જુઓ છો તે વેબપૃષ્ઠો રેન્ડર કરી શકે છે, અને છબીઓ, audio ડિઓ અને વિડિઓ (જેમ કે ચહેરા અથવા રાજ્ય આઈડીનો ફોટો) પણ રેકોર્ડ કરી શકે છે, બ્લૂટૂથ રેડિયો ઉપકરણોને વાંચી અને લખી શકે છે, અને નજીકના ફીલ્ડ ટ્રાન્સપોન્ડર ટ s ગ્સ, સસ્તી કી કાર્ડ્સ, એફઓબીએસ, સ્ટીકરો, રિંગ્સ અને ડેટા જનરેશન દ્વારા લખાયેલ ચિપ ઇમ્પ્લેન્ટ્સ સાથે વાંચી અને લખી શકે છે જે ડેટાને વાંચી શકે છે. તમારા નિકાલ પરના બધા ટૂલ્સનો ઉપયોગ કરીને, આ પુસ્તક સાથે તમે સુરક્ષિત વેબસાઇટ બનાવવા માટે જ્ knowledge ાનથી પોતાને સજ્જ કરશો, અને એકંદરે સુરક્ષિત નેટવર્ક કમ્પ્યુટર સિસ્ટમ જે તમારા માટે કાર્ય કરે છે, તમારી બોલી લગાવે છે, અને લાગે છે અને અનુભવે છે
ક્યાંથી શરૂ કરવું: તમે જે વિભાગની શરૂઆત કરી છે તે વિભાગને છોડી દેવા માટે તમારું સ્વાગત છે, અથવા કોઈપણ વિભાગને, તમને જરૂરી ચોક્કસ કોડમાં, ખાસ કરીને જો તમને આ પુસ્તકમાં પહેલાં અથવા ઉપરોક્ત કોઈપણ ઉપરોક્ત ટૂલ્સનો વિગતવાર વર્ણન કરવા તેમજ ઉપયોગના કેસો અને તેના વ્યવહારિક ઉદાહરણોને દસ્તાવેજીકરણ કરવાનો અનુભવ છે. જો તમારી પાસે કોડ લખવાનો અનુભવ નથી, તો હું તમને આ બધા પુસ્તક વાંચવાની ખૂબ ભલામણ કરું છું, અને ખાસ કરીને તમે આ પુસ્તક તમારા માટે યોગ્ય છે તેની ખાતરી કરવા માટે, અગાઉના વિભાગો વાંચવાની ભલામણ કરું છું. જો આ પુસ્તક તમારા માટે યોગ્ય નથી, તો તેને કોઈ મિત્ર અથવા સંબંધીને ભેટ આપવાનું ધ્યાનમાં લો જે કદાચ વેબ ડેવલપમેન્ટ વિશે શીખવામાં રસ ધરાવતા હોય, અને તેને પાછા ઉધાર લેવાનું અને તેમની પાસેથી શીખવાનું પણ ધ્યાનમાં લો જ્યાં હું તમને શિક્ષક તરીકે નિષ્ફળ ગયો, અથવા અન્ય શિક્ષકોએ મારી આગળ કર્યું. તમે જ્યાં કરશો તે પ્રારંભ કરો, જો તમે કોઈ ઉપયોગી એપ્લિકેશન બનાવવાનો ઇરાદો રાખશો તો આ પુસ્તકનો દરેક ભાગ ઉપયોગી થશે, અને ધ્યાનમાં લો કે શ્રેષ્ઠ એપ્લિકેશનો અંતિમ વપરાશકર્તાને ધ્યાનમાં રાખીને બનાવવામાં આવી છે: તમારા ગ્રાહકને જાણો. હવે તમે મને જાણો છો, તમે આ પુસ્તક જાણો છો, અને તમે પ્રારંભ કરવા માટે તૈયાર છો. પ્રારંભ કરવા માટે, કમ્પ્યુટરને પકડો (બ store ક્સ સ્ટોર, એમેઝોન અથવા જૂના ડેસ્કટ .પથી સસ્તી લેપટોપ પણ, અને તેને તમારા માટે કાર્યરત રીતે સેટ કરો.આ પુસ્તક કેવી રીતે વાંચવું: ટેક્સ્ટ પ્રકાશિત, સૂચવે છે કે ટેક્સ્ટ કમાન્ડ પ્રોમ્પ્ટમાં છે, જ્યાં તમે તમે ચલાવતા કોડ લખો છો. કમાન્ડ પ્રોમ્પ્ટ ભારે કીબોર્ડ કેન્દ્રિત છે અને તેમાં કોઈ ક્લિક કરવા માટે થોડુંક જરૂરી છે, તમારા વર્કફ્લોને ઝડપી બનાવશે અને તમારા પર વસ્તુઓ સરળ બનાવે છે.
પ્રારંભ કરવું: ચાલો ડાઇવ કરીએ. અમે સ્થાનિક મશીન પર કોડ બનાવીને પ્રારંભ કરીશું અને ઇન્ટરનેટથી કનેક્ટેડ વેબસાઇટ બનાવ્યા વિના પ્રારંભ કરીશું. આ પ્રારંભ કરવા માટે સલામત છે, કંઈપણ ખર્ચ કરે છે, અને તમારા માટે સરળ છે. તમારી operating પરેટિંગ સિસ્ટમના આધારે, બાશ શેલમાં પ્રવેશવું થોડું અલગ હશે. મેક ઓએસ માટે, હું આ સમયે વર્ચુઅલ મશીન ઇન્સ્ટોલ કરવાની ભલામણ કરું છું, કારણ કે તમને વર્ચુઅલ મશીન સાથે સૌથી વધુ સુસંગતતા મળશે. વર્ચ્યુઅલબોક્સ અને પેરાલેલ્સ જેવા વિવિધ પ્રદાતાઓ તમારા માટે વર્ચુઅલ મશીન ચલાવી શકે છે, તેમ છતાં, મશીન પર સીધા ઉબુન્ટુ ઇન્સ્ટોલ કરવું પણ શક્ય છે, જો તમે કોઈ મૂળ વાતાવરણનો ઉપયોગ કરવાનું પસંદ કરો છો, જે ઝડપી, સુવ્યવસ્થિત અનુભવ બનાવવા માટે ભલામણ કરવામાં આવે છે. જો તમે લિનક્સ અથવા વિંડોઝનો ઉપયોગ કરી રહ્યાં છો, જેની હું ભલામણ કરું છું, તો પ્રોજેક્ટ બનાવવો તે ખૂબ સરળ હોવું જોઈએ. તમારું ટર્મિનલ ખોલો, તમે યોગ્ય દેખાશો તે પ્રમાણે કદ બદલવાનું સમાયોજિત કરો અને પગલું 2 ને અનુસરવાનું પ્રારંભ કરો. જો તમે વિંડોઝનો ઉપયોગ કરી રહ્યાં છો, તો કૃપા કરીને પગલું 1 ને અનુસરો.પગલું 1: - ફક્ત વિન્ડોઝ વપરાશકર્તાઓ વિંડોઝમાં, એડમિનિસ્ટ્રેટર તરીકે કમાન્ડ પ્રોમ્પ્ટ ખોલો અને ટાઇપ કરો ડબલ્યુએસએલ –intl
પગલું 2: - અહીં ચાલુ રાખો, અથવા જો તમે વિંડોઝનો ઉપયોગ ન કરી રહ્યા હોવ તો અહીં પગલું 1 છોડો ખુલ્લા ટર્મિનલમાં, (તમારા ઓએસ પર આધાર રાખીને, વિન્ડોઝમાં ઉબુન્ટુ, મ or ક અથવા લિનક્સમાં ટર્મિનલ અથવા સમાન નામ), પ્રોજેક્ટ બનાવીને પ્રારંભ કરો. અમે એમકેડીઆઈઆર આદેશ સાથે આ કરીએ છીએ, જે ડિરેક્ટરી બનાવે છે. જો તમારે તમારા પ્રોજેક્ટને સંગ્રહિત કરવા માટે ડિરેક્ટરી બનાવવાની જરૂર હોય, જેની ભલામણ કરવામાં આવે છે, તો ડિરેક્ટરીમાં બદલવા માટે સીડી આદેશનો ઉપયોગ કરો અને અનેસીડી/પાથ/થી/ડિરેક્ટરી - પાથ એ ફોલ્ડર્સ (ફાઇલો) છે જે તમારી ગંતવ્ય ડિરેક્ટરી પહેલા છે, તમારો ડિફ default લ્ટ પાથ ~ અથવા/ઘર/વપરાશકર્તા નામ છે (જ્યાં વપરાશકર્તા નામ તમારું વપરાશકર્તા નામ છે). ડિફ default લ્ટ ડિરેક્ટરીમાં બદલવા માટે, સીડી અથવા સીડી લખો ~ એમકેડીર ઉદાહરણ - ડિરેક્ટરીના નામથી "ઉદાહરણ" ને બદલો
હવે તમારી પાસે તમારા પ્રોજેક્ટ માટે વર્કિંગ ડિરેક્ટરી છે. જો તમારે કોઈ અલગ મશીન પર સ્વિચ કરવાની જરૂર હોય અથવા તમે લખો તે કોડ જમાવવાની જરૂર હોય તો આ ડિરેક્ટરી સાચવવી એટલી મહત્વપૂર્ણ છે, જેથી તે વેબ માટે તૈયાર છે, અમે આગામી કેટલાક પગલાઓમાં તમારી ડિરેક્ટરીને બેકઅપ લેવા માટે સ્ક્રિપ્ટ બનાવીશું. પરંતુ સ્ક્રિપ્ટ બનાવવા માટે થોડો કોડ લે છે, અને શક્ય તેટલું ઉપયોગી થવા માટે કોડને સ્વચાલિત કરવાની જરૂર છે. તો ચાલો પહેલા સ્ક્રિપ્ટો બનાવવા માટે સ્ક્રિપ્ટ બનાવીએ. ચાલો સ્ક્રિપ્ટ બનાવીને અને તેને એક્ઝેક્યુટેબલ બનાવીને પ્રારંભ કરીએ. અમે આ માટે સુડો, ચ્મોડ અને ટચનો ઉપયોગ કરીશું, અને સ્ક્રિપ્ટને "એસ્ક્રિપ્ટ" કહીશું.સુડો ટચ/યુએસઆર/ડબ્બા/એસ્ક્રિપ્ટ સુડો ચોમોડ એ+એક્સ/યુએસઆર/બિન સુડો નેનો/યુએસઆર/ડબ્બા/એસ્ક્રિપ્ટ
હવે અમે સ્ક્રિપ્ટ બનાવી છે, તેને એક્ઝેક્યુટેબલ બનાવી છે, અને તેને સંપાદિત કરવા માટે તૈયાર છીએ. નેનો એક ટેક્સ્ટ સંપાદક છે જે તમને ક્લિક કર્યા વિના ટેક્સ્ટને સંપાદિત કરવા દેશે, જે ગ્રાફિકલ વપરાશકર્તા ઇન્ટરફેસનો ઉપયોગ કરતા વધુ સરળ છે. નેનો સાથે ફાઇલને સંપાદિત કરવા માટે, નેનો અને પછી ફાઇલનો માર્ગ વાપરો. સ્ક્રિપ્ટ બનાવવા માટે, જે સ્ક્રિપ્ટ બનાવે છે, તે આપણી સ્ક્રિપ્ટને પ્રથમ સ્થાને બનાવવા માટે એકદમ સમાન છે. અમે ઉપરના જેવા જ કોડનો ઉપયોગ કરીશું, સ્ક્રિપ્ટના નામ, "એએસપીઆરપી" ને દલીલ પરિમાણ સાથે બદલીશું, $ 1. આ આપણને સ્ક્રિપ્ટને ફક્ત સુડો એસ્ક્રિપ્ટ ન્યૂઝક્રિપ્ટ લખીને ક call લ કરવા દે છે, તે સમયે અમે તમારી સ્ક્રિપ્ટના નામથી "ન્યૂઝક્રિપ્ટ" ને બદલીને કોઈપણ નવી સ્ક્રિપ્ટ બનાવી શકીએ છીએ. નેનોમાં કોડ જેવો દેખાતો હોવો જોઈએ:સુડો ટચ/યુએસઆર/બિન/$ 1 સુડો ચોમોડ એ+એક્સ/યુએસઆર/બિન/$ 1 સુડો નેનો/યુએસઆર/બિન/$ 1
અને નેનોને બંધ કરવા માટે, અમે કંટ્રોલ કીને પકડી શકીએ છીએ અને એક્સ દબાવો, પછી વાય સૂચવવા માટે અમે ફાઇલને સાચવી રહ્યા છીએ, અને રીટર્ન હિટ કરી શકીએ છીએ. હવે સ્ક્રિપ્ટને સંપાદિત કરવા માટે આ ત્રણ આદેશો ટાઇપ કરવાને બદલે, અમે ફરીથી સ્ક્રિપ્ટને સંપાદિત કરવા માટે સુડો એસ્ક્રિપ્ટ ટાઇપ કરી શકીશું. આ કામ કરે છે! અને કોઈપણ નવી સ્ક્રિપ્ટ તેને શેલમાં બોલાવીને સરળતાથી ચલાવી શકાય છે. ચાલો હવે અમારું કાર્ય સાચવીએ: ચાલો આપણી નવી સ્ક્રિપ્ટને સાચવવા માટે બેકઅપ સ્ક્રિપ્ટ લખીએ અને પછી બેકઅપ સ્ક્રિપ્ટનો બેકઅપ લેતી વખતે, અમારી પ્રોજેક્ટ ડિરેક્ટરીમાં તેનો બેકઅપ લગાવીએ.સુડો
હવે, નેનોમાં:સુડો સીપી/યુએસઆર/બિન/બેકઅપ/પાથ/થી/ડિરેક્ટરી/ સુડો સીપી/યુએસઆર/બિન/એએસટીઆરપી/પાથ/થી/ડિરેક્ટરી/
જ્યાં/પાથ/થી/ડિરેક્ટરી એ તમે એમકેડીઆઈઆર સાથે બનાવેલ પ્રોજેક્ટનો માર્ગ છે. પાછળથી આપણે લૂપ અને સૂચિ સાથે આ જેવા પુનરાવર્તિત પાથોની નકલ કેવી રીતે કરવી તે શીખીશું, જે ઓછો કોડ છે, પરંતુ હવે ચાલો તેને સરળ રાખીએ અને થોડી લાઇનો રાખીએ. આ સ્ક્રિપ્ટ ચલાવવા અને તમારા કોડને બેકઅપ લેવા માટે, નિયંત્રણ+x, y સાથે નેનોમાં ફાઇલને સાચવો અને તમારા શેલમાં નીચે લખોપીઠ
જો તમને આ પુસ્તક વાંચતી વખતે અને શેલમાં અનુસરીને પાસવર્ડ માટે બિલકુલ પૂછવામાં આવે છે, તો કૃપા કરીને તમારો વપરાશકર્તા પાસવર્ડ યોગ્ય રીતે દાખલ કરો, તમારે આદેશ ફરીથી ચલાવવાની જરૂર હોય તે પહેલાં તમારી પાસે ત્રણ પ્રયત્નો થશે. તમે આદેશોને ફરીથી ચલાવવા માટે ઉપર અને નીચે તીરનો ઉપયોગ કરી શકો છો અને તેમને સંપાદિત કરી શકો છો, તમારે કંઈપણ બે વાર ચલાવવાની જરૂર હોય. આદેશ પસંદ કરવા માટે, જમણા, ડાબા તીર સાથે આદેશ સંપાદિત કરતા પહેલા, આદેશ પસંદ કરવા માટે સરળ રીતે ઉપર અને નીચે દબાવો અને કીબોર્ડને કા delete ી નાખો, અને તેને વળતર સાથે ચલાવો.અભિનંદન! તમે એક અદ્ભુત બેકઅપ સ્ક્રિપ્ટ બનાવવાનું વ્યવસ્થાપિત કર્યું છે જે તમારી વર્કિંગ ડિરેક્ટરીમાં બે મહત્વપૂર્ણ શેલ સ્ક્રિપ્ટોનો બેક અપ લે છે. પ્રોજેક્ટ મોટો થતાંની સાથે અમે વસ્તુઓ પછીથી ખસેડી શકીએ છીએ, પરંતુ આ હમણાં માટે કાર્ય કરે છે. ચાલો ક્લાઉડમાં બેકઅપ લેવા આગળ વધીએ, અમે આ માટે ગીથબનો ઉપયોગ કરીશું (જોકે બેકઅપ માટે અન્ય ઘણા જીઆઈટી સોલ્યુશન્સ છે, તે બધા સમાન છે.) ગિટ એક વેરિઝન કંટ્રોલ સ software ફ્ટવેર છે જે તમને તમારા સ software ફ્ટવેરને સર્વર પર બનાવે છે ત્યારે તમને તમારા સ software ફ્ટવેરની સંપૂર્ણ ક cop ાવને ડાઉનલોડ કરવા માટે સક્ષમ બનાવે છે. તમારા સ software ફ્ટવેરને બચાવવા માટે તે મહત્વનું છે, ખાસ કરીને જ્યારે અમે સુરક્ષિત લિનક્સ દાખલાઓ પર સ્થાનાંતરિત કરીએ છીએ કે જ્યારે કોડની એક લાઇન નિષ્ફળ જાય ત્યારે કેટલીકવાર તૂટી જાય છે, જ્યારે તમને લ locked ક આઉટ છોડી દે છે, જો તમને તેનો બેકઅપ ન આવે તો તમારો કોડ બેકઅપ લેશે નહીં, જેને આપણે આવરી લઈશું.
જો તમે આ સમયે ઉબુન્ટુ વર્ચ્યુઅલ મશીનનો ઉપયોગ કરી રહ્યાં નથી, તો હું આ સમયે ઉબુન્ટુ વર્ચ્યુઅલ મશીનનો ઉપયોગ કરું છું કારણ કે કાર્યકારી વેબસાઇટ બનાવવા અને તમારા કમ્પ્યુટર પર deep ંડા શિક્ષણની કામગીરીને પ્રીફોર્મ કરવા માટે જરૂરી બધા પેકેજો ઇન્સ્ટોલ કરતી વખતે તે તમારું જીવન સરળ બનાવશે. અમે નજીકના ભવિષ્યમાં કોડને વેબ સર્વર પર ખસેડીશું, પરંતુ અમે ખાતરી કરવા માંગીએ છીએ કે અમારા વેબ સર્વરની પાછળ સલામતીના ઓછામાં ઓછા થોડા સ્તરો છે જે ફિશિંગ માટે પ્રતિરોધક છે, અને આ કરવા માટે સંખ્યાબંધ લિનક્સ પેકેજોનો ઉપયોગ કરીએ છીએ. જો તમે હજી પણ મેક ઓએસનો ઉપયોગ કરવા માંગતા હો, તો તમારે જરૂરી પેકેજોને online નલાઇન શોધવા અને ઇન્સ્ટોલ કરવા માટે આપનું સ્વાગત છે, પરંતુ આ પુસ્તક અથવા શ્રેણીના દરેક પેકેજ માટે વિકલ્પો નહીં હોઈ શકે.ચાલો આદેશ સુડો એસ્ટ્રિપ્ટ બેકઅપ ચલાવીને બેકઅપ સ્ક્રિપ્ટ સાથે અમારા કાર્યને પ્રતિબદ્ધ કરવા માટે કેટલાક આદેશો ઉમેરીએ.
#… ગિટ એડ -બધા ગિટ કમિટ -એમ "બેકઅપ" ગિટ પુશ -યુ ઓરિજિન માસ્ટર…
ફરી એકવાર, બચાવવા માટે X ને નિયંત્રિત કરો.sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
હવે આપણે આ પ્રોજેક્ટ માટે કેટલાક સમયની ગોઠવણી કરવાની જરૂર છે. કારણ કે તે ટૂંક સમયમાં ગિટ પ્રોજેક્ટ હશે, જ્યારે આપણે દરેક વખતે ગિટ રીપોઝીટરીમાંથી જમાવટ કરીએ ત્યારે દરેક આદેશને ટાઇપ કરવાની જરૂર નથી, પરંતુ જ્યારે આપણે અમારી જમાવટ સ્ક્રિપ્ટો લખીશું ત્યારે અમને આ અટકીશું. શરૂ કરવા માટે, ચાલો ખાતરી કરીએ કે અમે યોગ્ય ડિરેક્ટરીમાં છીએ અને ગિટ રિપોઝિટરી પ્રારંભ કરીએ છીએ અને એસએસએચ કીઓ ઉત્પન્ન કરીએ છીએ.સીડી/પાથ/થી/ડિરેક્ટરી ગિટ દીવો ગિટ શાખા -માસ્ટર keyક-Keygen
અમે એસએસએચ-કીજેન લખ્યા પછી, નવી કી .ssh નામના ફોલ્ડર હેઠળ હોમ ફોલ્ડરમાં સાચવી જોઈએ. તેને ID_RSA.PUB કહેવામાં આવે છે. ચાલો આ કી શોધીએ અને તેની નકલ કરીએ. તે જોવા માટે,sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
સી.ડી.
બિલાડી .ssh/id_rsa.pubતમારા એકાઉન્ટમાં એસએસએચ કી ઉમેરતા પહેલા છેલ્લા આદેશ દ્વારા પરત થયેલ ટેક્સ્ટની ક Copy પિ કરો અને તમારા ગિટ પ્રદાતા (આદર્શ રીતે ગિટહબ) સાથે એકાઉન્ટ બનાવો. એકવાર તમારી પાસે એકાઉન્ટ થઈ જાય, પછી મેનુમાં access ક્સેસ હેઠળ એસએસએચ અને જીપીજી કીઓમાં તમારી એસએસએચ કી ઉમેરતા પહેલા, ઉપરના જમણા મેનૂને ક્લિક કરો અને સેટિંગ્સ દાખલ કરો. એક એસએસએચ કી ઉમેરો પસંદ કરો અને નવી ભંડાર બનાવવા માટે ગિટહબને બચાવવા અને પાછા ફરતા પહેલા તેને પેસ્ટ કરીને અને તેને શીર્ષક આપીને તમારો ઉમેરો. આ અન્ય જીઆઈટી પ્રદાતાઓ માટે સમાન છે, તમારે તેમના દસ્તાવેજો વાંચવાની જરૂર રહેશે. નવા રિપોઝિટરી ગોઠવણીમાં, તમારા ભંડારને વર્ણનાત્મક નામ આપો અને નક્કી કરો કે તમે તેને પ્રકાશિત કરવા માંગો છો કે નહીં, અને હજી સુધી સમાવેશ માટે કોઈ ફાઇલોને ગોઠવવાનું સુનિશ્ચિત કરો. એકવાર રીપોઝીટરી બનાવવામાં આવે, પછી ક્લોનને એસએસએચ URL સાથે ક Copy પિ કરો, અને તેને નીચેના આદેશમાં પેસ્ટ કરો.
ગિટ રિમોટ ઉમેરો ગિટ: //… (તમારું રિમોટ URL)sudo ascript backup
હવે તમે સીડી સાથે તમારા ભંડાર પર પાછા જઈ શકો છો, તમે આથી પરિચિત થશો. બેકઅપ સાથે હવે તમારી બેકઅપ સ્ક્રિપ્ટનો પ્રયાસ કરોમહાન! હવે આપણે ખરેખર કોડિંગ મેળવી શકીએ છીએ. ચાલો હવે જાંગો ઇન્સ્ટોલ કરીએ કે આપણી પાસે બાશ અને ગિટ પર સારી પકડ છે. જાંગો અમને આપમેળે અમારા સ software ફ્ટવેરને બેકઅપ લેવા દેશે, બાશ પણ આ કરી શકે છે પરંતુ જાંગો પાસે સરળ સલામત અમલીકરણ હોવું જોઈએ (તે અક્ષમ કરી શકાય છે અને વધુ સરળતાથી ગોઠવી શકાય છે).
ઉબુન્ટુમાં સ software ફ્ટવેર ઇન્સ્ટોલ કરવા માટે, અમે સુડો એપીટી-ગેટ આદેશનો ઉપયોગ કરીશું. પ્રથમ, ચાલો અમારી પાસે પહેલેથી જ સ software ફ્ટવેરને અપડેટ અને અપગ્રેડ કરીએ. આ સુડો એપીટી-ગેટ અપડેટ અને સુડો એપીટી-ગેટ અપગ્રેડ-વાય સાથે કરી શકાય છે. આગળ, ચાલો પાયથોન અને અમારું વર્ચુઅલ એન્વાયર્નમેન્ટ, અમારા કોડનું ઘર, નીચે આપેલા આદેશ સાથે સ્થાપિત કરીએ: સુડો એપીટી-ગેટ ઇન્સ્ટોલ પાયથોન-ઇઝ-પાયથોન 3 પાયથોન 3-વેનવsudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
ઉબુન્ટુ દાખલામાં સ software ફ્ટવેર ઇન્સ્ટોલની દ્રષ્ટિએ તમારે જાંગો સાથે જવાની જરૂર છે. વિંડોઝ અને લિનક્સ માટે આ એકદમ સીધું હોવું જોઈએ, પરંતુ મ for ક માટે તમે વર્ચ્યુઅલબ box ક્સ અથવા પેરાલેલ્સ ડેસ્કટ .પ જેવા મફત અથવા પેઇડ વર્ચ્યુઅલ વાતાવરણનો ઉપયોગ કરીને તેના પર વર્ચુઅલ મશીન અને લિનક્સ ઇન્સ્ટોલ કરી શકો છો અને ઉબુન્ટુ વાતાવરણ સેટ કરવા માટે ઉપરના પગલાંને ફરીથી બનાવવાનું પસંદ કરી શકો છો. ઉબુન્ટુ આ કિસ્સામાં નિર્ણાયક છે કારણ કે તે વેબસાઇટ્સ ચલાવે છે તે સ software ફ્ટવેર છે અને તે તેમને ઉપરોક્ત તમામ સ software ફ્ટવેરવાળી વેબસાઇટ્સને હોસ્ટ કરવા માટે સક્ષમ કરે છે.ચાલો જાંગો માં ખોદવું.
અમારી ડિરેક્ટરીમાં ફરીથી, સીડી સાથે:backup
પાયથોન -એમ વેન્વ વેન્વ # વર્ચુઅલ વાતાવરણ બનાવે છે જ્યાં કોડ સંગ્રહિત છે
સોર્સ વેવ/બિન/સક્રિય # વર્ચુઅલ પર્યાવરણને સક્રિય કરે છે
પીપ ઇન્સ્ટોલ કરો જાંગો
જાંગો-એડમિન સ્ટાર્ટપ્રોજેક્ટ માયસાઇટ. # જ્યાં માયસાઇટ એ પ્રોજેક્ટ છે જ્યાં હું મારી વર્તમાન ડિરેક્ટરીમાં પ્રારંભ કરું છું.વર્ચુઅલ વાતાવરણ બનાવે છે જ્યાં કોડ સંગ્રહિત છે
વર્ચુઅલ વાતાવરણ સક્રિય કરે છેજ્યાં માયસાઇટ એ પ્રોજેક્ટ છે જ્યાં હું મારી વર્તમાન ડિરેક્ટરીમાં પ્રારંભ કરું છું.
જાંગો ફક્ત અમને પ્રારંભ કરી રહ્યો છે, કારણ કે જાંગો વેબ સર્વરને હોસ્ટ કરી રહ્યો છે અને મૂળભૂત સ્થાનિક વેબસાઇટને આગળ વધારવા અને ચલાવવા માટે અમને જે બધું જરૂરી છે તે કરી રહ્યું છે. હવે જ્યારે આપણે જાંગો ઇન્સ્ટોલ કર્યું છે, ચાલો સેટિંગ્સને થોડું સંપાદિત કરીએ, જેથી અમને જરૂરી છે તે કાર્ય કરવા માટે. પ્રથમ, ચાલો નવી એપ્લિકેશન બનાવીએપાયથોન મેનેજ કરો.પી. સ્ટાર્ટ એપ ફીડ
તમે જોશો કે પ્રથમ એપ્લિકેશનને ફીડ કહેવામાં આવે છે. એપ્લિકેશનને તમને ગમે તે કહેવા જોઈએ, અને અમે નવી એપ્લિકેશનો બનાવીશું, પરંતુ દરેક એપ્લિકેશનનું નામ જ્યારે પણ કોડમાં એપ્લિકેશનનો સંદર્ભ આપવામાં આવે ત્યારે સુસંગત હોવું આવશ્યક છે. નવી એપ્લિકેશન ઉમેરવા માટે, અમે હંમેશાં સેટિંગ્સને સંપાદિત કરીશું. એપ્લિકેશન બનાવેલી અન્ય ડિરેક્ટરીમાં, સ્ટાર્ટપ્રોજેક્ટ, ત્યારબાદ એપ્લિકેશનમાં નામ આપવામાં આવ્યું છે. નેનોનો ઉપયોગ કરીને,નેનો એપ્લિકેશન/સેટિંગ્સ.પી
સેટિંગ્સમાં, ઇન્સ્ટોલ કરેલા_ એપ્સ શોધો અને [] ને 3 લાઇનમાં અલગ કરો. ખાલી કેન્દ્ર લાઇન પર ચાર જગ્યાઓનો ઉપયોગ કરીને, 'ફીડ' અથવા તમારી એપ્લિકેશનનું નામ ઉમેરો. સેટિંગ્સ.પી.નો આ વિભાગ જેવો દેખાતો હોવો જોઈએ:# ઇન્સ્ટોલ_એપ્સ = [
'ફીડ',
]
આપણે ભૂલી જતા પહેલાં, ચાલો પરીક્ષણ કરીએ કે જાંગો કાર્યરત છે. પાયથોન મેનેજ કરો. પી.પી. રનસર્વર 0.0.0.0:8000 આદેશનો ઉપયોગ કરીને, અમે સર્વર ચલાવી શકીએ છીએ અને પછી કમ્પ્યુટર પર વેબ બ્રાઉઝરમાં નેવિગેટ કરી શકીએ છીએ, કોડને HTTP: // લોકલહોસ્ટ: 8000 પર ચલાવી શકીએ છીએ અને એક ઉદાહરણ વેબપેજ જોઈ શકીએ છીએ (તે કાર્ય કરે છે!) કંટ્રોલ સી સાથે સર્વરને છોડી દો, કોઈપણ અન્ય આદેશની જેમ જ.હવે, ચાલો કેટલાક પાયથોન કોડ લખવામાં ખોદવું. જાંગો પાસે ત્રણ મુખ્ય ઘટકો છે, તે બધા કોડ દ્વારા સંપૂર્ણ રીતે ચલાવવામાં આવે છે. ઘટકોને મોડેલ, દૃશ્ય અને નમૂના કહેવામાં આવે છે, અને વેબપેજ વપરાશકર્તાને પહોંચાડાય તે પહેલાં દરેક અનુક્રમે ઉચ્ચ અને નીચલા સ્તરે છે.
મોડેલ એ કોડ છે જે પુન rie પ્રાપ્તિ, સ sort ર્ટ અને રેન્ડરિંગ માટે ડેટાબેઝમાં માહિતી સંગ્રહિત કરે છે.દૃશ્ય નક્કી કરે છે કે મોડેલ કેવી રીતે રેન્ડર, હેરાફેરી અને સંશોધિત કરવામાં આવે છે, લગભગ દરેક દૃશ્ય સીધા મોડેલનો ઉપયોગ કરશે.
નમૂના એ એચટીએમએલ કોડ છે જેમાં કેટલાક વધારાના lls ંટ અને સિસોટીઓ છે જેને ટેમ્પલેટ લેંગ્વેજ કહેવામાં આવે છે. નમૂના તે દૃષ્ટિકોણ દ્વારા પ્રસ્તુત કરવામાં આવે છે જ્યાં તે પાયથોન કોડ અને સંદર્ભથી ભરેલા હોય છે જેમ કે મ models ડેલો અને માહિતી (યુએસયુએલ શબ્દમાળાઓ અને પૂર્ણાંકો) દૃષ્ટિકોણથી.cd /path/to/directory
git init
git branch -m master
ssh-keygen
જાંગો પાસે અન્ય ઘટકો પણ છે, જેમાં શામેલ છે પરંતુ તે મર્યાદિત નથી:સેટિંગ્સ, જે એપ્લિકેશનની જેમ અમે ચર્ચા કરી છે તે ગોઠવે છે.
યુઆરએલ, જે પેટર્ન છે જે વપરાશકર્તા વેબ એપ્લિકેશનના વિશિષ્ટ ભાગોની .ક્સેસ મેળવવા માટે અનુસરે છે.cd ~
cat .ssh/id_rsa.pub
ફોર્મ્સ, જે સર્વર પર મોકલવામાં આવતી માહિતીને કેવી રીતે નિયંત્રિત કરવામાં આવે છે અને ડેટાબેઝ તેમજ વપરાશકર્તાને કેવી રીતે પ્રસ્તુત કરવામાં આવે છે તે નિર્ધારિત કરે છે. આ સર્વર બાજુ પર પ્રોસેસિંગ માહિતીનો પાયો છે, અને કમ્પ્યુટર સ્ટોર્સ, ખાસ કરીને ટેક્સ્ટ શબ્દમાળાઓ, નંબરો અને સાચા/ખોટા બુલિયન (સામાન્ય રીતે ચેકબોક્સ) સ્વીકારી શકે છે.નમૂનાઓ, જે એચટીએમએલ કોડ અને ટેમ્પલેટ ભાષા છે અને પાયથોન અને એચટીએમએલ વચ્ચેના અંતરને દૂર કરે છે, એટલે કે પાયથોન માહિતીને એચટીએમએલ કોડ તરીકે સેવા આપી શકાય છે કે જે કોઈપણ access ક્સેસ કરી શકે છે અને વેબસાઇટને પ્રતિબંધિત with ક્સેસ સાથે સુરક્ષિત કરી શકે છે, જ્યારે પાયથોન કોડને વેબ પર access ક્સેસિબલ બનાવે છે અને રીમોટ ડિવાઇસ પર વિવિધ હેતુઓ માટે ઉપયોગી છે, જેને સર્વરની નજીક ન હોય.
સ્થિર ફાઇલો, જે સામાન્ય રીતે જાવાસ્ક્રિપ્ટ હોય છે અને તે લાઇબ્રેરીઓ છે જે સર્વર સેવા આપે છે અને નમૂના સાથે જોડાયેલી છે.git remote add git://… (your remote URL)
મીડિયા ફાઇલો, જે સર્વર સેવા આપે છે અથવા બાહ્યરૂપે હોસ્ટ કરે છે, અથવા હોસ્ટિંગ માટે બીજા સર્વર (એક ડોલ) પર પોસ્ટ કરવામાં આવે તે પહેલાં સર્વર પર લખાયેલ છે.મિડલવેર, જે કોડના ટુકડાઓ છે જે દરેક દૃશ્યની જેમ જ ચલાવવામાં આવે છે અને તે દૃશ્યમાં "શામેલ" માનવામાં આવે છે.
સંદર્ભ પ્રોસેસરો, જે દરેક દૃષ્ટિકોણના સંદર્ભમાં પ્રક્રિયા કરે છે અને વધારાના સંદર્ભ ઉમેરવા માટે વપરાય છે.પરીક્ષણો, જે માન્ય કરે છે કે વપરાશકર્તા અથવા વિનંતી દૃશ્ય પ્રસ્તુત થાય તે પહેલાં અમુક આવશ્યકતાઓ પસાર કરે છે.
ગ્રાહકો, જે વેબસોકેટ્સ કેવી રીતે હેન્ડલ કરે છે અને સંદેશાવ્યવહારને પ્રતિસાદ આપે છે તે સૂચવે છે.એડમિન, જેનો ઉપયોગ મોડેલોની નોંધણી કરવા માટે થાય છે જેથી તેઓ જાંગો એડમિન પૃષ્ઠની અંદર વિગતવાર ચાલાકી કરી શકાય, જ્યાં ડેટાબેઝને ગ્રાફિકલ ઇન્ટરફેસ દ્વારા સંચાલિત કરી શકાય છે.
સેલરી, જે જાંગો કોડના અસુમેળ કાર્યોના ભાગોને વ્યાખ્યાયિત કરે છે તે તરત જ આગલા કાર્ય અથવા કોડની લાઇન પર આગળ વધતા પહેલા ચાલવાનું શરૂ કરી શકે છે.જાંગો પાસે ઘણા અન્ય ઘટકો હોઈ શકે છે, જેની આપણે અહીં વિગતવાર ચર્ચા કરીશું. જાંગોને વધુ કાર્યાત્મક બનાવવાની ઘણી બધી રીતો છે, વેબસોકેટ્સ ઉમેરવા, જે ઝડપી, સુવ્યવસ્થિત સંદેશાવ્યવહાર ચેનલો, સેલરી છે, જે અસુમેળ કાર્યો ચલાવે છે, અને જાંગોને વિસ્તૃત કરવા માટે સ software ફ્ટવેરના અન્ય ટુકડાઓ, ખાસ કરીને વ્યૂ ફંક્શન્સમાં, જ્યાં મોટાભાગના કોડ ચલાવવામાં આવે છે. જુઓ કાર્યો કી છે કારણ કે તેઓ સામાન્ય રીતે કોડના દરેક ભાગને ઘોષણા કરે છે જે વિશિષ્ટ URL પેટર્ન અથવા સર્વરના વિભાગ માટે વિશિષ્ટ છે.
પ્રથમ, ચાલો દૃશ્ય કાર્યોનું અન્વેષણ કરીએ. જુઓ કાર્યો આયાત સૂચવતા કોડથી શરૂ થાય છે જેનો ઉપયોગ દૃશ્યમાં કરવામાં આવશે, અને નિયમિત ફંક્શન વ્યાખ્યાઓ અથવા વર્ગોનો ઉપયોગ કરીને વ્યાખ્યાયિત કરવામાં આવે છે. સરળ દૃશ્યો ફંક્શન ડેફિનેશન ડેફ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, અને મૂળભૂત નમૂના સાથે HTTPRESPONSE પરત કરો. ચાલો "હેલો વર્લ્ડ" ટેક્સ્ટને પરત કરવા માટે મૂળભૂત દૃષ્ટિકોણની વ્યાખ્યા આપીને પ્રારંભ કરીએ. યાદ રાખો કે જ્યારે પણ તમે ડેફ જેવા નિવેદન પછી કોડ ઉમેરશો, જો, જ્યારે, માટે, વગેરે, તમારે તમારા કાર્ય પર લાગુ કરવા માંગતા હોય તે દરેકની દરેક વ્યાખ્યાઓ માટે 4 જગ્યાઓ ઉમેરવાની જરૂર રહેશે. અમે આ દરેકનો અર્થ ટૂંક સમયમાં મેળવીશું.અમારી સાઇટની ડિરેક્ટરીમાંથી, નેનોનો ઉપયોગ કરીને ફીડ/વ્યૂ.પી.પી. ફાઇલને સંપાદિત કરો અને ફાઇલના અંતમાં નીચેની રેખાઓ ઉમેરો.
jango.http થી આયાત httpresponse ડેફ હેલો (વિનંતી): રીટર્ન HTTPRESPONSE ('હેલો વર્લ્ડ')જાંગોનું એચટીટીપ્રેસ્પોન્સ ટેક્સ્ટ શબ્દમાળા સાથે પ્રતિક્રિયા આપે છે, જે ઉદઘાટન અને બંધ સાથે સૂચવવામાં આવે છે '. દરેક વખતે જ્યારે તમે કોઈ ફંક્શન અથવા વર્ગને વિનંતી અથવા શબ્દમાળા પસાર કરો છો, ત્યારે તમારે કૌંસ (, ખોલવા અને બંધ) નો ઉપયોગ કરવાની જરૂર રહેશે.
અમારું દૃષ્ટિકોણ હજી સુધી જોવાની જરૂર નથી. અલબત્ત, અમે સર્વરને કહ્યું નથી કે જ્યાં દૃશ્ય બરાબર છે, આપણે હજી પણ એક માર્ગ વ્યાખ્યાયિત કરવાની જરૂર છે જેના દ્વારા દૃશ્ય પ્રસ્તુત કરવું જોઈએ. ચાલો એપ્લિકેશન/urls.py માં મૂળભૂત માર્ગની વ્યાખ્યા આપીને પ્રારંભ કરીએ, અને અમે પછીથી પાથ જૂથોમાં પ્રવેશ કરીશું.python -m venv venv # એપ્લિકેશન/urls.py માં, અમે હમણાં જ બનાવેલ દૃષ્ટિકોણની આયાત કર્યા પછી આયાત નિવેદનો પછી એક લાઇન ઉમેરો.
source venv/bin/activate # ફીડ આયાત દૃશ્યોથી ફીડ_વ્યુઝ તરીકે
django-admin startproject mysite . # હવે, ચાલો દૃશ્ય પેટર્ન વ્યાખ્યાયિત કરીએ. વ્યુ પેટર્નમાં ત્રણ ઘટકો હોય છે, પાથ ઘટક, જે સર્વરને કહે છે કે જ્યાં દૃશ્ય સર્વરની અંદર અસ્તિત્વમાં છે (યુઆરએલ પાથ કે જે વપરાશકર્તા વેબપેજમાં પ્રવેશવા માટે નેવિગેશન બારમાં ટાઇપ કરે છે), દૃશ્ય ઘટક જ્યાં દૃશ્ય નિર્દિષ્ટ થયેલ છે, અને દૃશ્ય માટે મૈત્રીપૂર્ણ નામ, ખાસ કરીને તે સ્થાનને બદલીને અથવા તે સ્થાન પર કામ કરવું જરૂરી છે કે નહીં તે માટે તે પેટર્નને પ્રાપ્ત કરવું સરળ છે. આ રીતે વસ્તુઓ કરવા અને લવચીક બનવું તે અર્થપૂર્ણ છે, કારણ કે તમારું કોડબેઝ હંમેશાં બદલાતું વાતાવરણ હશે જેને મૂલ્યવાન અને કામ કરવા માટે સરળ બનવા માટે સુગમતા અને ઇમ્પ્રુવિઝેશનની જરૂર છે. તમારો દૃષ્ટિકોણ કેવો દેખાશે તે અહીં છે, તમે આને URLPatterns = [એપ્લિકેશન/urls.py ના વિભાગમાં ઉમેરી શકો છો. દૃશ્ય પેટર્ન ઉપર વર્ણવેલ ત્રણ ઘટકો અને પાથ નામના ફંક્શન સાથે વ્યાખ્યાયિત થયેલ છે. તમારી યુઆરએલ પેટર્ન એક સૂચિ છે, તેથી ખાતરી કરો કે તેમાં દરેક વસ્તુને અલ્પવિરામથી સમાપ્ત કરો, કારણ કે આ દરેકને અલગ કરે છે. સેટિંગ્સ.પી.માં એપ્લિકેશનની જેમ, દરેક આઇટમ પણ નવી લાઇન પર પણ આગળ વધવા જોઈએ, તે પહેલાં ચાર જગ્યાઓ સાથે. વેબ સર્વરની રુટ ડિરેક્ટરી પર ચાલતા દૃશ્ય બનાવવા માટે, અમે ખાલી શબ્દમાળા કાર્ય સાથે દૃશ્યના પ્રથમ ઘટકને વ્યાખ્યાયિત કરીશું. તમારા urls.py હવે આના જેવું દેખાવું જોઈએ:
ફીડ આયાત દૃશ્યોથી ફીડ_વ્યુઝ તરીકે
urlpattrns = [
પાથ ('', ફીડ_વ્યુ.હેલો, નામ = 'હેલો'),
]આ જાંગો સાથેની વેબસાઇટ બનાવવા માટેનો આધાર છે જે સંપૂર્ણપણે સ્થિર છે. વધુ ગતિશીલ વેબસાઇટ બનાવવા માટે, જ્યાં આપણે છબીઓ, વિડિઓઝ, audio ડિઓ અને વધુ જેવી માહિતીને કેશીંગ શરૂ કરી શકીએ છીએ, આપણે મોડેલોનો ઉપયોગ કરવાની જરૂર પડશે, જે આપણે આગળની શોધ કરીશું. હમણાં માટે, ચાલો અમારો કોડ તપાસો અને સર્વર ચલાવીએ. ભૂલો માટે કોડ તપાસવા માટે, ચલાવો:
પાયથોન મેનેજ.પી ચેકpython manage.py startapp feed
જો ત્યાં કોઈ ભૂલ સંદેશાઓ હોય, તો તમારે તમારી એપ્લિકેશનમાં કરેલા ફેરફારોની કાળજીપૂર્વક સમીક્ષા કરવી જોઈએ અને જોવું જોઈએ કે બહારની અથવા અભાવની જગ્યા, એક વધારાનું પાત્ર, કોઈ પણ ટાઇપો, કોઈપણ આકસ્મિક રીતે કા deleted ી નાખેલ પાત્ર અથવા બીજું કંઈપણ, જેમ કે ઠીક કરવાની જરૂર છે. ભૂલ સંદેશ દ્વારા વાંચવું (જો તમારી પાસે એક છે), તો તમારે લાઇન નંબર સાથે તમે બનાવેલ અથવા સંપાદિત ફાઇલનો માર્ગ જોવો જોઈએ, તેથી તે ફાઇલ અને લાઇનમાં જુઓ અને જુઓ કે તમે ત્યાં કંઈપણ ઠીક કરી શકો છો કે નહીં. જો તમે આ મુદ્દો ઠીક કર્યો છે, તો ઉપરનો આદેશ ફરીથી ચલાવો. જ્યારે તમારું સ software ફ્ટવેર ચલાવવા માટે તૈયાર હોય અને કાર્યરત હોય, ત્યારે તમે આઉટપુટ જોશો "સિસ્ટમ ચેક કોઈ સમસ્યા નથી." હવે તમે જવા માટે તૈયાર છો. સાથે સર્વર ચલાવો:પાયથોન મેનેજ કરો.પી રનસેવર 0.0.0.0:8000
હવે વેબ બ્રાઉઝર ખોલો અને http: // સ્થાનિકહોસ્ટ: 8000 પર નેવિગેટ કરો. તમારે તમારા દૃષ્ટિકોણમાં HTTPResponse કાર્યના કૌંસ અને અવતરણમાં પાછું લખેલું ટેક્સ્ટ જોવું જોઈએ. આ ફક્ત એક મૂળભૂત ઉદાહરણ છે, પરંતુ જો તમે તેને આટલું દૂર બનાવ્યું છે, તો તમે કેવી રીતે લિનક્સ, બેશ, પાયથોન અને જાંગો કાર્ય કરે છે તેની મૂળભૂત બાબતોને સમજો. ચાલો કેટલાક ડેટાબેઝ મોડેલિંગમાં deep ંડાણપૂર્વક ખોદવું, અને માહિતી સંગ્રહિત કરવા માટે પાયથોન વર્ગની શક્તિનું અન્વેષણ કરીએ. તે પછી, અમે જાવાસ્ક્રિપ્ટ અને મશીન લર્નિંગનો ઉપયોગ કરીને અમારી સાઇટને સંપૂર્ણ રીતે દર્શાવ્યા, લવચીક અને સુરક્ષિત બનાવતા પહેલા અમે એચટીએમએલ અને સીએસએસ પર પકડ મેળવવાનું શરૂ કરીશું.nano app/settings.py
વર્ગો તમારી એપ્લિકેશનના મોડેલોમાં સંગ્રહિત છે. નેનોનો ઉપયોગ કરીને, એપ્લિકેશન/મોડેલોને સંપાદિત કરો.પી. અને એક નવો વર્ગ ઉમેરો. વર્ગ વર્ગની વ્યાખ્યા સાથે વ્યાખ્યાયિત કરવામાં આવે છે અને તે એક સુપરક્લાસ પસાર કરવામાં આવે છે જે તે આ કિસ્સામાં મોડેલો.મોડેલમાંથી વારસામાં મેળવે છે. વર્ગનું નામ વર્ગની વ્યાખ્યા પછી આવે છે, અને વર્ગની વ્યાખ્યા પછી: (કોલોન) નો ઉપયોગ થાય છે, તે પહેલાં વર્ગ સાથે જોડાયેલા લક્ષણો અને કાર્ય વ્યાખ્યાઓ નીચે સૂચવવામાં આવે છે. અમારા વર્ગને તે પુન rie પ્રાપ્ત કરવા અને તેને અનન્ય રાખવા માટે આપણે ઉપયોગ કરી શકીએ છીએ તે ID ની જરૂર છે, અને તેને કેટલીક માહિતી સંગ્રહિત કરવા માટે ટેક્સ્ટ ફીલ્ડની પણ જરૂર છે. પાછળથી આપણે ટાઇમસ્ટેમ્પ, ફાઇલો, બુલિયન (સાચી અથવા ખોટી વ્યાખ્યાઓ ઉમેરી શકીએ છીએ જે અમારા કોડને મોડેલ સાથે શું કરવું તે વિશે નિર્ણય લેવામાં મદદ કરી શકે છે, અને તેનો ઉપયોગ સ sort ર્ટ કરવા માટે કરી શકાય છે), મોડેલને સર્વરમાં લ logged ગ કરેલા વપરાશકર્તા સાથે બાંધવા માટે એક દાખલો, અને વધુ. ચાલો નીચેનો કોડ અનપ ack ક કરીએ:જાંગો.ડીબી આયાત મોડેલોથી # આયાત જેનો ઉપયોગ અમારા વર્ગને વ્યાખ્યાયિત કરવા માટે થાય છે અને તે લક્ષણો છે વર્ગ પોસ્ટ (મોડેલો.મોડેલ): # અમારા વર્ગની વ્યાખ્યા ID = models.autofield (પ્રાથમિક_કી = ટ્રુ) # અમારા મોડેલની આઈડી, એક આપમેળે જનરેટ કરેલી કી જે અમને મોડેલની ક્વેરી કરવા દેશે, તેને અનન્ય રાખશે, અને જ્યારે મોડેલને બનાવ્યા પછી આપણે મોડેલ સાથે વાતચીત કરવાની જરૂર હોય ત્યારે ઉપયોગી છે. ટેક્સ્ટ = મોડલ્સ.ટેક્સ્ટફિલ્ડ (ડિફ default લ્ટ = '') # અમારા વર્ગ સ્ટોર્સ, આ કિસ્સામાં, કેટલાક ટેક્સ્ટ, ખાલી શબ્દમાળા પર ડિફોલ્ટ.
આયાત જેનો ઉપયોગ આપણા વર્ગને વ્યાખ્યાયિત કરવા માટે થાય છે અને તે લક્ષણો છેINSTALLED_APPS = [
'feed',
]
આપણા વર્ગની વ્યાખ્યાઅમારા મોડેલની આઈડી, એક આપમેળે જનરેટ કરેલી કી જે અમને મોડેલની ક્વેરી કરવા દેશે, તેને અનન્ય રાખશે, અને જ્યારે મોડેલ બનાવ્યા પછી આપણે મોડેલ સાથે વાતચીત કરવાની જરૂર હોય ત્યારે ઉપયોગી છે.
અમારા વર્ગ સ્ટોર્સ, આ કિસ્સામાં, કેટલાક ટેક્સ્ટ, ખાલી શબ્દમાળા પર ડિફ default લ્ટ.ફાઇલને બંધ કરો અને સાચવો, જેમ કે અમે સમાપ્ત કરવા પહેલાં કર્યું હતું.
ત્યાં ઘણા અન્ય ક્ષેત્રો અને વિકલ્પો છે જ્યારે આપણે આ વર્ગને અપડેટ કરીએ છીએ ત્યારે અમે અન્વેષણ કરીશું, જેમ કે અમારી એપ્લિકેશન વિકસિત થાય છે, પરંતુ કેટલાક ટેક્સ્ટ પોસ્ટ કરવા માટે એપ્લિકેશન બનાવવાની આ મૂળભૂત આવશ્યકતાઓ છે. જો કે, આ મોડેલ એકલા કામ કરશે નહીં. પહેલાં વર્ણવ્યા મુજબ, આ મોડેલને કાર્ય કરવા માટે અમને કસ્ટમ વ્યૂ અને કસ્ટમ URL પેટર્નની જરૂર પડશે, અને અમને નમૂનાની સાથે એક ફોર્મની પણ જરૂર પડશે. ચાલો પહેલા ફોર્મનું અન્વેષણ કરીએ.ફોર્મ વ્યાખ્યાયિત કરવા માટે, નેનો સાથે એપ્લિકેશન/ફોર્મ્સ.પી.પી.ને સંપાદિત કરો અને નીચેની રેખાઓ ઉમેરો. અમને બે આયાત, અમારા ફોર્મ્સ વર્ગ, તેમજ અમે બનાવેલ મોડેલ (ફીડ.મોડલ્સ.પોસ્ટ), મોડેલની સમાન વર્ગ વ્યાખ્યા અને મેટા નામના સબક્લાસ સાથે ક્ષેત્રની જરૂર પડશે જે ફોર્મ સાથે સંપર્ક કરે છે તે મોડેલને વ્યાખ્યાયિત કરશે. ફોર્મમાં પ્રારંભિક કાર્ય પણ હોઈ શકે છે જે વિનંતી, મોડેલ અથવા અન્યથાની માહિતીના આધારે તેને સેટ કરે છે, અમે આ પછીથી અન્વેષણ કરીશું.
મોડેલ ફોર્મ્સ એટલા ઉપયોગી છે કારણ કે તેઓ એક મોડેલ બનાવી શકે છે અથવા મોડેલને સંપાદિત કરી શકે છે, તેથી અમે તેનો ઉપયોગ બંને માટે કરીશું. ચાલો નીચે ફોર્મ્સ.પી.માં વ્યાખ્યાયિત કરીએ.જાંગો આયાત સ્વરૂપોથી ફીડ.ઓડલ્સ આયાત પોસ્ટથી વર્ગ પોસ્ટફોર્મ (ફોર્મ્સ.ઓડફોર્મ): ટેક્સ્ટ = ફોર્મ્સ.ચફિલ્ડ (વિજેટ = ફોર્મ્સ.ટેક્સ્ટેરિયા) વર્ગ મેટા: મોડેલ પોસ્ટ ક્ષેત્રો = ('ટેક્સ્ટ',)
આ એક સ્વરૂપ અને મોડેલ જેવું લાગે છે તેની મૂળભૂત બાબતો છે. આ મોડેલ ફોર્મનો ઉપયોગ પોસ્ટને ઇન્સ્ટન્ટ કરવા અથવા સંપાદિત કરવા માટે થઈ શકે છે, તેમાં સમાવે છે તે ટેક્સ્ટને બદલવું. અમે આ ફોર્મને આગળના દૃશ્યમાં એકીકૃત કરવા માટે જોશું. પ્રથમ, ચાલો સ્થળાંતર કરીએ અને ડેટાબેઝને સ્થાનાંતરિત કરીએ જેથી અમારો કોડ જ્યારે ચાલે ત્યારે તે મોડેલ સાથે સંપર્ક કરી શકે. આ કરવા માટે, નીચેના આદેશો ચલાવો:પાયથોન મેનેજ કરો.પી.કે. પાયથોન મેનેજ કરો.પી.
આને અમલમાં મૂકવામાં એક મિનિટનો સમય લાગશે, પરંતુ એકવાર તે થઈ જાય, તે તમને સ software ફ્ટવેરમાં મ model ડલ, અથવા બીજે ક્યાંય પણ મોડેલને access ક્સેસ કરવાની મંજૂરી આપશે. ચાલો એક દૃશ્ય બનાવીને ચાલુ રાખીએ જ્યાં આપણે અમારા મોડેલને જોઈ શકીએ. ફીડ/વ્યૂ.પી.ને સંપાદિત કરો અને નીચેનો કોડ ઉમેરો, જેમ નોંધ્યું છે. તમારે # સાઇન પછી કંઈપણ ઉમેરવાની જરૂર રહેશે નહીં, તે કોડ એ ટિપ્પણીઓ છે જેનો ઉપયોગ કોડ વિશેની માહિતી સૂચવવા માટે થાય છે. અમે અમારા મ model ડેલને દૃશ્યોમાં આયાત કરીને, અને તેને કોઈ સંદર્ભમાં ઉમેરીને પ્રારંભ કરીશું જ્યાં અમે તેને ડિસ્પ્લે માટેની સૂચિ તરીકે નમૂનામાં આપી શકીએ. આગળ, અમે એક ટેમ્પલેટ ઉમેરીશું જ્યાં અમે મોડેલના આધારે નવું object બ્જેક્ટ બનાવવા અને તેને સર્વર પર પોસ્ટ કરવા માટે ફોર્મ અને મોડેલને બટન સાથે રેન્ડર કરી શકીએ છીએ. આ જટિલ લાગે છે, તેથી ચાલો તેને પગલું દ્વારા પગલું લઈએ. આપણે દૃશ્ય સમાપ્ત કરતા પહેલા, ચાલો એક ટેમ્પલેટ બનાવીએ જે ફક્ત મોડેલને રેન્ડર કરે છે અને ખાતરી કરો કે આપણે શેલમાં નવી પોસ્ટ બનાવીને તેને જોઈ શકીએ છીએ. તે દૃશ્ય કેવી રીતે જોવું જોઈએ તે અહીં છે:ફીડ.ઓડલ્સ આયાત પોસ્ટથી jango.shortcuts આયાત રેન્ડરથી, રીડાયરેક્ટ jango.urls માંથી આયાત verse લટું ડેફ ફીડ (વિનંતી): પોસ્ટ્સ = post.objects.all () # ડેટાબેઝમાંની બધી પોસ્ટ્સને ક્વેરી કરો રીટર્ન રેન્ડર (વિનંતી, 'ફીડ/ફીડ.એચટીએમએલ', { 'પોસ્ટ્સ': પોસ્ટ્સ, }))
ડેટાબેઝમાં અત્યાર સુધીની બધી પોસ્ટ્સને ક્વેરી કરોજ્યાં સુધી આપણે તળિયે પહોંચીએ ત્યાં સુધી આ બધું ખૂબ સરળ લાગે છે. રેન્ડર કરો, અગાઉના ઉદાહરણની જેમ એચટીટીપી પ્રતિસાદને બદલે ફંક્શન દ્વારા પરત કરાયેલ મૂલ્ય, હંમેશાં તેના પ્રથમ ઇનપુટ તરીકે વિનંતી લે છે, સંદર્ભ સ્વીકારે છે (આ કિસ્સામાં ડેટાબેઝમાંની પોસ્ટ્સ), જે હવે નમૂનામાં રેન્ડર કરી શકાય છે, અને કાર્યમાં નિર્ધારિત નમૂનાને આપે છે. આ ટેમ્પલેટ એચટીએમએલ દસ્તાવેજ બનશે, જેમાં થોડી ભાષા જિંજા 2 નામની ભાષા છે, જે પાયથોન માહિતીને એચટીએમએલમાં રજૂ કરે છે.
નમૂનાઓ બનાવવાનું શરૂ કરવા માટે, ફીડમાં બે ડિરેક્ટરીઓ બનાવો.mkdir ફીડ/નમૂનાઓ એમકેડીઆઈઆર ફીડ/નમૂનાઓ/ફીડ
આગળ, ઉપરની ડિરેક્ટરીમાં એક નમૂનાને સંપાદિત કરો, ફીડ/નમૂનાઓ/ફીડ કરો અને આ ઉદાહરણ માટે કોડ ઉમેરો. ચાલો આ ઉદાહરણ માટે નમૂના જોઈએ.ખવડાવવું Post પોસ્ટ્સમાં પોસ્ટ માટે % %} . {post.text}} { % એન્ડફોર %}
આ એક ખૂબ જ સરળ નમૂના છે. તે એચટીએમએલ ટ s ગ્સ, દસ્તાવેજ પ્રકારનો ટ tag ગ, દંતકથાના શીર્ષક સાથેનો બોડી ટ tag ગ, એક બ્રેક ટ tag ગ જે સ્ક્રીન પર એક નાનો લાઇન ઉમેરશે, અને લૂપ માટે વ્યાખ્યાયિત કરે છે જે દરેક પોસ્ટને નમૂનાના ફકરા તરીકે પોસ્ટ્સની સૂચિમાં રેન્ડર કરે છે. આ બધું તે પોસ્ટ્સ રેન્ડર કરવા માટે લે છે, પરંતુ ડેટાબેઝમાં હજી સુધી કોઈ નથી. ચાલો શેલથી કેટલાક બનાવીએ. અમે manage.py સાથે શેલ ચલાવી શકીએ છીએપાયથોન મેનેજ.પી શેલ
હવે, ચાલો અમારું પોસ્ટ મોડેલ આયાત કરીએફીડ.ઓડલ્સ આયાત પોસ્ટથી
આગળ, અમે શબ્દમાળા સાથે એક સરળ પોસ્ટ બનાવીશું અને શેલમાંથી બહાર નીકળીશું. શબ્દમાળા કંઈપણ હોઈ શકે છે, ત્યાં સુધી તે માન્ય ટેક્સ્ટ છે.Post.objects.create (ટેક્સ્ટ = 'હેલો વર્લ્ડ') બહાર નીકળો
છેલ્લે, આપણે અમારા ફીડમાં URL પેટર્ન ઉમેરવાની જરૂર રહેશે. કારણ કે અમારી ફીડ એપ્લિકેશન બહુવિધ URL નો ઉપયોગ કરશે અને અમે ફાઇલ કદને નાનું રાખવા માંગીએ છીએ, ચાલો અમારી ફીડ એપ્લિકેશનમાં સ્થાનિક urls.py બનાવીએ જે આના જેવું લાગે છે:જાંગો.અર્લ્સ આયાત પાથથી થી. આયાત દૃશ્યો urlpattrns = [ પાથ ('', દૃશ્યો. ફીડ, નામ = 'ફીડ'), ]
આપણે બેઝ એપ્લિકેશનમાં urls.py ને સંપાદિત કરવાની પણ જરૂર રહેશે, અમે તેને ક call લ કરવાનું નક્કી કર્યું, અમે બનાવેલી આ પહેલી ડિરેક્ટરી હતી. એપ્લિકેશન/એપ્લિકેશનને સંપાદિત કરો અને URL દાખલામાં નીચેના ઉમેરોjango.urls આયાતથી ટોચ પર # શામેલ છે urlpattrns = [ #... પાછલો કોડ અહીં પાથ ('ફીડ/', શામેલ કરો (('ફીડ.અર્લ્સ'), નેમસ્પેસ = 'ફીડ'),), ]
ટોચ પર... અહીંનો અગાઉનો કોડ
હવે, જ્યારે આપણે પાયથોન મેનેજ કરો.પી રનસર્વર સાથે સર્વર ચલાવીએ છીએ, ત્યારે અમે બનાવેલું પૃષ્ઠ જોશું કારણ કે ડેટાબેઝમાં આઇટમ્સની સાથે અમારી પાસે મોડેલ, વ્યૂ અને ટેમ્પલેટ તેમજ યુઆરએલ પેટર્ન છે. આગળ, ચાલો આપણે બનાવેલું ફોર્મ લાગુ કરીએ અને અમારી પોતાની પોસ્ટ્સ બનાવવાનું શરૂ કરીએ. પરંતુ આપણે વધારે કોડ લખતા પહેલા, ચાલો આપણે અગાઉ લખેલી સ્ક્રિપ્ટનો ઉપયોગ કરીને બેકઅપ કરીએ, બેકઅપ. આ સ્ક્રિપ્ટને શેલમાં ચલાવો, થોડી ક્ષણો રાહ જુઓ, અને બધા કોડને આપણા ગિટ રીપોઝીટરી સુધી સમર્થન આપવામાં આવશે.પીઠ
ફોર્મનો અમલ કરવો પ્રમાણમાં સરળ છે. અમે અમારું ફોર્મ આયાત કરીશું, દૃશ્યમાં પોસ્ટ વિનંતી હેન્ડલર ઉમેરીશું, અને તે જ દૃષ્ટિકોણ પર રીડાયરેક્ટ કરતા પહેલા ડેટાબેઝમાં પોસ્ટને સાચવીશું. અમે પહેલાથી આયાત કરેલા રીડાયરેક્ટ ફંક્શનનો ઉપયોગ કરી શકીએ છીએ, અને દૃશ્ય પેટર્ન માટે URL મેળવવા માટે રિવર્સ નામનું બીજું ફંક્શન. અમે આને 'ફીડ: ફીડ' શબ્દમાળાથી ક્વેરી કરીશું કારણ કે સમાવિષ્ટ પેટર્નનું નામ ફીડ છે, અને દૃશ્યને ફીડ પણ કહેવામાં આવે છે.ફીડ.ફોર્મ્સથી આયાત પોસ્ટફોર્મ ડેફ ફીડ (વિનંતી): પોસ્ટ્સ = post.objects.all () # ડેટાબેઝમાંની બધી પોસ્ટ્સને ક્વેરી કરો જો વિનંતી.મેથોડ == 'પોસ્ટ': # પોસ્ટ વિનંતીને હેન્ડલ કરો ફોર્મ = પોસ્ટફોર્મ (વિનંતી.પોસ્ટ) # ફોર્મનો દાખલો બનાવો અને ડેટાને સાચવો જો form.is_valid (): # ફોર્મ માન્ય કરો ફોર્મ.સેવ () # નવું object બ્જેક્ટ સાચવો રીટર્ન રીડાયરેક્ટ (રિવર્સ ('ફીડ: ફીડ')) # GET વિનંતી સાથે સમાન URL પર રીડાયરેક્ટ કરો રીટર્ન રેન્ડર (વિનંતી, 'ફીડ/ફીડ.એચટીએમએલ', { 'ફોર્મ': પોસ્ટફોર્મ (), # ફોર્મ સંદર્ભમાં પસાર કરવાની ખાતરી કરો જેથી અમે તેને રેન્ડર કરી શકીએ. 'પોસ્ટ્સ': પોસ્ટ્સ, }))
ડેટાબેઝમાં અત્યાર સુધીની બધી પોસ્ટ્સને ક્વેરી કરોપોસ્ટ વિનંતીને હેન્ડલ કરો
ફોર્મનો દાખલો બનાવો અને ડેટાને સાચવોફોર્મ માન્ય
નવી object બ્જેક્ટ સાચવોGET વિનંતી સાથે સમાન URL પર રીડાયરેક્ટ કરો
સંદર્ભમાં ફોર્મ પસાર કરવાની ખાતરી કરો જેથી અમે તેને રેન્ડર કરી શકીએ.એચટીએમએલમાં ટ tag ગ કરો અને સબમિટ બટન સાથે એચટીએમએલ નમૂનામાં ફોર્મ રેન્ડર કરવું. અમને સીએસઆરએફ ટોકનની પણ જરૂર પડશે, એક ટોકન જે બાહ્ય સાઇટ્સને પ્રથમ પૃષ્ઠને લોડ કર્યા વિના ફોર્મમાં પોસ્ટ કરવાથી અટકાવે છે.
ખવડાવવું { % csrf_token %} {{ફોર્મ}} નવી જગ્યા Post પોસ્ટ્સમાં પોસ્ટ માટે % %} . {post.text}} { % એન્ડફોર %}from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
ચાલો આ તોડીએ. ત્યાં એક નવો ફોર્મ વર્ગ, એક ટોકન, ફોર્મ પોતે અને સબમિટ બટન છે. ખૂબ સરળ, પરંતુ જ્યારે આપણે તેના પર એક નજર કરીએ, ત્યારે આપણે તેને વધુ સારું દેખાવા માંગીએ છીએ. તે કાર્ય કરે છે, અમે ફોર્મ સાથે નવી પોસ્ટ્સ પોસ્ટ કરી શકીએ છીએ અને હવે તે ડેટાબેઝમાં સાચવવામાં આવ્યા છે. અહીં કેટલીક વસ્તુઓ ચાલી રહી છે. ફોર્મ માટે ટોકન રેન્ડર કરવા માટે, દસ્તાવેજ એક એચટીએમએલ દસ્તાવેજ છે તે જાહેર કરવા માટે અમે એચટીએમએલ ટ s ગ્સનો ઉપયોગ કરીએ છીએ, અમે ટ {ક ટ tag ગ ({ %… %}) નો ઉપયોગ કરીએ છીએ. અમારી પાસે બ્લોક ટ s ગ્સ અને ટેમ્પલેટ ટ tag ગનો ઉપયોગ કરીને ટેક્સ્ટને રેન્ડર કરવા માટે લૂપ પણ છે. બ્લોક ટ s ગ્સ ખરેખર મહત્વપૂર્ણ છે કારણ કે અમે તે નિર્ધારિત કરી શકીએ છીએ કે નમૂનાના વિભાગો તેમની સાથે કેવી રીતે પ્રસ્તુત થાય છે, અને નમૂના ટ s ગ્સ એ છે કે આપણે આપણા કોડમાં ચલો કેવી રીતે મૂકીએ છીએ.હવે આપણે અમારી એપ્લિકેશનને વધુ સારી બનાવવાની જરૂર છે, કારણ કે હવે તે ખરેખર મૂળભૂત લાગે છે. અમે સીએસએસનો ઉપયોગ કરીને, ઇનલાઇન, અથવા દસ્તાવેજમાંના દરેક object બ્જેક્ટ સાથે જોડાયેલા વર્ગોમાં આ કરી શકીએ છીએ. સીએસએસ ખરેખર સરસ છે કારણ કે તે પૃષ્ઠ પરની દરેક વસ્તુને કહે છે કે તે કેવી દેખાય છે, અને તેને ખરેખર સારું દેખાશે. ત્યાં કેટલીક લાઇબ્રેરીઓ છે જે આ કરી શકે છે, પરંતુ મારી વ્યક્તિગત પર જાઓ બુટસ્ટ્રેપ છે.
getbootstrap.com/એમકેડીઆઈઆર નમૂનાઓ સાથેના નમૂનાઓ નામની નવી ડિરેક્ટરી બનાવો, અને પછી નમૂનાઓ/બેઝ. Html સંપાદિત કરો.
તે આના જેવું દેખાવું જોઈએ:{ % બ્લોક બોડી %} { % એન્ડબ્લોક %}
સીએસએસ અને જાવાસ્ક્રિપ્ટ, .css અને .js ફાઇલોની નકલ કરવાની ખાતરી કરો, કારણ કે ભવિષ્યમાં અમારી સાઇટને વધુ કાર્યરત બનાવવા માટે અમને જાવાસ્ક્રિપ્ટની જરૂર પડશે.from feed import views as feed_views
હવે, ચાલો બાશ શેલ પર પાછા આવીએ અને ઝડપી આદેશ ચલાવીએ. યાદ રાખો, જો તમારે ક્યારેય વર્ચુઅલ વાતાવરણને access ક્સેસ કરવાની જરૂર હોય, તો સ્રોત વેન્વ/બિન/સક્રિય કરો. આ તમને પાયથોન પેકેજોને સ્થાનિક રીતે એવી રીતે સ્થાપિત કરવા દેશે જે જાંગો તેમને access ક્સેસ કરવા દે. જાંગો બુટસ્ટ્રેપ વર્ગો દ્વારા પેદા કરાયેલા અમારા ફોર્મ્સ આપવા માટે, અમે ક્રિસ્પી ફોર્મ્સ નામના પાયથોન પેકેજનો ઉપયોગ કરીશું. અમે આને નીચેના આદેશથી ડાઉનલોડ કરી શકીએ છીએપીપ ઇન્સ્ટોલ કરો જાંગો-ક્રિસ્ટી-ફોર્મ્સ
એકવાર આ ઇન્સ્ટોલ થઈ જાય, પછી તેને સેટિંગ્સ.પી.from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
ઇન્સ્ટોલ_એપ્સ = [
#… પાછલો કોડ અહીં
'ક્રિસ્પી_ફોર્મ્સ',
]… પાછલો કોડ અહીં
હવે, અમારા ફીડ નમૂનામાં પાછા, અમે કેટલીક વસ્તુઓ દૂર કરી શકીએ છીએ. ચાલો દસ્તાવેજની શરૂઆત અને અંતને દૂર કરીએ અને તેને અમારા બેઝ નમૂનામાંથી વારસો સાથે બદલીએ, વિસ્તૃત અને બ્લોક વ્યાખ્યાનો ઉપયોગ કરીને. ઉપરાંત, અમે લોડ સાથે ટેમ્પલેટ ફિલ્ટર આયાત અને ફોર્મમાં નમૂના ફિલ્ટર ઉમેરીશું. છેલ્લે, ચાલો ફોર્મ પરના બટનમાં બુટસ્ટ્રેપ વર્ગ ઉમેરીએ જેથી તેને બટન જેવું લાગે. તે આના જેવું હોવું જોઈએ:python manage.py check
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે
{ % બ્લોક બોડી %}
{ % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %}
{ % csrf_token %}
{{ફોર્મ | ક્રિસ્પી}}
નવી જગ્યા
Post પોસ્ટ્સમાં પોસ્ટ માટે % %}
. {post.text}}
{ % એન્ડફોર %}
{ % એન્ડબ્લોક %}સુંદર! તે પહેલેથી જ થોડો કોડ છે. આગળ, આપણે તેનું પરીક્ષણ કરવું જોઈએ અને ખાતરી કરવી જોઈએ કે આપણે જોઈ શકીએ કે બધું સરસ લાગે છે, અને ખાતરી કરો કે બધું બરાબર કાર્યરત છે. અગાઉના સૂચનો મુજબ સર્વર ચલાવો અને ખાતરી કરો કે સાઇટ બરાબર દેખાય છે અને કાર્ય કરે છે. મહાન કામ! તમે આગલા પગલા પર આગળ વધવા માટે તૈયાર છો, જેમાં અમે સમાન URL, ફોર્મ્સ, દૃશ્યો અને નમૂનાઓનો ઉપયોગ કરીને વપરાશકર્તા લ login ગિન વિધેય ઉમેરીશું. બેઝ ટેમ્પલેટ મહત્વપૂર્ણ છે, અને અમે તેને સુધારવાનું અને જરૂરિયાત મુજબ ફેરફારો કરવાનું ચાલુ રાખીશું, પરંતુ હવે ચાલો વપરાશકર્તાઓને વપરાશકર્તા નામ અને પાસકોડ સાથે લ log ગ ઇન કરવા માટે સક્ષમ કરીને, અને આખરે વધુ મહત્વપૂર્ણ માહિતી કે જે તમારી એપ્લિકેશનને સુરક્ષિત રાખવામાં મદદ કરશે અને તમારા પોતાના એકાઉન્ટને ફક્ત તમારા દ્વારા સુલભ રાખવામાં મદદ કરશે.
આ કરવા માટે, અમારે જાંગોમાં બિલ્ટ યુઝર મોડેલનો ઉપયોગ કરવાની જરૂર પડશે. વપરાશકર્તા મોડેલ ડેટાબેઝ મોડેલ છે, જેમ કે અમારી પોસ્ટ, જે વેબસાઇટમાં વપરાશકર્તાને લ log ગ કરવા માટે રેન્ડર કરી શકાય છે. ભવિષ્યમાં, અમે સાઇટને ઇન્ટરનેટ પર જમાવટ પહેલાં, અમે આ મોડેલને તેના માટે આભારી અન્ય મોડેલો સાથે લંબાવીશું, અને ફિશિંગ માટે પ્રતિરોધક લ login ગિન માટે વધારાના સુરક્ષા પગલાં બનાવીશું. અમે જાંગો પ્રદાન કરેલા લ login ગિન ફોર્મ્સમાં કેટલાક બિલ્ટનો ઉપયોગ કરીને પ્રારંભ કરીશું. પ્રથમ, ચાલો એક નવી એપ્લિકેશન બનાવીએ જેનો ઉપયોગ આપણે મૂળભૂત લ login ગિન પૃષ્ઠ માટે નમૂનાઓ અને દૃશ્યો રેન્ડર કરવા માટે કરીશું. અમે એપ્લિકેશનને સુરક્ષિત કરવા માટે સતત લ login ગિન પડકારોનું પ્રતિનિધિત્વ કરવા માટે અન્ય એપ્લિકેશનો પણ બનાવીશું, જેમાં પિનકોડ, ચહેરાના માન્યતા, ક્ષેત્ર સંદેશાવ્યવહારની નજીક, બાહ્ય ઉપકરણો, મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન અને ફિંગરપ્રિન્ટ માન્યતા શામેલ છે.python manage.py runserver 0.0.0.0:8000
અમે પહેલેથી જ એપ્લિકેશન શરૂ કરવાની વાત કરી છે. અમારી ડિરેક્ટરીમાંથી, વર્ચુઅલ વાતાવરણની અંદર, મેનેજ કરો. આ દલીલોપાયથોન મેનેજ કરો.પી. સ્ટાર્ટ એપ વપરાશકર્તાઓ
હવે, અમારી પાસે નવી એપ્લિકેશન માટે ડિરેક્ટરી હોવી જોઈએ. ચાલો તે ડિરેક્ટરીમાં એક દૃશ્ય બનાવીને પ્રારંભ કરીએ જે વપરાશકર્તા લ login ગિનને અનુરૂપ છે. જાંગોએ વપરાશકર્તા લ login ગિન માટેના દૃષ્ટિકોણમાં નિર્માણ કર્યું છે, પરંતુ આ આપણા માટે યોગ્ય રહેશે નહીં કારણ કે આપણને કસ્ટમ વ્યૂની જરૂર છે, જે પ્રાધાન્ય કોઈ વ્યાખ્યા સાથે કરવામાં આવે છે.આ દૃષ્ટિકોણમાં, અમે પોસ્ટ વિનંતીની તપાસ કરીને, પાસ વિનંતી પાસ કરીને પ્રારંભ કરીશું.
વપરાશકર્તાઓ/વ્યૂ.પી.માં, નીચેનો કોડ ઉમેરોfrom django.db import models # jango.shortcuts આયાત રેન્ડરથી, રીડાયરેક્ટ
jango.urls માંથી આયાત verse લટું
jango.contrib.auth.forms થી આયાત ઓથેન્ટિકેશનફોર્મ, સેટપાસવર્ડફોર્મથી
jango.contrib.auth આયાત અધિકૃત, લોગઆઉટથી
jango.contrib.auth આયાત લ login ગિનથી Auth_login
jango.contrib દ્વારા આયાત સંદેશાઓથી
ડેફ લ login ગિન (વિનંતી):
જો વિનંતી.મેથોડ == "પોસ્ટ":
વપરાશકર્તા નામ = વિનંતી.પોસ્ટ ['વપરાશકર્તા નામ'] # પોસ્ટ વિનંતીમાંથી વપરાશકર્તા નામ અને પાસવર્ડ મેળવો
પાસવર્ડ = વિનંતી.પોસ્ટ ['પાસવર્ડ'] # વપરાશકર્તાને પ્રમાણિત કરો
વપરાશકર્તા = પ્રમાણિત (વપરાશકર્તા નામ = વપરાશકર્તા નામ, પાસવર્ડ = પાસવર્ડ)
જો વપરાશકર્તા:
auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband')
સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમારો પાસવર્ડ સ્વીકાર્યો હતો. કૃપા કરીને ચાલુ રાખો')
રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('ફીડ: ફીડ'))
બીજું: સંદેશાઓ.
રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/લ login ગિન.
class Post(models.Model): # પોસ્ટ વિનંતીમાંથી વપરાશકર્તા નામ અને પાસવર્ડ મેળવો
id = models.AutoField(primary_key=True) # વપરાશકર્તાને પ્રમાણિત કરો
text = models.TextField(default='') # મૂળભૂત લ login ગિન દૃશ્ય માટે તમારે આ જ જરૂર છે. હવે, ચાલો બેઝ નમૂનાને વિસ્તૃત કરીને દૃશ્ય માટે એક ફોર્મ બનાવીએ. અમે વપરાશકર્તાઓ ફોલ્ડરમાં નમૂનાઓ માટે નવી ડિરેક્ટરી બનાવીને પ્રારંભ કરીશું.
mkdir વપરાશકર્તાઓ/નમૂનાઓ
mkdir વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓહવે, આપણે વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/લ login ગિન. Html ને સંપાદિત કરવામાં સમર્થ હોવા જોઈએ. જ્યારે આપણે તેના પર હોઈએ છીએ, ત્યારે અમે વપરાશકર્તાને પણ સાઇન અપ કરવાની મંજૂરી આપવા માટે એક નમૂના બનાવીશું.
નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/લ login ગિન.હવે, નમૂનામાં,
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %} { % બ્લોક સામગ્રી %} { % csrf_token %} લ log ગ ઇન કરો {{ફોર્મ | ક્રિસ્પી}} ફટકારવું { % એન્ડબ્લોક %}આ લ login ગિન નમૂનાની મૂળભૂત બાબતો છે. તે ખરેખર બંધારણના અન્ય નમૂનાની જેમ જ છે, પરંતુ જ્યારે તે રેન્ડર થાય છે ત્યારે તે થોડું અલગ લાગે છે. અમે આ કોડને રજિસ્ટર.એચટીએમએલ નામના બીજા ખૂબ સમાન નમૂના બનાવવા માટે ક copy પિ કરી શકીએ છીએ, જ્યાં અમે શબ્દો બદલીશું અને અમે બનાવેલા નવા ફોર્મનો ઉપયોગ કરીશું. ચાલો પહેલા નમૂના બનાવીએ. વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/રજિસ્ટર. Html ને સંપાદિત કરો અને નીચેનો કોડ ઉમેરો:
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %} { % બ્લોક સામગ્રી %} { % csrf_token %} એક એકાઉન્ટ બનાવો {{ફોર્મ | ક્રિસ્પી}} નોંધણી કરવી { % એન્ડબ્લોક %}હવે, ચાલો અમારા વપરાશકર્તા નોંધણી માટે એક ફોર્મ બનાવીએ અને મોડેલ સાથે અમારા વપરાશકર્તા લ log ગિનને અપગ્રેડ કરતા પહેલા દૃશ્યો પર પાછા વર્તુળ કરીએ. અમે આ ફોર્મને પ્રારંભ કરવા માટે મૂળભૂત બનાવીશું, પરંતુ ભવિષ્યમાં કરારો અને કેપ્ચા જેવી વધુ વિગતો અને સુરક્ષા સુવિધાઓ શામેલ કરીશું. નેનો વપરાશકર્તાઓ/ફોર્મ્સ.પી. સાથે ફોર્મ્સ સંપાદિત કરો અને નીચેનો કોડ ઉમેરો.
જાંગો આયાત સ્વરૂપોથી jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી jango.contrib.auth.forms થી આયાત યુઝરક્રેશનફોર્મ વર્ગ યુઝરરેજીસ્ટરફોર્મ (યુઝરક્રિએશનફોર્મ): ઇમેઇલ = ફોર્મ્સ.મેઇલફિલ્ડ () વર્ગ મેટા: મોડેલ ફીલ્ડ્સ = ['વપરાશકર્તા નામ', 'ઇમેઇલ', 'પાસવર્ડ 1', 'પાસવર્ડ 2']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',)
તેથી અમારી પાસે અહીં બીજું ફોર્મ છે, જે એકદમ સરળ રીતે કાર્ય કરે છે. તે વપરાશકર્તા નામ, ઇમેઇલ અને પાસવર્ડ, તેમજ પુષ્ટિ પાસવર્ડ ક્ષેત્ર સાથેનો વપરાશકર્તા રજિસ્ટર ફોર્મ છે. નોંધ લો કે આ ફોર્મ નિયમિત ફોર્મ્સ વિસ્તૃત કરતું નથી. ફોર્મ વર્ગ, તે એક મોડેલ ફોર્મ છે જેનો અર્થ છે કે તેમાં મેટા છે. એક ક્ષેત્ર ફક્ત સમાન વ્યાખ્યાયિત થયેલ છે, અને વર્ગ મેટા મોડેલને વ્યાખ્યાયિત કરે છે જે ફોર્મ બાકીની માહિતીને અનુરૂપ છે જે ફોર્મમાં લખવામાં આવશે. આમાંનો મોટાભાગનો ભાગ જાંગોના બિલ્ટ ઇન યુસેરેશનફોર્મમાં અસ્તિત્વમાં છે, તેથી અમે તેનો ઉપયોગ વર્ગના આધાર તરીકે કરીશું (કૌંસમાં પસાર થાય છે).આગળ, અમે વપરાશકર્તાને નોંધણી કરવાના દૃષ્ટિકોણની તપાસ કરીશું, હવે અમારી પાસે ફોર્મ અને નમૂના છે. નવા પોસ્ટ વ્યૂમાંની જેમ જ આ એક મોડલ્ફોર્મ છે. વપરાશકર્તાઓ/વ્યૂ.પી.પી.ને સંપાદિત કરો અને નીચેનો કોડ ઉમેરો:
#… આયાત માંથી .ફોર્મ્સ યુઝરરેજીસ્ટરફોર્મ આયાત ડેફ રજિસ્ટર (વિનંતી): જો વિનંતી.મેથોડ == "પોસ્ટ": ફોર્મ = યુઝરરેજીસ્ટરફોર્મ (વિનંતી.પોસ્ટ) જો form.is_valid (): વપરાશકર્તા = ફોર્મ.સેવ () સંદેશાઓ.સ્યુસીસ (વિનંતી, 'એપ્લિકેશનમાં આપનું સ્વાગત છે, {}.' રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/રજિસ્ટર.python manage.py makemigrations
python manage.py migrate
… આયાતઆ બધું જ આપણે વપરાશકર્તાને નોંધાયેલા લેવાની જરૂર છે, પરંતુ અમારી પાસે વધુ માહિતી હોવી જોઈએ. અમે વપરાશકર્તાએ નોંધાયેલ સમય, સાઇટ પર કયા સમયે હતા તે જાણવા માંગીએ છીએ, તેમના વિશેની કેટલીક માહિતી, જીવનચરિત્ર, ટાઇમઝોન, વગેરે. ઉપરાંત, દરેક વપરાશકર્તાને વપરાશકર્તા મોડેલ અને એટ્રિબ્યુટ પોસ્ટ્સ માટે એકાઉન્ટ કરવા માટે અમારું ફીડ મોડેલ, પોસ્ટ, અપડેટ કરવાની જરૂર રહેશે. તે કરવા માટે, અમે બંને એપ્લિકેશનોમાં મોડેલો.પી. ચાલો ફીડ મોડેલને સંપાદિત કરીને પ્રારંભ કરીએ. તે હવે આના જેવું દેખાવું જોઈએ:
jango.db આયાત મોડેલોથી #… આયાત jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી વર્ગ પોસ્ટ (મોડેલો.મોડેલ): ID = મોડેલ્સ.ઓટોફિલ્ડ (પ્રાથમિક_કી = સાચું) લેખક = મોડલ્સ.ફોરેઇંગકી (વપરાશકર્તા, ઓન_ડિલેટ = મોડલ્સ.કેસ્કેડ, નલ = સાચું, ખાલી = સાચું, સંબંધિત_નામ = 'પોસ્ટ્સ') # આ લાઇનમાં ઉમેરો ટેક્સ્ટ = મોડલ્સ.ટેક્સ્ટફિલ્ડ (ડિફ default લ્ટ = '') posts = Post.objects.all() # … આયાત
આ વાક્યમાં ઉમેરોફાઇલમાં ઉમેરવામાં આવેલી બીજી લાઇન પર ધ્યાન આપો. આ એક વિદેશી કી છે, જે દરેક પોસ્ટને પોસ્ટ દીઠ એક જ વપરાશકર્તાને આભારી છે, તેથી અમે ખાતરી કરી શકીએ કે અમે વપરાશકર્તા-વપરાશકર્તાના આધારે પોસ્ટ્સને સાચવીએ છીએ અને વપરાશકર્તાને આભારી વિના કોઈ પોસ્ટ બનાવી શકાતી નથી. અમે આ વિદેશી કીને તે રજૂ કરેલા વર્ગ સાથે વ્યાખ્યાયિત કરીએ છીએ, વપરાશકર્તાઓ સાથે પોસ્ટ્સ કા deleted ી નાખવામાં આવે છે તેની ખાતરી કરવા માટે એક કા delete ી નાખો, નલ અને ખાલી દલીલો છે કે અમે જરૂરી હોય તો વપરાશકર્તાને દૂર કરી શકીએ છીએ, અને અમે પહેલેથી બનાવેલ પોસ્ટ્સ પર વપરાશકર્તાની અભાવને સમાવવા માટે, અને સંબંધિત નામ, જેનો ઉપયોગ આપણે બનાવેલી પોસ્ટ objects બ્જેક્ટ્સને સંદર્ભિત કરવા માટે કરી શકીએ છીએ. આ સંબંધિત નામ, પોસ્ટથી વિપરીત. પોસ્ટના લેખક, અમને વપરાશકર્તા આપે છે જેમણે પોસ્ટ પોતે પોસ્ટ કરી છે. હવે અમે પોસ્ટ્સ વપરાશકર્તા દ્વારા બનાવેલ વપરાશકર્તા.પોસ્ટ્સ.એલ (), અથવા લેખક.પોસ્ટ્સ.એલ () દ્વારા બનાવેલ છે.
હવે, ચાલો આપણા લ login ગિન્સને વધુ સ્થિતિસ્થાપક બનાવીએ. અમે સાઇટ પર લ login ગિનની મંજૂરી આપીએ છીએ તે સંખ્યાને મર્યાદિત કરીને ફક્ત અમારી સાઇટને ફિશિંગ માટે ખૂબ ઓછી સંવેદનશીલ બનાવી શકીએ છીએ, આ એકદમ સરળ છે. ચાલો આપણે અમારી એપ્લિકેશનનો વિકાસ કરવાનું ચાલુ રાખતા પહેલા દરેક વપરાશકર્તા વિશે કેટલીક માહિતી સંગ્રહિત કરવાનું શરૂ કરીએ. વપરાશકર્તાઓ/મોડેલોનું સંપાદન કરવું, નીચેનો કોડ ઉમેરો.jango.db આયાત મોડેલોથી jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી jango.utils માંથી આયાત ટાઇમઝોન વર્ગ પ્રોફાઇલ (મોડેલો.મોડેલ): વપરાશકર્તા = મોડલ્સ.ઓનેટોનફિલ્ડ (વપરાશકર્તા, ઓન_ડિલેટ = મોડલ્સ.કેસ્કેડ, નલ = સાચું, ખાલી = સાચું, સંબંધિત_નામ = 'પ્રોફાઇલ') એકાઉન્ટ_ક્રિએટેડ = મોડલ્સ.ડેટટાઇમફિલ્ડ (ડિફ default લ્ટ = ટાઇમઝોન.અવ) છેલ્લું_સીન = મોડલ્સ.ડેટટાઇમફિલ્ડ (ડિફ default લ્ટ = ટાઇમઝોન.અવ) can_login = models.dateimefield (ડિફ default લ્ટ = ટાઇમઝોન.અવ) પ્રાધાન્ય_નામ = મોડેલ્સ.ચફિલ્ડ (મહત્તમ_લેન્થ = 20, ડિફ default લ્ટ = '', નલ = સાચું, ખાલી = સાચું) બાયો = મોડલ્સ.ટેક્સ્ટફિલ્ડ (ખાલી = સાચું, ડિફોલ્ટ = '')
નોંધ લો કે આ મોડેલ પોસ્ટ મોડેલની જેમ એકદમ સમાન છે. અમારી પાસે વધારાની આયાત, ટાઇમઝોન છે, જે અમને ડેટટાઇમ ફીલ્ડ્સ પર ડિફોલ્ટ સેટ કરવાની મંજૂરી આપશે, અને અમારી પાસે પોસ્ટની જેમ એક કેરેક્ટરફિલ્ડ અને ટેક્સ્ટફિલ્ડ પણ છે. આ બધા ટાઇમસ્ટેમ્પ્સનો ઉપયોગ અમને સાઇટને સુરક્ષિત કરવામાં અને તેનો ઉપયોગ સમજવામાં મદદ કરે છે, અને ટેક્સ્ટ ફીલ્ડ્સ અમને વેબસાઇટ પર દરેક વપરાશકર્તા અથવા લેખક વિશેની માહિતી રેન્ડર કરવા દે છે. Ne નટોનફિલ્ડ એકમાત્ર નજીવી વિચારણા હોવી જોઈએ, તે બરાબર તે જ રીતે વર્તે છે, પરંતુ અનુગામી મોડેલ દીઠ માત્ર એક જ છે. આ રીતે, વપરાશકર્તા પાસે ફક્ત એક પ્રોફાઇલ છે, જ્યારે તેમની પાસે ઘણી પોસ્ટ્સ હોઈ શકે છે.mkdir feed/templates
mkdir feed/templates/feed
હવે, ચાલો અમારા લ login ગિનને સુધારીએ અને પ્રોફાઇલને ધ્યાનમાં લેવા દૃશ્યો નોંધણી કરીએ. પ્રથમ, વપરાશકર્તાઓ/વ્યૂ.પી.પી.ને સંપાદિત કરો અને રજિસ્ટર દૃશ્ય પર ધ્યાન કેન્દ્રિત કરો:#… આયાત માંથી .ફોર્મ્સ યુઝરરેજીસ્ટરફોર્મ આયાત ડેફ રજિસ્ટર (વિનંતી): જો વિનંતી.મેથોડ == "પોસ્ટ": ફોર્મ = યુઝરરેજીસ્ટરફોર્મ (વિનંતી.પોસ્ટ) જો form.is_valid (): વપરાશકર્તા = ફોર્મ.સેવ () પ્રોફાઇલ. Objects.create (વપરાશકર્તા = વપરાશકર્તા) # વપરાશકર્તા માટે પ્રોફાઇલ બનાવવા માટે, આ લાઇન ઉમેરવાની ખાતરી કરો સંદેશાઓ.સ્યુસીસ (વિનંતી, 'એપ્લિકેશનમાં આપનું સ્વાગત છે, {}.' રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/રજિસ્ટર.
… આયાત
વપરાશકર્તા માટે પ્રોફાઇલ બનાવવા માટે, આ લાઇન ઉમેરવાની ખાતરી કરોઆ ફક્ત કોઈપણ માહિતી ભર્યા વિના, વપરાશકર્તા માટે પ્રોફાઇલ બનાવે છે. હવે, અમે સુનિશ્ચિત કરવા માગીએ છીએ કે વપરાશકર્તા ખાતાને ઘણી વાર લ logged ગ ઇન કરી શકાતા નથી, અથવા ઓછામાં ઓછા પાસવર્ડ્સ ઘણી વાર અજમાવી શકાતા નથી, તેથી ચાલો લ login ગિન વ્યૂને અપડેટ કરીએ.
#… આયાત . મોડલ્સ આયાત પ્રોફાઇલથી jango.utils માંથી આયાત ટાઇમઝોન આયાત -તારીખ સમય ડેફ લ login ગિન (વિનંતી): જો વિનંતી.મેથોડ == "પોસ્ટ": વપરાશકર્તા નામ = વિનંતી.પોસ્ટ ['વપરાશકર્તા નામ'] પાસવર્ડ = વિનંતી.પોસ્ટ ['પાસવર્ડ'] વપરાશકર્તા = પ્રમાણિત (વપરાશકર્તા નામ = વપરાશકર્તા નામ, પાસવર્ડ = પાસવર્ડ) જો વપરાશકર્તા અને વપરાશકર્તા.પ્રોફાઇલ.સીન_લોગિન <ટાઇમઝોન.અવ (): # નોંધ લો કે હવે અમે તપાસીએ છીએ કે વપરાશકર્તા લ log ગ ઇન કરી શકે છે કે નહીં auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમારો પાસવર્ડ સ્વીકાર્યો હતો. કૃપા કરીને ચાલુ રાખો.') રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('ફીડ: ફીડ')) બીજું: # જો લ login ગિન સફળ ન હતું, સંદેશાઓ. વ ing રિંગ (વિનંતી, 'વપરાશકર્તા નામ અથવા પાસવર્ડ ખોટો. કૃપા કરીને ફરીથી પ્રયાસ કરો.') વપરાશકર્તા = user.objects.filter (વપરાશકર્તા નામ = વપરાશકર્તા નામ) .ફર્સ્ટ () # આ તે ભાગ છે જ્યાં આપણે વપરાશકર્તાઓની પ્રોફાઇલને અપડેટ કરીએ છીએ જો વપરાશકર્તા: પ્રોફાઇલ = વપરાશકર્તા.પ્રોફાઇલ પ્રોફાઇલ.કેન_લોગિન = ટાઇમઝોન.વ () + ડેટટાઇમ.ટાઇમડેલ્ટા (સેકંડ = 15) # જેથી તેઓ થોડી સેકંડ માટે ફરીથી લ log ગ ઇન ન કરી શકે પ્રોફાઇલ.સેવ () રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/લ login ગિન.python manage.py shell
… આયાતનોંધ લો કે હવે અમે તપાસીએ છીએ કે વપરાશકર્તા લ log ગ ઇન કરી શકે છે કે નહીં
જો લ login ગિન સફળ ન હતું,from feed.models import Post
આ તે ભાગ છે જ્યાં આપણે વપરાશકર્તાઓની પ્રોફાઇલને અપડેટ કરીએ છીએતેથી તેઓ થોડી સેકંડ માટે ફરીથી લ log ગ ઇન કરી શકતા નથી
આ સલામતીનો મૂળભૂત મૂળભૂત છે. ખાતરી કરો કે સાઇટ દરેક સંભવિત પાસવર્ડ સંયોજન, અથવા તેમાંથી કેટલાકને તે જ સમયે અજમાવી શકે તે માટે સંવેદનશીલ નથી. આ તે સામાન્ય વપરાશકર્તા માટે નિરાશાજનક નહીં હોય જે તેમના પાસકોડને જાણે છે અને ફક્ત થોડા ઉપકરણો પર લ s ગ ઇન કરે છે, પરંતુ તે અસંખ્ય ફિશિંગ રોબોટ્સને એપ્લિકેશનથી દૂર રાખશે. નોંધ લો કે અમે ચલ, કેન_લોગિન સાથે આઇએફ સ્ટેટમેન્ટ ઉમેર્યું, તે ભૂતકાળનો સમય હોવો જોઈએ, અને તે જ વપરાશકર્તા નામનો ઉપયોગ કરીને દરેક અસફળ લ login ગિન સાથે તેને અપડેટ કરો. આ રીતે, દૂષિત વપરાશકર્તા ઝડપથી ક્યાંય પણ નજીકમાં પાસવર્ડનો અનુમાન કરી શકશે નહીં. ડેટટાઇમ.ટાઇમડેલ્ટા () માં સેકંડની સંખ્યા પણ અપડેટ કરી શકાય છે, અને વેબસાઇટ વધુ સેકંડ સાથે વધુ સ્થિતિસ્થાપક હજી થોડી ઓછી ઉપયોગી થશે. હું શરૂ કરવા માટે 15 ની ભલામણ કરું છું.Post.objects.create(text='hello world')
exit()
યાદ રાખો, અમે અમારા કાર્યને બચાવવા માટે બેકઅપ સ્ક્રિપ્ટ બનાવી છે, તેથી ચાલો આપણે આગળ વધીએ છીએ અને આપણી પાસે જે છે તે ખાતરી કરવા માટે, આપણે બધું સાચવ્યું છે તેની ખાતરી કરવા માટે. આદેશ ચલાવો:સુડો બેકઅપ
ફરી એકવાર, આ તમારા કાર્યને અત્યાર સુધી બચાવે છે. હું તમારા કાર્યને બચાવવા માટે વારંવાર બેકઅપ ચલાવવાની ભલામણ કરું છું, અને તમે આપમેળે બેકઅપ જોબ પણ ચલાવવાની ઇચ્છા કરી શકો છો. તમે ક્રોન નામની યુનિક્સ ઉપયોગિતાનો ઉપયોગ કરીને આ કરી શકો છો. આ ઉપયોગિતાને સક્રિય કરવા માટે, નીચેનો આદેશ ચલાવો અને તમારો પાસવર્ડ દાખલ કરો:from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
સુડો ક્રોન્ટાબ -ઇજો તમે પહેલાથી જ નેનો માટે વિકલ્પ 1 પસંદ કર્યો નથી, તો ટેક્સ્ટ સંપાદક જેની સાથે તમે પહેલાથી પરિચિત હોવા જોઈએ, અને એરો કીનો ઉપયોગ કરીને ફાઇલના તળિયે સ્ક્રોલ કરો. નીચેની લાઇન ઉમેરો:
0 * * * * સુડો બેકઅપfrom django.urls import include # ક્રોન ફોર્મેટ મિનિટ, કલાક, મહિનાનો દિવસ, મહિનો, અઠવાડિયાનો દિવસ, જ્યાં આદેશ ચલાવવો ક્યારે રજૂ કરે છે તે રજૂ કરે છે. મિનિટ માટે 0 અને બાકીના વિકલ્પો માટે * નો ઉપયોગ કરીને, અમે મિનિટની શરૂઆતમાં દરેક કલાકની પ્રથમ મિનિટ પર આદેશ ચલાવી શકીએ છીએ. આ આપણને આપમેળે કોડનો બેકઅપ લેવા દે છે. ક્ર on નની બધી નોકરીઓ જ્યારે સુડો સાથે રન તરીકે ચલાવવામાં આવે છે, તેથી આપણે દર કલાકે પાસવર્ડ લખવાની જરૂર રહેશે નહીં.
# પાસવર્ડનો ઉપયોગ કર્યા વિના અમારા કોડનો બેકઅપ લેવાનું સરળ બનાવવા માટે, ચાલો અમારા બેકઅપ આદેશ માટે પાસવર્ડને અક્ષમ કરીએ. અમે નીચે આપેલા આદેશને ચલાવીને અને પાસવર્ડ દાખલ કરીને આ કરીશું:
સુડો વિસુડોહવે, ચાલો ફાઇલના તળિયે સ્ક્રોલ કરીએ અને બીજી લાઇન ઉમેરીએ:
બધા = nopasswd: /બિન /બેકઅપbackup
આ અમને પાસવર્ડ વિના, કોઈપણ વપરાશકર્તા તરીકે "બેકઅપ" આદેશ ચલાવવા દે છે. આ માટેનું ફોર્મેટ સરળ છે, ફક્ત "બધા = nopasswd:/bin/" સાથેની રેખાને ઉપસર્ગ અને આદેશ સાથે સમાપ્ત કરો, ઉદાહરણ તરીકે/બિન/બેકઅપ, જે/યુએસઆર/બિન/માં અસ્તિત્વમાં છે.હવે, ચાલો ઇમેઇલ સાથે કામ કરવાનું શરૂ કરીએ. વેબસાઇટ્સ માટે ઇમેઇલ ખરેખર મહત્વપૂર્ણ છે, કારણ કે તે વેબસાઇટને વધુ સુરક્ષિત રાખવાનો એક માર્ગ છે, ચકાસો વપરાશકર્તાઓ વાસ્તવિક લોકો છે, અને ગ્રાહકોને બજારના ઉત્પાદનો અથવા સેવાઓ પણ છે. ઘણા લોકો કે જેઓ વારંવાર ઇન્ટરનેટ પર તેમના ઇમેઇલને તપાસે છે, અને તેઓને રુચિ હોય તેવા ઉત્પાદનો અને સેવાઓ વિશેના તમામ પ્રકારના માર્કેટિંગ ઇમેઇલ પ્રાપ્ત થાય છે. જ્યારે જાંગો વેબસાઇટ પર ઇમેઇલ સક્ષમ કરવાની વાત આવે ત્યારે થોડા વિકલ્પો હોય છે, અને તમારા માટે જે પણ શ્રેષ્ઠ કામ કરે છે તે પસંદ કરવા માટે તમારું સ્વાગત છે.
પ્રથમ, તમે એક ઇમેઇલ સેવા માટે ચૂકવણી કરી શકો છો જે તમને તમારા ડોમેનથી ઇમેઇલ મોકલવા માટે સક્ષમ કરશે અને ન્યૂનતમ કોડની જરૂર પડશે. ઘણી સેવાઓ છે જે આ પ્રદાન કરે છે, જેમ કે ગૂગલ વર્કસ્પેસ, સેન્ડિનબ્લ્યુ, મેઇલગન અને વધુ. posts = Post.objects.all() # નહિંતર, તમે શરૂઆતથી તમારા સર્વરની અંદર તમારી પોતાની ઇમેઇલ સેવા બનાવી રહ્યા છો. હું આ વિકલ્પની ભલામણ કરું છું, તેમ છતાં તે વધુ કોડ છે અને તેને વિશેષ હોસ્ટિંગની જરૂર પડી શકે છે. તમે તમારા હોમ કમ્પ્યુટરથી મેઇલ સર્વર શરૂ કરી શકશો નહીં, તેથી ચાલો આપણે આગળ વધીએ અને ક્લાઉડમાં સર્વર શરૂ કરતા પહેલા ઇમેઇલ મોકલવા માટે ગોઠવણી અને કોડની તપાસ કરીએ અને અંદર અમારું પોતાનું મેઇલ સર્વર બનાવીએ.
if request.method == 'POST': # પ્રથમ, સેટિંગ્સને સંપાદિત કરો. નીચેના આદેશ સાથે:
form = PostForm(request.POST) # નેનો એપ્લિકેશન/સેટિંગ્સ.પી
if form.is_valid(): # જ્યાં એપ્લિકેશન તમે સ્ટાર્ટએપ સાથે બનાવેલ એપ્લિકેશનનું નામ છે.
form.save() # નીચેની રેખાઓ ઉમેરો:
return redirect(reverse('feed:feed')) # સાઇટ_નામ = 'જાંગો એપ્લિકેશન'
ઇમેઇલ_બેકએન્ડ = 'jango.core.mail.backends.smtp.emailBackend'
ઇમેઇલ_હોસ્ટ = 'લોકલહોસ્ટ'
ઇમેઇલ_પોર્ટ = 587
ઇમેઇલ_યુઝ_ટલ્સ = સાચું
ઇમેઇલ_એડ્રેસ = વપરાશકર્તા નામ@server.com '
ઇમેઇલ_હોસ્ટ_યુઝર = 'વપરાશકર્તા નામ'
ઇમેઇલ_હોસ્ટ_પ ass સવર્ડ = રૂપરેખા ['ઇમેઇલ_હોસ્ટ_ પાસવર્ડ']
ડિફ ault લ્ટ_ફ્રોમ_મેઇલ = '{} <{}>'. ફોર્મેટ (સાઇટ_નામ, ઇમેઇલ_હોસ્ટ_યુઝર)
'form': PostForm(), # જ્યારે તમે તમારી એપ્લિકેશનને જમાવવા માટે તૈયાર હોવ ત્યારે આને બદલવાની ખાતરી કરો, અમે આ પછીથી ફરી મુલાકાત લઈશું. ઇમેઇલ_એડ્રેસ સેટિંગ તમે જે ઇમેઇલ મોકલવા માંગો છો તે હોવી જોઈએ, અને પાસવર્ડ (ઇમેઇલ_હોસ્ટ_ પાસવર્ડ) તમે સર્વર માટે બનાવેલ પાસવર્ડ પર સેટ કરવો જોઈએ. સેટિંગ્સમાં આ રેખાઓ ઉપર, નીચે આપેલા તર્કનો ઉપયોગ કરીને તેને કોડથી દૂર રાખવા માટે હું એક રૂપરેખા ફાઇલમાંથી પાસવર્ડ લોડ કરું છું.
આયપ
આયાત જે.એસ.એન.
ઓપન ('/etc/config.json') સાથે રૂપરેખા_ફાઇલ તરીકે:
રૂપરેખા = json.load (config_file)તે પછી, મેં નીચે પ્રમાણે નેનોનો ઉપયોગ કરીને /etc/config.json માં રૂપરેખા સાથે JSON ફાઇલ સેટ કરી છે.
સુડો નેનો /etc/config.json
નીચેની રેખાઓ ઉમેરો:- "ઇમેઇલ_હોસ્ટ_ પાસવર્ડ": "" .
અમે રૂપરેખા ફાઇલને સંપાદિત કરવાનું ચાલુ રાખીશું અને એપ્લિકેશનમાં અમે ઉપયોગ કરીશું તે બધા પાસવર્ડ્સ અને કીઓ ઉમેરીશું. હમણાં માટે, ચાલો ઝડપથી તપાસ કરીએ કે પાયથોનનો ઉપયોગ કરીને ઇમેઇલ કેવી રીતે મોકલવો. પ્રથમ, ચાલો આપણે અમારા વપરાશકર્તાઓને મોકલી શકીએ તેવા ચકાસણી ઇમેઇલ માટે એક નમૂના બનાવીએ, અને તેને વપરાશકર્તા નમૂનાઓ ડિરેક્ટરીમાં મૂકીએ. આ નમૂના HTML માં લખવામાં આવશે.નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/ચકાસણી_મેઇલ.એચટીએમએલ
જાંગો એપ્લિકેશન - તમારું ઇમેઇલ ચકાસો પ્રિય {{વપરાશકર્તા.યુઝરનામ}}, તમારા ઇમેઇલને ચકાસવા માટે, કૃપા કરીને અહીં ક્લિક કરો. વૈકલ્પિક રીતે, તમે તમારા બ્રાઉઝરના સરનામાં બારમાં નીચેની લિંકને પેસ્ટ કરી શકો છો: . લિંક 30 મિનિટમાં સમાપ્ત થશે. જો તમે કોઈ ચકાસણી ઇમેઇલની વિનંતી કરી નથી, તો તમે ફક્ત આ ઇમેઇલને અવગણી શકો છો. તમે ત્યાં મળીશું, ડેઝીઆ ઇમેઇલ એકદમ સરળ છે. તે વપરાશકર્તાનો સંદર્ભ લે છે, સાઇટ માટેનો આધાર URL અને વપરાશકર્તા ID અને ટોકન જેનો ઉપયોગ વપરાશકર્તાના ઇમેઇલને ચકાસવા માટે થાય છે. સેટિંગ્સમાં બેઝ URL ને વ્યાખ્યાયિત કરવાની ખાતરી કરો.પી. અમે નમૂનાને રેન્ડર કરવા માટે કેટલાક પાયથોન કોડ લખો તે પહેલાં. આગળ વધો અને શરૂઆતની નજીક, એપ્લિકેશન/સેટિંગ્સ.પી.માં નીચેની લાઇનો ઉમેરો.સાઇટ_નામ = 'જાંગો એપ્લિકેશન' પ્રોટોકોલ = 'https' ડોમેન = 'ઉદાહરણ.કોમ' આધાર_યુઆરએલ = પ્રોટોકોલ + ': //' + ડોમેનઆખરે, જ્યારે તમારી સાઇટ ઇન્ટરનેટ માટે તૈયાર છે અને તમે તેને જમાવટ કરો છો, ત્યારે તમે તમારા ડોમેનને સાઇટનું પ્રતિનિધિત્વ કરવા માટે ખરીદેલા ડોમેન નામ તરીકે વ્યાખ્યાયિત કરવા માંગો છો. આ તે નામ છે કે તમે તમારી સાઇટને to ક્સેસ કરવા માટે નવબારમાં ટાઇપ કરશો. હમણાં માટે, તમે ડોમેન ખાલી છોડી શકો છો અથવા પ્લેસહોલ્ડરનો ઉપયોગ કરી શકો છો. તમે સાઇટ_નામને તે નામ પર પણ બદલવા માંગો છો, જે તમે તમારી પસંદ કરવા માંગો છો, તમારી પસંદગીની.
અમે ઇમેઇલ મોકલો તે પહેલાં, ચાલો એક ટોકન જનરેટર બનાવીએ જેથી અમારી પાસે એકાઉન્ટ એક્ટિવેશન ટોકન હોઈ શકે જે ક્યારેય સમાપ્ત થતું નથી. અમે એકાઉન્ટ એક્ટિવેશન ટોકન બનાવીને અને આયાત કરીને આ કરી શકીએ છીએ જે નીચેના જેવું લાગે છે. ફાઇલ સંપાદિત કરો:નેનો વપરાશકર્તાઓ/ટોકન્સ.પી
નીચેનો કોડ ઉમેરો:jango.contrib.auth.tokens થી આયાત પાસવર્ડરેસેટોકેંગેનરેટરથી આયાત કરો વર્ગ ટોકજેનરેટર (પાસવર્ડરેસેટોકેંગેનરેટર): DEF _Make_hash_value (સ્વ, વપરાશકર્તા, ટાઇમસ્ટેમ્પ): વળતર ( સિક્સ.ટેક્સ્ટ_ટાઇપ (યુઝર.પીકે) + સિક્સ.ટેક્સ્ટ_ટાઇપ (ટાઇમસ્ટેમ્પ) ના, અઘોર્ભ એકાઉન્ટ_એક્ટિવેશન_ટોકન = ટોકંગેનરેટર () અનસબ્સ્ક્રાઇબ_ટોકન = ટોકંગેનરેટર ()
આ મૂળભૂત ટોકન જનરેટર એક ટોકન ઉત્પન્ન કરે છે અમે વપરાશકર્તાને URL માં મોકલી શકીએ છીએ અને વપરાશકર્તા તેમના ઇમેઇલને ચકાસવા અને તેમના એકાઉન્ટને સક્રિય કરવા માટે ઉપયોગ કરી શકે છે.
આગળ, ચાલો જોઈએ કે ઇમેઇલ કેવી રીતે મોકલવો. નેનોનો ઉપયોગ કરીને, વપરાશકર્તાઓ/ઇમેઇલ.પી.પી.નેનો વપરાશકર્તાઓ/ઇમેઇલ.પી
ચકાસણી HTML ઇમેઇલ મોકલવા આના જેવો દેખાશે:jango.contrib.auth આયાત get_user_model થી jango.utils.http આયાત URLSAFE_BASE64_ENCODE, urlsafe_base64_decode થી jango.contrib.sites.shortcuts આયાત get_current_site માંથી jango.core.mail આયાત Send_mail થી jango.template.loader આયાત Render_to_string થી jango.utils.encoding આયાત ફોર્સ_બાઇટ્સથી jango.core.mail દ્વારા આયાત ઇમેઇલ multialsternatives માંથી જાંગો.શોર્ટકટ્સથી આયાત રેન્ડર .tokens આયાત એકાઉન્ટ_એક્ટિવેશન_ટોકનથી jango.template.loader આયાત Render_to_string થી jango.utils.html આયાત સ્ટ્રીપ_ટેગ્સથી jango.template આયાત નમૂના, સંદર્ભથી જાંગો.કોનફ આયાત સેટિંગ્સથી આયાત ટ્રેસબેક DEF SEND_VERIFICATION_EMAL (વપરાશકર્તા): વપરાશકર્તા = get_user_model () mail_subject = '[{}] તમારું એકાઉન્ટ સક્રિય કરો.'. ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ) html_message = Render_to_string ('વપરાશકર્તાઓ/ચકાસણી_મેઇલ.એચટીએમએલ', { 'વપરાશકર્તા': વપરાશકર્તા, 'ડોમેન': સેટિંગ્સ.ડોમેન, 'પ્રોટોકોલ': 'https', 'uid': urlsafe_base64_encode (Form_bytes (USER.PK)), 'ટોકન': એકાઉન્ટ_એક્ટિવેશન_ટોકન.મેક_ટોકન (વપરાશકર્તા), })) મોકલો_એચટીએમએલ_મેઇલ (વપરાશકર્તા, મેઇલ_સબજેક્ટ, html_message)
આ એકદમ સરળ છે. અમે ઇમેઇલ મોકલવા, નમૂનાઓ અને અમારી સેટિંગ્સ સાથે ઇમેઇલ રેન્ડર કરવા માટે જરૂરી કાર્યો આયાત કરીએ છીએ, અને પછી અમે નમૂનાના નામ દ્વારા ઇમેઇલને વ્યાખ્યાયિત કરીએ છીએ અને તેને ફંક્શનનો ઉપયોગ કરીને વપરાશકર્તાને મોકલીએ છીએ. તમે જોશો કે અમે મેઇલ મોકલવા માટે ફંક્શનને વ્યાખ્યાયિત કર્યું નથી, તેમ છતાં, તેથી ચાલો આપણે પહેલાથી જ વપરાશકર્તાઓ/ઇમેઇલ પર ઉમેર્યું તે કોડની નીચે લખીએ.pip install django-crispy-forms
DEF SEND_HTML_EMAL (વપરાશકર્તા, મેઇલ_સબજેક્ટ, HTML_MESSAGE):
to_email = વપરાશકર્તા.મેઇલ
વપરાશકર્તા નામ = વપરાશકર્તા.યુઝર નામ
જો to_email == '':
પાછું નહીં
uncub_link = સેટિંગ્સ.બેઝ_યુઆરએલ + વપરાશકર્તા.પ્રોફાઇલ.
html_message = html_message + "અનસબ્સ્ક્રાઇબ"
એમએસજી = ઇમેઇલમલ્ટિલેસ્ટીટિવ્સ (મેઇલ_સબજેક્ટ, સ્ટ્રીપ_ટેગ્સ (એચટીએમએલ_મેસેજ), સેટિંગ્સ.ડેફોલ્ટ_ફ્રોમ_મેઇલ, [to_email], હેડર્સ = {'સૂચિ-અનસબ્સ્ક્રાઇબ': '<' + અનસબ_લિંક + '>'},)
msg.attach_alternative (html_message, "ટેક્સ્ટ/html")
પ્રોફાઇલ = વપરાશકર્તા.પ્રોફાઇલ
પ્રયાસ કરો:
msg.send (feil_silely = ખોટું)
જો પ્રોફાઇલ નથી. EMAIL_VALID:
પ્રોફાઇલ.મેઇલ_વલિડ = સાચું
પ્રોફાઇલ.સેવ ()
સિવાય:
પ્રોફાઇલ.મેઇલ_વલિડ = ખોટું
પ્રોફાઇલ.સેવ ()આ થોડી વધુ જટિલ છે, અને અમે હજી સુધી આ બધા કોડ ચલાવવા માટે તૈયાર નથી. નોંધ લો કે અમે અનસબ_લિંકને વ્યાખ્યાયિત કરી રહ્યા છીએ, વપરાશકર્તા અમારા ઇમેઇલ્સમાંથી અનસબ્સ્ક્રાઇબ કરવા માટે ઉપયોગ કરી શકે છે. આ મહત્વપૂર્ણ છે, કારણ કે વપરાશકર્તાઓને કોઈપણ સમયે, તેઓને જોવા માંગતા ન હોય ત્યાં સુધી અમારા ઇમેઇલ્સમાંથી બહાર નીકળવાની જરૂર રહેશે. અમે અમારા સંદેશનો એક ટેક્સ્ટ વિકલ્પ પણ ઉમેરીએ છીએ, જે HTML સંદેશ છે જે HTML ટ s ગ્સથી છીનવી લે છે. છેલ્લે, અમે તપાસ કરીએ છીએ કે ઇમેઇલ મોકલ્યો છે કે નહીં, અને જો તે થયું નથી, તો અમે વપરાશકર્તાની પ્રોફાઇલમાં ચિહ્નિત કરીએ છીએ કે તેમનો ઇમેઇલ માન્ય નથી.
ચાલો વપરાશકર્તા મોડેલો પર પાછા જઈએ જેથી અમે આ બધા કાર્ય કરી શકીએ. અનસબ્સ્ક્રાઇબ કરવાની લિંક બનાવવા માટે આપણે ફંક્શનની વ્યાખ્યા કરવાની જરૂર છે, અને વપરાશકર્તાના ઇમેઇલ માન્ય નથી તે ચિહ્નિત કરવા માટે બુલિયન ક્ષેત્રને વ્યાખ્યાયિત કરવાની જરૂર છે. # પ્રથમ, વપરાશકર્તાઓ/મોડેલો.પી.પી.ની ટોચ પર નીચેની આયાત ઉમેરો
નેનો વપરાશકર્તાઓ/મોડેલો.પી#… jango.core.signing આયાત ટાઇમસ્ટેમ્પ્સિગનર, બેડસિગ્નેચર, સિગ્નેચર એક્સ્પાયર્ડથી jango.urls માંથી આયાત verse લટું
…
આગળ, ચાલો ટોકન બનાવવા માટે વપરાશકર્તા મોડેલમાં કાર્યો ઉમેરીએ અને ઇમેઇલને સક્રિય કરવા માટે વપરાયેલ ટોકન, તેમજ વપરાશકર્તા સફળતાપૂર્વક તેમનો મેઇલ પ્રાપ્ત કરી રહ્યો છે કે કેમ તે સાચવવા માટે ક્ષેત્રને તપાસો. વપરાશકર્તાઓ/મોડેલોમાં ફરીથી, નીચેનો કોડ મોડેલના અંતમાં ઉમેરો (ઇન્ડેન્ટેડ કોડ)#… ઇમેઇલ_વિલિડ = મોડલ્સ.બુલિયનફિલ્ડ (ડિફ default લ્ટ = સાચું) ડેફ મેક_ટોકન (સ્વ): રીટર્ન ટાઇમસ્ટેમ્પ્સિગ્નર (). સાઇન (સેલ્ફ.યુઝર.યુઝરનામ) ડેફ ચેક_ટોકન (સ્વ, ટોકન): પ્રયાસ કરો: કી = '%s:%s'%(self.user.username, ટોકન) ટાઇમસ્ટેમ્પ્સિગ્નર (). સાઇન ઇન (કી, મેક્સ_ેજ = 60 * 60 * 24 * 30) # 30 દિવસ માટે માન્ય સિવાય (બેડસિગ્નેચર, સિગ્નેચરએક્સપાયર્ડ): ખોટું સાચું પાછું Def create_unsubscribe_link (સ્વ): વપરાશકર્તા નામ, ટોકન = સેલ્ફ.મેક_ટોકન (). સ્પ્લિટ (":", 1) રીટર્ન રિવર્સ ('વપરાશકર્તાઓ: અનસબ્સ્ક્રાઇબ', ક્વાર્ગ્સ = {'વપરાશકર્તા નામ': વપરાશકર્તા નામ, 'ટોકન': ટોકન,})
…30 દિવસ માટે માન્ય
આ એકદમ સરળ છે, અમે એક ટોકન બનાવવા માટે ટાઇમસ્ટેમ્પ્સિગનર, જે મૂળભૂત ક્રિપ્ટોગ્રાફી ટૂલ છે તેનો ઉપયોગ કરીએ છીએ, જે ચોક્કસ સમય પછી સમાપ્ત થશે, અને તે માન્ય છે કે નહીં તે તપાસવા માટે અમે બીજા ફંક્શનનો ઉપયોગ પણ કરીએ છીએ. અમે આ ટોકન્સનો ઉપયોગ બે વાર કરીએ છીએ, એકવાર ઇમેઇલની ચકાસણી કરવા માટે, અને એકવાર અનસબ્સ્ક્રાઇબ લિંક માટે.હવે અમારી પાસે આ છે, આપણે જે કામ કરવાની જરૂર છે તે મંતવ્યોમાં છે. વપરાશકર્તાઓ/વ્યૂ.પી.માં, ચાલો ઇમેઇલ સરનામાંને ચકાસવા અને અનસબ્સ્ક્રાઇબ કરવા માટે દૃશ્યો ઉમેરીએ.
નેનો વપરાશકર્તાઓ/વ્યૂ.પી.પી.python manage.py startapp users
પ્રથમ, નીચેની આયાત ઉમેરો. મેં થોડા વધારાના ફેંકી દીધા જેથી આપણે પછીથી ફરીથી વધુ વસ્તુઓ આયાત કરવાની રહેશે નહીં.jango.contrib.auth આયાત લોગઆઉટથી jango.shortcuts આયાત રેન્ડર, રીડાયરેક્ટ, get_object_or_404 માંથી jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી jango.utils.coding આયાત ફોર્સ_સ્ટ્રથી jango.utils.http આયાત URLSAFE_BASE64_ENCODE, urlsafe_base64_decode થી આયાત જે.એસ.એન. આયાત વિનંતીઓ તારીખ, ટ્રેસબેક આયાત કરો jango.contrib દ્વારા આયાત સંદેશાઓથી . મોડલ્સ આયાત પ્રોફાઇલથી jango.utils માંથી આયાત ટાઇમઝોન jango.views.decorators.cache આયાત નેવર_કેશથી .મેઇલ આયાતથી Send_verific_mail # ચકાસણી ઇમેઇલ મોકલવાનું કાર્ય આયાત કરવાનું સુનિશ્ચિત કરો jango.contrib.auth.decorators થી આયાત લ login ગિન_પ્રાપ્તિથી jango.contrib.auth.mixins માંથી આયાત લ login ગિનરીક્વેર મિક્સિન, યુઝર પાસસ્ટેસ્ટમિક્સિન jango.utils.decorators આયાત પદ્ધતિ_ડેકોરેટરથી jango.http થી આયાત જાંગો.કોનફ આયાત સેટિંગ્સથી jango.utils માંથી આયાત ટાઇમઝોન આયાત -તારીખ સમય પાયટ્ઝ આયાત કરો jango.views.decorators.csrf આયાતથી csrf_exempt jango.http થી આયાત httpresponse jango.contrib.auth.tokens થી આયાત ડિફોલ્ટ_ટોકન_જેનરેટરથી jango.utils.http થી આયાત URLSAFE_BASE64_DECOD .tokens આયાત એકાઉન્ટ_એક્ટિવેશન_ટોકનથી
ચકાસણી ઇમેઇલ મોકલવાનું કાર્ય આયાત કરવાની ખાતરી કરોતમારી પાસે પહેલેથી જ આમાંની કેટલીક આયાત હોઈ શકે છે, પરંતુ તેમને પુનરાવર્તિત કરવામાં નુકસાન થતું નથી. તમારે અન્ય આયાતની વચ્ચે, ચકાસણી ઇમેઇલ મોકલવાનું કાર્ય, તેમજ એકાઉન્ટ_એક્ટિવેશન_ટોકન, વપરાશકર્તાઓ તરફથી આયાત કરવાની જરૂર છે.
હવે, ફાઇલના તળિયે, નીચેનો કોડ ઉમેરો:ડિફ અનસબ્સ્ક્રાઇબ (વિનંતી, વપરાશકર્તા નામ, ટોકન): વપરાશકર્તા = get_object_or_404 (વપરાશકર્તા, વપરાશકર્તા નામ = વપરાશકર્તા નામ) જો ((વિનંતી.યુઝર.આઇએસ_અથેન્ટિકેટેડ અને વિનંતી.યુઝર == વપરાશકર્તા) અથવા વપરાશકર્તા.પ્રોફાઇલ.ચેક_ટોકન (ટોકન)): # તેમને અનસબ્સ્ક્રાઇબ કરો પ્રોફાઇલ = વપરાશકર્તા.પ્રોફાઇલ પ્રોફાઇલ.સુબ્સ્ક્રાઇબ = ખોટું પ્રોફાઇલ.સેવ () રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/અનસબ્સ્ક્રાઇબ. html') # અન્યથા લ login ગિન પૃષ્ઠ પર રીડાયરેક્ટ કરો સંદેશાઓ. વ ing રિંગ (વિનંતી, તમારી અનસબ્સ્ક્રાઇબ લિંક સમાપ્ત થઈ ગઈ છે. કૃપા કરીને અનસબ્સ્ક્રાઇબ પર લ log ગ ઇન કરો. ') Next_url = verse લટું ('વપરાશકર્તાઓ: અનસબ્સ્ક્રાઇબ કરો', kwargs = {'વપરાશકર્તા નામ': વપરાશકર્તા નામ, 'ટોકન': ટોકન,}) રીટર્ન HTTPREPONSEREDEDER ('%s? Next =%s'%(રિવર્સ ('લ login ગિન'), નેક્સ્ટ_રલ)) ડેફ એક્ટિવેટ (વિનંતી, યુઆઈડીબી 64, ટોકન): પ્રયાસ કરો: યુઆઈડી = ફોર્સ_સ્ટ્ર (urlsafe_base64_decode (UIDB64)) વપરાશકર્તા = user.objects.get (pk = uid) સિવાય (ટાઇપરોર, વેલ્યુઅરર, ઓવરફ્લોવરર, યુઝર.ડોઝનોટેક્સિસ્ટ): વપરાશકર્તા = કંઈ નહીં ip = get_client_ip (વિનંતી) જો વપરાશકર્તા કંઈ નથી અને એકાઉન્ટ_એક્ટિવેશન_ટોકન.ચેક_ટોકન (વપરાશકર્તા, ટોકન): વપરાશકર્તા.પ્રોફાઇલ.મેઇલ_વરિફાઇડ = સાચું વપરાશકર્તા.પ્રોફાઇલ.સેવ () વપરાશકર્તા.સેવ () # SENDEWELCOMEMAL (વિનંતી, વપરાશકર્તા) સંદેશાઓ. રીડાયરેક્ટ રીડાયરેક્ટ (યુઝર.પ્રોફાઇલ.ક્રીએટ_ફેસ_યુઆરએલ ()) અન્યથા: સંદેશાઓ.સ્યુસીસ (વિનંતી, તમારી સક્રિયકરણ લિંક સમાપ્ત થઈ ગઈ છે. કૃપા કરીને નવી એક્ટિવેશન લિંકની વિનંતી કરો. ') રીડાયરેક્ટ રીડાયરેક્ટ ('ચકાસો: ચકાસો') ડેફ રીસેન્ડ_એક્ટિવેશન (વિનંતી): જો વિનંતી.મેથોડ == 'પોસ્ટ': ફોર્મ = ફરીથી endactivivemailform (વિનંતી.પોસ્ટ) ઇમેઇલ = વિનંતી.પોસ્ટ ['ઇમેઇલ'] પ્રયાસ કરો: વપરાશકર્તા = user.objects.get (ઇમેઇલ = ઇમેઇલ) મોકલો_વરિફિકેશન_મેઇલ (વપરાશકર્તા) સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમારી ચકાસણી ઇમેઇલ મોકલે છે. કૃપા કરીને તમારા એકાઉન્ટને ચકાસવા માટે તમારા ઇમેઇલની લિંકને ક્લિક કરો.') રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('ચકાસો: ચકાસો')) સિવાય: સંદેશાઓ. વ ing રિંગ (વિનંતી, તમારા ઇમેઇલ યોગ્ય નથી. કૃપા કરીને ફરીથી પ્રયાસ કરો. ') અન્યથા: ફોર્મ = રીસંડેક્ટિવેશનમેઇલફોર્મ () રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/resend_activity.html', {'ફોર્મ': ફોર્મ, 'શીર્ષક': 'સક્રિયકરણ', 'નાના': સાચું})
તેમને અનસબ્સ્ક્રાઇબ કરો username = request.POST['username'] # અન્યથા લ login ગિન પૃષ્ઠ પર રીડાયરેક્ટ કરો
password = request.POST['password'] # સેન્ડવેલકમેમેલ (વિનંતી, વપરાશકર્તા)
આ ઘણો કોડ છે. ચાલો તેને તોડી નાખીએ. પ્રથમ કાર્ય, સ્વચ્છ અને સરળ, મેઇલિંગ સૂચિમાંથી વપરાશકર્તાને અનસબ્સ્ક્રાઇબ કરે છે. બીજું ફંક્શન તેમના ઇમેઇલને સક્રિય કરે છે, અને તમે જોશો કે મેં એક ટિપ્પણી કરેલ ફંક્શન, સેન્ડવેલક ma મ ma લ ઉમેર્યું છે. સ્વાગત ઇમેઇલ મોકલવા માટે ઇમેઇલ નમૂના અને ફંક્શન વ્યાખ્યાનો ઉપયોગ કરવા માટે તમારું સ્વાગત છે, હું હજી સુધી નથી. મેં જે છેલ્લું કાર્ય કર્યું તે મહત્વપૂર્ણ છે, કારણ કે સક્રિયકરણ ઇમેઇલ્સ સમાપ્ત થાય છે. તેથી, અમારે થોડો સમય સક્રિયકરણ ઇમેઇલ ફરીથી ગોઠવવાની જરૂર રહેશે. અમે આ માટે મૂળભૂત ફોર્મનો ઉપયોગ કરી શકીએ છીએ, અને ચકાસણી ઇમેઇલ મોકલવા માટે ફંક્શનને ક call લ કરી શકીએ છીએ. અમે આ કરીએ તે પહેલાં, ચાલો ખાતરી કરીએ કે રજિસ્ટર દૃશ્ય પર ફંક્શન ક call લ ઉમેરીને, તે પ્રથમ સ્થાને મોકલવામાં આવશે. વપરાશકર્તાઓ/વ્યૂ.પી.માં રજિસ્ટર વ્યૂ, ડેફ રજિસ્ટર, રીડાયરેક્ટ પહેલાં આ લાઇન ઉમેરો.નેનો વપરાશકર્તાઓ/વ્યૂ.પી.પી.
#… (પછી) ડેફ રજિસ્ટર (વિનંતી): મોકલો_વરિફિકેશન_મેઇલ (વપરાશકર્તા) #… (પહેલાં) રીડાયરેક્ટ (mkdir users/templates
mkdir users/templates/users
… (પછી) ડેફ રજિસ્ટર (વિનંતી):… (પહેલાં) રીડાયરેક્ટ (
તમારે તે કોડ સ્નિપેટમાં પ્રથમ અને છેલ્લી રેખાઓ ઉમેરવાની જરૂર નથી, ફક્ત ખાતરી કરો કે રજિસ્ટર વ્યૂ વપરાશકર્તાને ચકાસણી ઇમેઇલ મોકલે છે. તે આના જેવું દેખાવું જોઈએ:nano users/templates/users/login.html
#… આયાત
માંથી .ફોર્મ્સ યુઝરરેજીસ્ટરફોર્મ આયાત
ડેફ રજિસ્ટર (વિનંતી):
જો વિનંતી.મેથોડ == "પોસ્ટ":
ફોર્મ = યુઝરરેજીસ્ટરફોર્મ (વિનંતી.પોસ્ટ)
જો form.is_valid ():
વપરાશકર્તા = ફોર્મ.સેવ ()
મોકલો_વરિફિકેશન_મેઇલ (વપરાશકર્તા) # આ લાઇન ઉમેરવાની ખાતરી કરો!
સંદેશાઓ.સ્યુસીસ (વિનંતી, 'એપ્લિકેશનમાં આપનું સ્વાગત છે, {}.'
રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/રજિસ્ટર.… આયાત
આ લાઇન ઉમેરવાની ખાતરી કરો!
હવે, આપણે સક્રિયકરણ ઇમેઇલને ફરીથી ફરીથી કરવા માટે એક ફોર્મ ઉમેરવાની જરૂર રહેશે. વપરાશકર્તાઓ/ફોર્મ્સ.પી.માં, નીચેનું ફોર્મ ઉમેરો:#… (આયાત) વર્ગ રીસંડ act ક્ટિવેશનમેઇલફોર્મ (ફોર્મ્સ.ફોર્મ): ઇમેઇલ = ફોર્મ્સ.મેઇલફિલ્ડ (જરૂરી = સાચું)
… (આયાત)
અમને આ ફરીથી ઇમેઇલ સક્રિયકરણ ફોર્મને અનુરૂપ નમૂનાની પણ જરૂર પડશે. ચાલો આ નમૂનાને તેમાં ઉમેરીએ. ફાઇલને સંપાદિત કરો:નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/ફરીથી_એક્ટિવેશન. Html
આગળ, ફાઇલમાં નીચેનો કોડ ઉમેરો.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']
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે
{ % બ્લોક સામગ્રી %}
{ % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %}
{ % csrf_token %}
સક્રિયકરણ ઇમેઇલ ફરીથી કરો
{{ફોર્મ | ક્રિસ્પી}}
સક્રિયકરણ ઇમેઇલ ફરીથી કરો
{ % એન્ડબ્લોક %}વાહ, તે ઘણું છે! હવે, જ્યારે અમે અમારા સર્વર પર કોડ જમાવટ કરીએ છીએ, ત્યારે અમે HTML ઇમેઇલ મોકલવા અને ઇમેઇલમાં ક્લિક કરીને વપરાશકર્તા એકાઉન્ટ્સને સક્રિય કરી શકીશું. અમે એક સરળ સ્વાગત ઇમેઇલ પણ મોકલવા માંગીએ છીએ, તેથી ચાલો જોઈએ કે તે કેવી રીતે કરવું. પાછા વપરાશકર્તાઓ/ઇમેઇલ.પીમાં, નીચેનો કોડ ઉમેરો:
ડેફ સેન્ડવેલકમેમેલ (વપરાશકર્તા): વપરાશકર્તા = get_user_model () html = ખોલો ('{}/વપરાશકર્તાઓ/સ્વાગત છે_મેઇલ. વિષય = ' + સેટિંગ્સ.સાઇટ_નામ +' પર આપનું સ્વાગત છે, {{વપરાશકર્તા નામ}}! ' નમૂના = નમૂના (એચટીએમએલ) સબજેટમપ્લેટ = નમૂના (વિષય) સંદર્ભ = સંદર્ભ (. RendedTemplate = Template.Render (સંદર્ભ) subjcontext = સંદર્ભ ({'વપરાશકર્તા નામ': વપરાશકર્તા.યુઝરનામ}) subjRenderedTemplate = subjtemplate.Render (subjContext) SEND_HTML_EMAL (વપરાશકર્તા, સબજરેન્ડરેડટેમ્પ્લેટ, રેન્ડરડેડટેમ્પ્લેટ)ઉપરાંત, અમને આ બધી માહિતી રેન્ડર કરવા માટે નમૂનાની જરૂર પડશે. મારી વેબસાઇટ પર, નમૂના નીચે જેવું લાગે છે, પરંતુ જો તમને ગમે તે ફોર્મેટ કરવા માટે તમારું સ્વાગત છે.
{{સાઇટ_નામ}} પર આપનું સ્વાગત છે હેલો {{વપરાશકર્તા નામ}}, અમે તમને અહીં જોઈને ખુશ છીએ! {{સાઇટ_નામ}} માં જોડાવા અને આનંદનો એક ભાગ બનવા બદલ આભાર. પ્રારંભ કરવા માટે, તમે તમારી ઓળખને ચકાસ્યા પછી અહીં કેટલીક વસ્તુઓ કરી શકો છો. એપ્લિકેશનનો ઉપયોગ કરો. આ {{સાઇટ_નામ}} નું મુખ્ય પૃષ્ઠ છે મારી ખાનગી {{સાઇટ_નામ}} પ્રોફાઇલની મુલાકાત લો. મને જાણવા ઇચ્છતા કોઈપણ માટે આ એક પૃષ્ઠ છે. વધુ પ્રોફાઇલ. તમે આ લોકોને સાઇટ પર શોધી શકો છો, અને તેમની સામગ્રી જોઈ શકો છો. અહીં બધી પોસ્ટ્સ જુઓ. આ {{સાઇટ_નામ}} નો ખાનગી આગળનો પૃષ્ઠ છે. સાઇટ પર હજી ઘણું વધારે છે, તેથી મુલાકાત માટે મફત લાગે અને તમને જે મળે છે તે જુઓ. તમે દરેક પૃષ્ઠ પરના કોઈપણ સામાજિક બટનો સાથે સાઇટ શેર કરી શકો છો. હું આશા રાખું છું કે તમે {{સાઇટ_નામ} with સાથે તમારા સમયનો આનંદ માણશો! અહીં હોવા બદલ આભાર. ખૂબ પ્રેમ સાથે, {{મોડેલ_નામ}} {{બેઝ_રલ}}# નોંધ લો કે અમારી પાસે ક્લોઝિંગ બોડી અથવા એચટીએમએલ ટ s ગ્સ નથી, કારણ કે જ્યારે આપણે એચટીએમએલ અનસબ્સ્ક્રાઇબ લિંક ઉમેરીએ ત્યારે અમે આમાં ઉમેરીએ છીએ. આ મહત્વપૂર્ણ છે, પરંતુ અમે તેમને બે વાર વ્યાખ્યાયિત કરવા માંગતા નથી.
તેથી આગળ શું છે? અમે લાંબી મજલ કાપી છે. ખરેખર, આપણે સાઇટને સર્વર પર જમાવવા માટે તૈયાર રહેવું જોઈએ. અમે @login_erquided ડેકોરેટર ઉમેરી શકીએ છીએ અને અમારા મંતવ્યો સુરક્ષિત બનાવી શકીએ છીએ, વપરાશકર્તા સાઇનઅપ્સ લઈ શકીએ છીએ, સુસંગત ઇમેઇલ મોકલી શકીએ છીએ, અને કેશ માહિતી, જે સંબંધિત રહેવા માટે વેબસાઇટની જરૂર છે તેનો આધાર છે. અમે થોડી વધુ ઉપયોગી સુવિધાઓ ઉમેરીશું, અને પછી અમારી સાઇટને સુરક્ષિત અને યોગ્ય બનાવવા માટે અમારા કોડને રિમોટ સર્વર પર જમાવવા, મેઇલ સર્વર, ડોમેન ગોઠવણી અને ફિલ્ટર્સ સેટ કરવા માટેનો આધાર બનાવીશું.અમને પાસવર્ડ રીસેટ વ્યૂની પણ જરૂર પડશે, તેથી ચાલો તે ખરેખર ઝડપથી ઉમેરીએ. જાંગોનું બિલ્ટ ઇન પાસવર્ડ રીસેટ વ્યૂ કેટલાક કાર્યોમાં તૂટી ગયું છે, પરંતુ અમે અમારું પોતાનું દૃષ્ટિકોણ, ઇમેઇલ નમૂના, ફોર્મ્સ અને યુઆરએલ પેટર્ન કેવી રીતે લખવું તે જોશું. વપરાશકર્તાઓ/વ્યૂઝ.પીમાં, દૃશ્ય જેવું લાગે છે તે અહીં છે
#... આયાત jango.contrib.auth.tokens થી આયાત ડિફોલ્ટ_ટોકન_જેનરેટરથી jango.contrib.auth.forms થી આયાત સેટ પાસવર્ડફોર્મથી jango.utils.http થી આયાત URLSAFE_BASE64_DECOD ડેફ પાસવર્ડ_રેસેટ (વિનંતી, યુઆઈડીબી 64, ટોકન): વપરાશકર્તા = get_object_or_404 (વપરાશકર્તા, ID = urlsafe_base64_decode (UIDB64)) જો વિનંતી.મેથોડ == 'પોસ્ટ': ફોર્મ = સેટપાસવર્ડફોર્મ (વપરાશકર્તા, વિનંતી.પોસ્ટ) જો form.is_valid () અને ડિફોલ્ટ_ટોકન_જેનરેટર.ચેક_ટોકન (વપરાશકર્તા, ટોકન): ફોર્મ.સેવ () સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમારો પાસવર્ડ ફરીથી સેટ કરવામાં આવ્યો છે.') elif ફોર્મ નથી. IS_VALID (): સંદેશાઓ. રીડાયરેક્ટ પરત કરો (વિનંતી.પથ) અન્યથા: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમારો પાસવર્ડ રીસેટ લિંક સમાપ્ત થઈ ગઈ છે. કૃપા કરીને એક નવું બનાવો.') રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('વપરાશકર્તાઓ: લ login ગિન')) રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_કોનફર્મ.એચટીએમએલ', { 'શીર્ષક': 'તમારો પાસવર્ડ ફરીથી સેટ કરો', 'ફોર્મ': સેટપાસવર્ડફોર્મ (વપરાશકર્તા)from django.db import models # ... આયાત
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # આ ફોર્મ જાંગોમાં બનાવવામાં આવ્યું છે, પરંતુ અમને પાસવર્ડ ફરીથી સેટ કરવાની પુષ્ટિ કરવા માટે નમૂનાની જરૂર પડશે, વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_કોનફર્મ.એચટીએમએલ
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે
{ % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %}
{ % બ્લોક સામગ્રી %}
{ % csrf_token %}
પાસવર્ડ ફરીથી સેટ કરો
{{ફોર્મ | ક્રિસ્પી}}
પાસવર્ડ ફરીથી સેટ કરો
{ % એન્ડબ્લોક સામગ્રી %}વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ.એચટીએમએલમાં, એક સરળ ફોર્મ સાથે, પાસવર્ડ ફરીથી સેટ ઇમેઇલ મોકલવા માટે અમારી પાસે નમૂના છે.
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %} { % બ્લોક સામગ્રી %} { % csrf_token %} પાસવર્ડ ફરીથી સેટ કરો {{ફોર્મ | ક્રિસ્પી}} વિનંતી પાસવર્ડ ફરીથી સેટ કરો { % એન્ડબ્લોક સામગ્રી %}ઇમેઇલ પોતે જ નમૂના સરળ છે, તે એક મૂળભૂત એચટીએમએલ ફાઇલ છે જે વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_મેઇલ. Html માં પાસવર્ડને ફરીથી સેટ કરવા માટે લિંક આપે છે. જાંગો આ ફાઇલને આપમેળે અર્થઘટન કરશે.
Uleglek - તમારો પાસવર્ડ ફરીથી સેટ કરો નમસ્તે, તમારો પાસવર્ડ ફરીથી સેટ કરવા માટે, કૃપા કરીને અહીં ક્લિક કરો. વૈકલ્પિક રીતે, તમે તમારા બ્રાઉઝરમાં નીચેની લિંકને પેસ્ટ કરી શકો છો: https://uglek.com { % url 'પાસવર્ડ_રેસેટ_કોનફર્મ' યુઆઈડીબી 64 = યુઆઈડી ટોકન = ટોકન %} જો તમે પાસવર્ડ ફરીથી સેટ કરવાની વિનંતી કરી નથી, તો તમે આ ઇમેઇલને ફક્ત અવગણી શકો છો. અમને જોડાવા બદલ આભાર, ડેઝી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='')
અમને વધુ બે નમૂનાઓની પણ જરૂર પડશે. પ્રથમ એ પુષ્ટિ કરવા માટે છે કે ઇમેઇલ મોકલવામાં આવ્યો છે. આ માટેના મંતવ્યો પહેલેથી જ જાંગોમાં છે, તેથી આપણે ફક્ત તેમને urls.py માં સંબોધવાની જરૂર છે. આ નમૂના વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_ડોન.એચટીએમએલ પર સ્થિત છે{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % બ્લોક સામગ્રી %} તમારો પાસવર્ડ ફરીથી સેટ કરવાની સૂચનાઓ સાથે એક ઇમેઇલ મોકલવામાં આવ્યો છે. { % એન્ડબ્લોક સામગ્રી %}
અને અંતે, પાસવર્ડ ફરીથી સેટ થાય છે તેની પુષ્ટિ કરવા માટે, વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_કોમ્પલ.એચટીએમએલ{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % બ્લોક સામગ્રી %} તમારો પાસવર્ડ સેટ કરવામાં આવ્યો છે. અહીં સાઇન ઇન કરો { % એન્ડબ્લોક સામગ્રી %}
હવે, અમને આ મંતવ્યો માટે URL દાખલાઓની જરૂર છે. વપરાશકર્તાઓ/urls.py માં, નીચેના URL દાખલાઓ ઉમેરો:# urlpattrns = [
#... પાછલા URL અહીં
પાથ ('પાસવર્ડ-રીસેટ/',
auth_views.passwordresetview.as_view (
Template_name = 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ.એચટીએમએલ',
html_email_template_name = 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_એચટીએમએલ_મેઇલ.એચટીએમએલ'
),
નામ = 'પાસવર્ડ_રેસેટ'),
પાથ ('પાસવર્ડ-રીસેટ/પૂર્ણ/',
auth_views.passwordresetdoneview.as_view (
Template_name = 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_ડોન.એચટીએમએલ'
),
નામ = 'પાસવર્ડ_રેસેટ_ડોન'),
પાથ ('પાસવર્ડ-રીસેટ-પુષ્ટિ ///',
auth_views.passwordresetconfirmview.as_view (
Template_name = 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_કોનફર્મ.એચટીએમએલ'
),
નામ = 'પાસવર્ડ_રેસેટ_કોન્ફર્મ'),
પાથ ('પાસવર્ડ-રીસેટ-પૂર્ણ/',
auth_views.passwordresetcompleteview.as_view (
Template_name = 'વપરાશકર્તાઓ/પાસવર્ડ_રેસેટ_કોમ્પલ.એચટીએમએલ'
),
નામ = 'પાસવર્ડ_રેસેટ_કોપ્લેટ'),
]
Profile.objects.create(user=user) # ... પાછલા URL અહીં
ચાર નમૂનાઓ, તે ઘણું છે! પરંતુ હવે અમે વેબ બ્રાઉઝરમાંથી, કોઈપણ સમયે વપરાશકર્તાના પાસવર્ડને ફરીથી સેટ કરવામાં સમર્થ થવાની ખાતરી કરી શકીએ છીએ.હું સમજું છું કે આ ઘણો કોડ છે. જો તે તમારા માથા ઉપર થોડું લાગે છે, તો તે બરાબર છે. તમે સુધારશો, તમારી સમજ સુધરશે, અને તમે ખૂબ જ ટૂંક સમયમાં કોડ સાથે વધુ સક્ષમ બનશો. જો તમે સંપૂર્ણ રીતે ખોવાઈ ગયા છો, તો હું આ સ software ફ્ટવેર પર પાછા આવવાની ભલામણ કરું છું કે coad નલાઇન કોડ કોર્સમાં સ્વ-ગતિશીલ શીખવાનું કામ કર્યા પછી. આ સામાન્ય રીતે પ્રારંભ કરવા માટે મફત હોય છે, અને જ્યારે તમે આ પ્રોજેક્ટ પર પાછા આવશો ત્યારે તમારે સફળ થવાની જરૂર છે તે બધું માર્ગદર્શન આપશે. જો તમને લાગે કે તમે ચાલુ રાખવા માટે તૈયાર છો, આગળ વાંચો, આગળ, અમે તમારા કોડને રિમોટ સર્વર પર જમાવવા અને મેઇલ સર્વર સેટ કરવા, તેમજ બાશનો ઉપયોગ કરીને તમારી જમાવટને સ્વચાલિત કરીશું જેથી તમે હંમેશાં થોડા સરળ આદેશો સાથે એક નવો પ્રોજેક્ટ સેટ કરી શકો.
રિમોટ સર્વર પર જમાવટ કરતા પહેલા આપણે છેલ્લી વસ્તુ કરવાની જરૂર છે તે છે અમારી સાઇટને થોડી વધુ સુરક્ષિત બનાવવી. તમે જોશો કે લ login ગિન દૃશ્ય ફક્ત વપરાશકર્તા નામ અને પાસવર્ડ લે છે, અને ત્યાં કોઈ મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન અથવા એક સમયનો કોડ નથી. આ એક સરળ ફિક્સ છે, અને તે જ કોડ સાથે, અમે અમારી સાઇટને ટેક્સ્ટ સંદેશાઓ મોકલી શકીએ છીએ અને સર્વરને મોકલેલા ટેક્સ્ટ સંદેશાઓ માટે પણ પ્રતિભાવ આપી શકીએ છીએ. પ્રારંભ કરવા માટે, અમે વપરાશકર્તા મોડેલોમાં પાછા જઈશું અને ટાઇમસ્ટેમ્પ સહી કરનાર ઉમેરીશું જે દરેક લ login ગિનનું પ્રતિનિધિત્વ કરશે. અમે વપરાશકર્તા મોડેલમાં એક અનન્ય, ફરતા ઓળખકર્તા પણ ઉમેરીશું જેનો ઉપયોગ અમારા લ login ગિનમાં વધારાની સુરક્ષા ઉમેરવા માટે કરવામાં આવશે. વપરાશકર્તા મ models ડેલો, વપરાશકર્તાઓ/મોડેલો.પી, સંપાદન, નીચેનો કોડ ઉમેરો:# jango.db આયાત મોડેલોથી
jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી
jango.utils માંથી આયાત ટાઇમઝોન
# ખાતરી કરો કે યુયુઆઈડી, ટાઇમસ્ટેમ્પ સહી કરનાર અને યુઆરએલ જનરેટર (વિપરીત) આયાત કરો
આયાત કરો
jango.core.signing આયાત ટાઇમસ્ટેમ્પ્સિગનર, બેડસિગ્નેચર, સિગ્નેચર એક્સ્પાયર્ડથી
jango.urls માંથી આયાત verse લટું
વર્ગ પ્રોફાઇલ (મોડેલો.મોડેલ):
વપરાશકર્તા = મોડલ્સ.ઓનેટોનફિલ્ડ (વપરાશકર્તા, ઓન_ડિલેટ = મોડલ્સ.કેસ્કેડ, નલ = સાચું, ખાલી = સાચું, સંબંધિત_નામ = 'પ્રોફાઇલ')
એકાઉન્ટ_ક્રિએટેડ = મોડલ્સ.ડેટટાઇમફિલ્ડ (ડિફ default લ્ટ = ટાઇમઝોન.અવ)
છેલ્લું_સીન = મોડલ્સ.ડેટટાઇમફિલ્ડ (ડિફ default લ્ટ = ટાઇમઝોન.અવ)
can_login = models.dateimefield (ડિફ default લ્ટ = ટાઇમઝોન.અવ)
પ્રાધાન્ય_નામ = મોડેલ્સ.ચફિલ્ડ (મહત્તમ_લેન્થ = 20, ડિફ default લ્ટ = '', નલ = સાચું, ખાલી = સાચું)
બાયો = મોડલ્સ.ટેક્સ્ટફિલ્ડ (ખાલી = સાચું, ડિફોલ્ટ = '')
# આ કોડ અહીં ઉમેરો
યુઆઈડી = મોડલ્સ.ચફિલ્ડ (મહત્તમ_લેન્થ = 32, ડિફ default લ્ટ = uuid.uuid4, નલ = સાચું, ખાલી = સાચું)
mfa_enabled = મોડેલ્સ.બુલિયનફિલ્ડ (ડિફ default લ્ટ = ખોટું)
સક્ષમ_એમએફએ = મોડલ્સ.બુલિયનફિલ્ડ (ડિફ default લ્ટ = ખોટું)
ફોન_નમ્બર = મોડેલ્સ.ચફિલ્ડ (ડિફ default લ્ટ = '', નલ = સાચું, ખાલી = સાચું, મહત્તમ_લેન્થ = 15)
ચકાસણી_કોડ = મોડેલ્સ.ચફિલ્ડ (ડિફ default લ્ટ = '', નલ = સાચું, ખાલી = સાચું, મહત્તમ_લેન્થ = 15)
ચકાસણી_કોડ_લેન્થ = મોડલ્સ.ઇંટેગરફિલ્ડ (ડિફ default લ્ટ = 6)
mfa_code_expire = models.Dateimefield (ડિફ default લ્ટ = ટાઇમઝોન.અવ)
mfa_attempts = models.integerfield (ડિફ default લ્ટ = 0)
ડેફ make_auth_token (સ્વ):
રીટર્ન ટાઇમસ્ટેમ્પ્સિગનર (). સાઇન (સેલ્ફ.યુઇડ)
# અને આ કાર્ય ઉમેરો
Def create_auth_url (સ્વ):
વપરાશકર્તા નામ, ટોકન = સેલ્ફ.મેક_અથ_ટોકન (). સ્પ્લિટ (":", 1)
રીટર્ન રિવર્સ ('વપરાશકર્તાઓ: એમએફએ', ક્વાર્ગ્સ = {'વપરાશકર્તા નામ': વપરાશકર્તા નામ, 'ટોકન': ટોકન,})
ડેફ ચેક_અથ_ટોકન (સ્વ, ટોકન):
પ્રયાસ કરો:
કી = '%s:%s'%(સેલ્ફ.યુઇડ, ટોકન)
ટાઇમસ્ટેમ્પ્સિગ્નર (). સાઇન ઇન (કી, મેક્સ_એજ = 60 * સેટિંગ્સ.
સિવાય (બેડસિગ્નેચર, સિગ્નેચરએક્સપાયર્ડ):
ખોટું
સાચું પાછું
if user and user.profile.can_login < timezone.now(): # યુયુઆઈડી, ટાઇમસ્ટેમ્પ સહી કરનાર અને યુઆરએલ જનરેટર (વિપરીત) આયાત કરવાની ખાતરી કરો
else: # આ કોડ અહીં ઉમેરો
user = User.objects.filter(username=username).first() # અને આ કાર્ય ઉમેરો
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # 3 મિનિટ માટે માન્ય
ખાતરી કરો કે તમારા વપરાશકર્તાઓ/મોડેલો. આ તોડવું, તે સરળ છે. અમારી પાસે થોડી આયાત છે, એક ટાઇમસ્ટેમ્પ્સિગ્નર જે એક ક્રિપ્ટોગ્રાફિક ઉપયોગિતા છે જે સુરક્ષિત કોડ પેદા કરી શકે છે અને ખાતરી કરવા માટે તેને ચકાસી શકે છે, તે માન્ય છે, ફક્ત એક જ વાર ઉપયોગમાં લેવામાં આવી છે, અને ચોક્કસ સંખ્યાની સેકંડ કરતા જૂની નથી. અમે યુયુઆઈડીનો પણ ઉપયોગ કરીએ છીએ, જે એક અનન્ય ઓળખકર્તા છે જે ટોકન પર હસ્તાક્ષર કરવા માટે અમારા વપરાશકર્તાને ઓળખે છે, અને યુઆરએલમાં જ્યાં ટોકન વપરાશકર્તાને મોકલવામાં આવે છે. અમે આ મૂળભૂત ક્રિપ્ટોગ્રાફીનો ઉપયોગ બે પરિબળ પ્રમાણીકરણ દૃશ્ય બનાવવા માટે કરીશું. આપણે બીજું કંઇ કરીએ તે પહેલાં, ચાલો સ્થળાંતર ચલાવીએ જેથી અમારા વપરાશકર્તા મોડેલો અપડેટ થાય. મેનેજ.પી સાથેની ડિરેક્ટરીમાં, સ્થળાંતર કરવા અને પૂર્ણ કરવા માટે નીચેના આદેશો ચલાવો.સોર્સ વેન્વ/ડબ્બા/સક્રિય પાયથોન મેનેજ કરો.પી.કેમિગ્રેશન્સ && પાયથોન મેનેજ કરો.પી.
આ મહત્વપૂર્ણ છે કારણ કે જ્યારે પણ અમે મોડેલોમાં ફેરફાર કરીએ છીએ, ત્યારે આપણે ખરેખર મોડેલોનો ઉપયોગ કરી શકીએ તે પહેલાં આપણે કોષ્ટકો બનાવવાની અને ડિફોલ્ટ સાથે ડેટાબેસને અપડેટ કરવાની જરૂર રહેશે.આગળ, ચાલો ગૌણ પ્રમાણીકરણ દૃશ્યને રીડાયરેક્ટ કરવા માટે અમારા લ login ગિન દૃશ્યને સુધારીએ. વપરાશકર્તાઓ/વ્યૂ.પી.માં, લ login ગિન ફંક્શનને દૂર કરો અને અમે ફક્ત વપરાશકર્તા મોડેલોમાં જનરેટ કરેલા URL પર રીડાયરેક્ટ કરો.
#… આયાત ડેફ લ login ગિન (વિનંતી): જો વિનંતી.મેથોડ == "પોસ્ટ": વપરાશકર્તા નામ = વિનંતી.પોસ્ટ ['વપરાશકર્તા નામ'] પાસવર્ડ = વિનંતી.પોસ્ટ ['પાસવર્ડ'] વપરાશકર્તા = પ્રમાણિત (વપરાશકર્તા નામ = વપરાશકર્તા નામ, પાસવર્ડ = પાસવર્ડ) જો વપરાશકર્તા અને વપરાશકર્તા.પ્રોફાઇલ.સીન_લોગિન <ટાઇમઝોન.અવ (): # નોંધ લો કે હવે અમે તપાસીએ છીએ કે વપરાશકર્તા લ log ગ ઇન કરી શકે છે કે નહીં # અહીં હતું તે auth_login કાર્યને દૂર કરો સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમારો પાસવર્ડ સ્વીકાર્યો હતો. કૃપા કરીને ચાલુ રાખો.') જો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ: રીડાયરેક્ટ રીડાયરેક્ટ (વપરાશકર્તા.પ્રોફાઇલ.ક્રિએટ_અથ_રલ ()) # નોંધ અમે અહીં નવા URL પર રીડાયરેક્ટ કરીએ છીએ બીજું: # જો વપરાશકર્તા મટલી-ફેક્ટર પ્રમાણીકરણનો ઉપયોગ કરી રહ્યો નથી, તો ફક્ત તેમને લ log ગ ઇન કરો. auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') રીડાયરેક્ટ રીડાયરેક્ટ ('ફીડ: ફીડ') બીજું: # જો લ login ગિન સફળ ન હતું, સંદેશાઓ. વ ing રિંગ (વિનંતી, 'વપરાશકર્તા નામ અથવા પાસવર્ડ ખોટો. કૃપા કરીને ફરીથી પ્રયાસ કરો.') વપરાશકર્તા = user.objects.filter (વપરાશકર્તા નામ = વપરાશકર્તા નામ) .ફર્સ્ટ () # આ તે ભાગ છે જ્યાં આપણે વપરાશકર્તાઓની પ્રોફાઇલને અપડેટ કરીએ છીએ જો વપરાશકર્તા: પ્રોફાઇલ = વપરાશકર્તા.પ્રોફાઇલ પ્રોફાઇલ.કેન_લોગિન = ટાઇમઝોન.વ () + ડેટટાઇમ.ટાઇમડેલ્ટા (સેકંડ = 15) # જેથી તેઓ થોડી સેકંડ માટે ફરીથી લ log ગ ઇન ન કરી શકે પ્રોફાઇલ.સેવ () રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/લ login ગિન.sudo backup
… આયાતનોંધ લો કે હવે અમે તપાસીએ છીએ કે વપરાશકર્તા લ log ગ ઇન કરી શકે છે કે નહીં
અહીં હતું તે auth_login કાર્યને દૂર કરોsudo crontab -e
નોંધ આપણે અહીં નવા URL પર રીડાયરેક્ટ કરીએ છીએજો વપરાશકર્તા મલ્ટિ-ફેક્ટર પ્રમાણીકરણનો ઉપયોગ કરી રહ્યો નથી, તો ફક્ત તેમને લ log ગ ઇન કરો.
જો લ login ગિન સફળ ન હતું,0 * * * * sudo backup
આ તે ભાગ છે જ્યાં આપણે વપરાશકર્તાઓની પ્રોફાઇલને અપડેટ કરીએ છીએતેથી તેઓ થોડી સેકંડ માટે ફરીથી લ log ગ ઇન કરી શકતા નથી
તેથી આ ખૂબ સરળ છે, જ્યારે આપણે તેને બનાવીએ ત્યારે હવે અમારી પાસે બે પરિબળ પ્રમાણીકરણ દૃશ્યને રીડાયરેક્ટ કરવાની રીત છે. જો વપરાશકર્તાએ ફોન નંબર ઉમેર્યો ન હોય તો અમારી પાસે ફ all લબેક પણ છે. અમે ટૂંક સમયમાં ફોન નંબર ઉમેરવા અને ટૂંક સમયમાં ટેક્સ્ટ સંદેશ સાથે લ log ગ ઇન કરવા માટે એક મૂળભૂત દૃશ્ય ઉમેરીશું.પ્રથમ, અમને અમારા કોડમાંથી ટેક્સ્ટ સંદેશ મોકલવાની સરળ રીતની જરૂર છે. આ કરવા માટે, અમે સંખ્યાબંધ એપીઆઇમાંથી પસંદ કરી શકીએ છીએ, પરંતુ મારા મતે સૌથી સહેલો છે તે ટ્યુબિલિઓ છે. તેઓ નાના પ્રોજેક્ટ્સ, તેમજ બલ્ક ડિસ્કાઉન્ટ માટે સારી ભાવો પણ આપે છે. Twilio.com પર એક એકાઉન્ટ બનાવો, તમારા પ્રોજેક્ટ વિશેની કેટલીક વિગતો ભરો, ફોન નંબર ખરીદો અને તમારી API કીઓને તમારી સેટિંગ્સ.પી. તે પછી, આ કોડને નવી ફાઇલ, વપરાશકર્તાઓ/એસએમએસ.પી. હેઠળ ઉમેરો.
નેનો વપરાશકર્તાઓ/sms.pysudo visudo
# બધા જરૂરી પેકેજો આયાત કરો
jango.utils માંથી આયાત ટાઇમઝોન
આયાત કરો
આયાત -તારીખ સમય
જાંગો.કોનફ આયાત સેટિંગ્સથી
ફીડ.મિડલવેરથી આયાત get_current_request માંથી
jango.contrib દ્વારા આયાત સંદેશાઓથી
આયાત ટ્રેસબેક
એકાઉન્ટ_સિડ = સેટિંગ્સ.ટવિલિઓ_એક ount ન્ટ_સિડ
auth_token = સેટિંગ્સ.ટવિલિઓ_અથ_ટોકન
સોર્સ_ફોન = સેટિંગ્સ.ફોન_નમ્બર
# આ કોડ ટ્વેલિયો સાથે ટેક્સ્ટ મોકલે છે
DEF SEND_TEXT (લક્ષ્ય_ફોન, ટેક્સ્ટ):
Twilio.rest આયાત ક્લાયંટથી
પ્રયાસ કરો:
ક્લાયંટ = ક્લાયંટ (એકાઉન્ટ_સિડ, auth_token)
જો લેન (લક્ષ્ય_ફોન)> = 11:
સંદેશ = ક્લાયંટ.મેસેજ.ક્રેટ (
to = લક્ષ્ય_ફોન,
from_ = સોર્સ_ફોન,
શરીર = ટેક્સ્ટ)
સિવાય:
છાપો (ટ્રેસબેક.ફોર્મેટ_એક્સસી ())
# ઘણા અંકો સાથે નંબર મેળવવા માટે સહાયક કાર્ય
DEF get_num_length (num, લંબાઈ):
n = ''
રેંજ (લંબાઈ) માં x માટે:
n = n + str (num)
રીટર્ન ઇન્ટ (એન)
# વપરાશકર્તાને ચકાસવા માટે ટેક્સ્ટ મોકલો
DEF SEND_VERIFICATION_TEXT (વપરાશકર્તા):
લંબાઈ = user.profile.verification_code_length
કોડ = રેન્ડમ.રંડિન્ટ (get_num_length (1, લંબાઈ), get_num_length (9, લંબાઈ));
વપરાશકર્તા.પ્રોફાઇલ.વરિફિકેશન_કોડ = કોડ
User.profile.mfa_code_expires = ટાઇમઝોન.
વપરાશકર્તા.પ્રોફાઇલ.સેવ ()
Send_user_text (વપરાશકર્તા, "{for માટે તમારો ચકાસણી કોડ {}". ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ, એસટીઆર (કોડ)))
# વપરાશકર્તાને આ ફંક્શન સાથે કોઈપણ ટેક્સ્ટ મોકલો
DEF SEND_USER_TEXT (વપરાશકર્તા, ટેક્સ્ટ):
મોકલો_ટેક્સ્ટ (વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર, ટેક્સ્ટ)
# આ કાર્ય સાથે કોડને માન્ય કરો
ડેફ ચેક_વરિફિકેશન_કોડ (વપરાશકર્તા, કોડ):
વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_ટમ્પ્ટ્સ += 1
પરિણામ = વપરાશકર્તા.પ્રોફાઇલ.વરિફિકેશન_કોડ! = કંઈ નહીં અને કોડ!
જો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_ટમ્પ્ટ્સ <3 અને પરિણામ:
વપરાશકર્તા.પ્રોફાઇલ.અવરિફિકેશન_કોડ_લેન્થ = 6
ELIF USER.PROFILE.MFA_ATTEMPS> 2 અને પરિણામ નથી:
વપરાશકર્તા.પ્રોફાઇલ.અવરિફિકેશન_કોડ_લેન્થ = 8
વપરાશકર્તા.પ્રોફાઇલ.સેવ ()
વળતર પરિણામ
# સમય માન્ય કરો
ડેફ ચેક_વરિફિકેશન_ટાઇમ (વપરાશકર્તા):
પરિણામ = user.profile.mfa_code_expires> ટાઇમઝોન.વ ()
વળતર પરિણામબધા જરૂરી પેકેજો આયાત કરો
આ કોડ ટ્વેલિયો સાથે ટેક્સ્ટ મોકલે છેALL ALL=NOPASSWD: /bin/backup
ઘણા અંકો સાથે નંબર મેળવવા માટે સહાયક કાર્યવપરાશકર્તાને ચકાસવા માટે ટેક્સ્ટ મોકલો
વપરાશકર્તાને આ કાર્ય સાથે કોઈપણ ટેક્સ્ટ મોકલોઆ કાર્ય સાથે કોડને માન્ય કરો
સમય માન્યતમારી ચાવીઓ સાથે આ રેખાઓ ઉમેરીને, તમારી સેટિંગ્સને યોગ્ય રીતે બદલવાની ખાતરી કરો:
# તમારા ટ્વાલિયો ડેશબોર્ડથી આની ક copy પિ કરવાની ખાતરી કરો Twilio_account_sid = "" Twilio_auth_token = "" ફોન_નમ્બર = "" સાઇટ_નામ = "" Auth_valid_minutes = 3 # મિનિટની સંખ્યા TFA પૃષ્ઠ એકવાર ઇન્સ્ટન્ટ થઈ જાય છેતમારા ટ્વાલિયો ડેશબોર્ડથી આની નકલ કરવાની ખાતરી કરો
TFA પૃષ્ઠ એકવાર ઇન્સ્ટન્ટ થઈ ગયા પછી સક્રિય થાય છેપ્રથમ, અમને અમારા બે પરિબળ પ્રમાણીકરણ દૃશ્યો માટે ફોર્મ્સની જરૂર પડશે. વપરાશકર્તાઓ/ફોર્મ્સ.પી.પી., નીચેનો કોડ ઉમેરો.
#… આયાત જાંગો આયાત સ્વરૂપોથી # અમારા ફોન નંબર દાખલ કરવા માટેનું એક ફોર્મ વર્ગ ફોનેમ્બરફોર્મ (ફોર્મ્સ.ફોર્મ): ફોન_નમ્બર = ફોર્મ્સ.રેજેક્સફિલ્ડ (રેજેક્સ = આર '^\+? 1? ડેફ __init __ (સ્વ, *આર્ગ્સ, ** ક્વાર્ગ્સ): સુપર (ફોનેમ્બરફોર્મ, સ્વ) .__ ININ __ (*આર્ગ્સ, ** Kwargs) સેલ્ફ.ફિલ્ડ્સ ['ફોન_નમ્બર']. લેબલ = ફોન_નમ્બર_લેબેલ # પ્રમાણિકતા માટેનું એક ફોર્મ વર્ગ tfaform (ફોર્મ્સ.ફોર્મ): કોડ = ફોર્મ્સ.ઇંટેગરફિલ્ડ (જરૂરી = ખોટું) ડેફ __init __ (સ્વ, *આર્ગ્સ, ** ક્વાર્ગ્સ): સુપર (tfaform, સ્વ) .__ init __ (*આર્ગ્સ, ** Kwargs) સેલ્ફ.ફિલ્ડ્સ ['કોડ']. વિજેટ.એટટ્રસ.અપડેટ ({'સ્વત oc પૂર્ણ': 'બંધ'}) સહાય_ટેક્સ્ટ્સ = { 'કોડ': 'કૃપા કરીને છ અંકનો કોડ તેને ઉપરના બટન સાથે તમારા ફોન પર મોકલ્યા પછી દાખલ કરો.' .nano app/settings.py
… આયાતઅમારા ફોન નંબર દાખલ કરવા માટેનું એક ફોર્મ
પ્રમાણિકતા માટેનું એક ફોર્મઆગળ, ચાલો વપરાશકર્તાઓ/વ્યૂઝ.પી.માં દૃશ્યો બનાવીએ
#… આયાત jango.http થી આયાત થી .ફોર્મ્સ ફોનેમ્બરફોર્મ આયાત, tfaform ડેફ એમએફએ (વિનંતી, વપરાશકર્તા નામ, ટોકન): વપરાશકર્તા = વપરાશકર્તા.ઓબ્જેક્ટ્સ.ફિલ્ટર (પ્રોફાઇલ __ યુઇડ = વપરાશકર્તા નામ) .ફર્સ્ટ () જો વપરાશકર્તા નહીં: HTTPRASPONSEREDEREDER (વિપરીત ('ચકાસો: ઉંમર') + '? Next =' + વિનંતી.ગેટ.ગેટ ('નેક્સ્ટ') જો વિનંતી.ગેટ.ગેટ ('નેક્સ્ટ') બીજું '/GO/GO/GO/GO/GO/GO/GO/GO/GO/GO/GO/' User.profile.venter '/' જો Requet.user) વપરાશકર્તા = get_object_or_404 (વપરાશકર્તા, પ્રોફાઇલ __ યુઇડ = વપરાશકર્તા નામ) આગળ = વિનંતી.ગેટ.ગેટ ('આગલું', '') જો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ નથી: જો ચેક_વરિફિકેશન_ટાઇમ (વપરાશકર્તા) નહીં: User.profile.mfa_enabled = ખોટું User.profile.enable_two_factor_authentication = સાચું વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર = '+1' વપરાશકર્તા.પ્રોફાઇલ.સેવ () છાપો ('વપરાશકર્તામાં લ ging ગિંગ') auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') સંદેશાઓ. વ ing રિંગ (વિનંતી, 'કૃપા કરીને માન્ય ફોન નંબર દાખલ કરો અને તેને કોડથી ચકાસો.') રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('વપરાશકર્તાઓ: એમએફએ_ઓનબોર્ડિંગ')) જો વિનંતી.મેથોડ == 'પોસ્ટ': ફોર્મ = tfaform (વિનંતી.પોસ્ટ) કોડ = ફોર્મ.ડેટા ['કોડ'] જો કોડ અને કોડ! = '' અને કોડ! = કંઈ નહીં: ટોકન_વલિડેટેડ = વપરાશકર્તા.પ્રોફાઇલ.ચેક_અથ_ટોકન (ટોકન) p = વપરાશકર્તા.પ્રોફાઇલ is_verified = check_verific_code (વપરાશકર્તા, પૂર્ણાંક (કોડ)) p.mfa_authenticatic = is_verified જો ટોકન_વલિડેટેડ: જો IS_VERIFIED: વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ = સાચું વપરાશકર્તા.પ્રોફાઇલ.સેવ () auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') p.verfication_code = કંઈ નહીં p.uid = get_uuid () p.save () સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમે પ્રમાણિત થયા છો. સ્વાગત છે.' Qs = '?' કી માટે, વિનંતી. get.items () માં મૂલ્ય: qs = qs + કી + '=' + મૂલ્ય + 'અને' જો આગળ! = '' અને નહીં (next.startswith ('/એકાઉન્ટ્સ/લોગઆઉટ/') અથવા આગળ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એડમિન/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/રજિસ્ટર/'): પરત HTTPRASPONSEREDERT (EXT) એલિફ નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લોગઆઉટ/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટસ્વિથ ('/એકાઉન્ટ્સ/રજિસ્ટર/'): રીડાયરેક્ટ રીડાયરેક્ટ ('ફીડ: ફીડ') ELIF વિનંતી.મેટા.ગેટ ('http_referer', '/').સ્ટાર્ટ્સવિથ('/accounts/login/'): રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('ફીડ: ફીડ')) એલિફ આગળ નહીં: રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('ફીડ: ફીડ') અન્યથા: HTTPRASPONSEREDEREDER ('ફીડ: ફીડ') પરત કરો અન્યથા: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે દાખલ કરેલા કોડને માન્યતા નહોતી. કૃપા કરીને ફરીથી પ્રયાસ કરો.') Elif નથી ટોકન_ વેલિડેટેડ: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'યુઆરએલ ટોકન સમાપ્ત થઈ ગયું છે અથવા માન્યતા નથી. કૃપા કરીને ફરીથી પ્રયાસ કરો.') લોગઆઉટ (વિનંતી) રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('વપરાશકર્તાઓ: લ login ગિન')) જો p.mfa_attimp> 3: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે 3 કરતા વધુ વખત ખોટો કોડ દાખલ કર્યો છે. કૃપા કરીને તમારી જાતને એક નવો કોડ મોકલો.') p.verific_code = કંઈ નહીં p.save () elif user.profile.can_send_mfa <ટાઇમઝોન.અવ (): વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_ટમ્પ્ટ્સ = 0 User.profile.can_send_mfa = ટાઇમઝોન. વપરાશકર્તા.પ્રોફાઇલ.સેવ () મોકલો_વરિફિકેશન_ટેક્સ્ટ (વપરાશકર્તા) સંદેશાઓ.સ્યુસીસ (વિનંતી, "કૃપા કરીને તમારા ફોન નંબર પર મોકલેલો કોડ દાખલ કરો. કોડ 3 મિનિટમાં સમાપ્ત થશે.") અન્યથા: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે ઘણા બે પરિબળ પ્રમાણીકરણ કોડ્સ મોકલી રહ્યા છો. બીજો કોડ મોકલતા પહેલા થોડીવાર રાહ જુઓ.') ફોર્મ = tfaform () છુપાવો_લોગો = કંઈ નહીં જો વપરાશકર્તા.પ્રોફાઇલ.હાઇડ_લોગો: છુપાવો_લોગો = સાચું રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/mfa.html', {'શીર્ષક': 'કોડ દાખલ કરો', 'ફોર્મ', 'ફોર્મ,' xsmall ': સાચું,' વપરાશકર્તા ': વપરાશકર્તા,' છુપાવો_લોગો ': છુપાવો_લોગો,' accl_logout ': USER.PRofile.shake_to_logout,' પ્રીલોડ ':}) @login_erquided ડેફ એમએફએ_ઓનબોર્ડિંગ (વિનંતી): જો વિનંતી.મેથોડ == 'પોસ્ટ': ફોર્મ = ફોનોમ્બરફોર્મ (વિનંતી.પોસ્ટ) વિનંતી વિનંતી વિનંતી વિનંતી.યુઝર.પ્રોફાઇલ.સેવ () સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમે તમારા ખાતામાં ફોન નંબર ઉમેર્યો છે.') વપરાશકર્તા = વિનંતી રીડાયરેક્ટ રીડાયરેક્ટ (યુઝર.પ્રોફાઇલ.ક્રીએટ_અથ_રલ ())ફોર્મ = ફોનોમ્બરફોર્મ (પ્રારંભિક = {'ફોન_નમ્બર': વિનંતી.યુઝર.પ્રોફાઇલ.ફોન_નમ્બર જો વિનંતી.યુઝર.પ્રોફાઇલ.ફોન_નમ્બર બીજે '+1'}) રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/mfa_onboarding.html', {'શીર્ષક': 'તમારો ફોન નંબર દાખલ કરો', 'ફોર્મ': ફોર્મ, 'નાના':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)
… આયાતઅમને આ બંને મંતવ્યો માટે નમૂનાઓની પણ જરૂર પડશે. ચાલો પહેલા એમએફએ નમૂના ઉમેરીએ.
નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/mfa.htmlimport os
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
આ HTML કોડને નમૂનામાં ઉમેરો{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % બ્લોક સામગ્રી %} { % લોડ એપ્લિકેશન_ફિલ્ટર્સ %} { % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %} { % csrf_token %} ચકાસણી કોડ દાખલ કરો પગલું 1: કોડ મોકલો તમારો કોડ ક્યારેય કોઈની સાથે શેર ન કરો, કારણ કે તેનો ઉપયોગ તમારા એકાઉન્ટને અસ્થાયીરૂપે to ક્સેસ કરવા માટે થઈ શકે છે. આચારસંહિતા મોકલો પગલું 2: કોડ દાખલ કરો {{ફોર્મ | ક્રિસ્પી}} તમારી જાતને {{વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર | સિક્યોરફોન} at પર કોડ મોકલવા માટે એન્ટર બટન દબાવો. તે પછી, કોડ દાખલ કરો અને એન્ટર દબાવો. સંહિતા દાખલ કરો { % એન્ડબ્લોક %}
આ ખૂબ સ્વ -વર્ણનાત્મક છે. ફોર્મ ક્યાં તો કોડ અથવા ખાલી કોડ મોકલે છે, અને જો અમને ખાલી કોડ પ્રાપ્ત થાય તો અમે કોડ મોકલીએ છીએ તે દૃશ્યમાં તમે જોશો. પછી અમારી પાસે ફક્ત બે સબમિટ બટનો છે, અને આ રીતે અમે બંને બટન સાથે કોડ મોકલી શકીએ છીએ. આગળ, અમે ફોન નંબર ઉમેરવા માટે એક સરળ ફોર્મ ઉમેરીશું.નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/mfa_onboarding.html
નીચેના એચટીએમએલ ઉમેરો:sudo nano /etc/config.json
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે
{ % બ્લોક સામગ્રી %}
{ % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %}
{ % csrf_token %}
બે પરિબળ પ્રમાણીકરણ સેટ કરો
{{ફોર્મ | ક્રિસ્પી}}
ફોન નંબર ઉમેરો
{ % એન્ડબ્લોક %}આ ફોર્મ ઘણું સરળ છે, તે ફક્ત અમે બનાવેલ ફોન નંબર ફોર્મ રેન્ડર કરે છે અને વપરાશકર્તાને ફોન નંબર ઉમેરવા દે છે.
આ ખરેખર સારું લાગે છે! જ્યાં સુધી બધું યોગ્ય રીતે સેટ કરવામાં આવે ત્યાં સુધી, આપણે સંદેશા મોકલવા માટે સમર્થ હોવા જોઈએ, અને યુઆરએલ પેટર્ન ઉમેરતાંની સાથે જ વપરાશકર્તાને તેમના ફોન નંબર સાથે લ log ગ ઇન કરવા જોઈએ. છેલ્લી વસ્તુ જે આપણે સેટ કરવાની જરૂર છે તે એક પ્રોફાઇલ વ્યૂ છે તેથી અમે ખાતરી કરી શકીએ કે વપરાશકર્તા લ logged ગ ઇન થયા વિના તેમના ફોન નંબરને બદલી શકે છે. આખરે આપણે "સ્ટોપ ટુ ક્વિટ" વિકલ્પ ઉમેરવા માંગીએ છીએ, જેથી વપરાશકર્તા ભાવિ ટેક્સ્ટ સંદેશાઓને પસંદ કરવા માટે "સ્ટોપ" ટેક્સ્ટ કરી શકે.{
"EMAIL_HOST_PASSWORD": "<some password here>"
}
ચાલો વપરાશકર્તાઓ/વ્યૂઝ.પી.માં પ્રોફાઇલ દૃશ્ય ઉમેરીએ. આ દૃશ્ય વપરાશકર્તાના બાયો, ઇમેઇલ, વપરાશકર્તા નામ અને ફોન નંબરને અપડેટ કરશે, તેમજ અમને મલ્ટિ ફેક્ટર ઓથેન્ટિકેશનને સક્ષમ કરવાની મંજૂરી આપશે. પ્રથમ, અમને વપરાશકર્તાઓ/ફોર્મ્સમાં વધુ બે સ્વરૂપોની જરૂર પડશે#... આયાત વર્ગ યુઝરઅપડેટફોર્મ (ફોર્મ્સ.ઓડફોર્મ): ઇમેઇલ = ફોર્મ્સ.મેઇલફિલ્ડ () વર્ગ મેટા: મોડેલ ફીલ્ડ્સ = ['વપરાશકર્તા નામ', 'ઇમેઇલ'] ફોન_નમ્બર_લેબેલ = 'ફોન નંબર (કોઈ જગ્યાઓ, કૌંસ \' (\ 'અથવા ડ ash શ \'-\ ', ફક્ત + થી શરૂ થતા નંબરો)' વર્ગ પ્રોફાઇલઅપડેટફોર્મ (ફોર્મ્સ.ઓડલ્ફોર્મ): સબ્સ્ક્રાઇબ = ફોર્મ્સ.બુલિયનફિલ્ડ (જરૂરી = ખોટું) ફોન_નમ્બર = ફોર્મ્સ.ચફિલ્ડ (જરૂરી = ખોટું) ડેફ __init __ (સ્વ, *આર્ગ્સ, ** ક્વાર્ગ્સ): સુપર (પ્રોફાઇલઅપડેટફોર્મ, સ્વ) .__ ININ __ (*આર્ગ્સ, ** Kwargs) વર્ગ મેટા: મોડેલ = પ્રોફાઇલ ફીલ્ડ્સ = ['બાયો', 'ફોન_નમ્બર', 'સક્ષમ_એમએફએ', 'સબ્સ્ક્રાઇબ']
... આયાતnano users/templates/users/verification_email.html
આગળ, અમે આ બંને સ્વરૂપોનો ઉપયોગ કરવા માટે એક દૃશ્ય બનાવી શકીએ છીએ. વપરાશકર્તાઓ/વ્યૂ.પી.પી.ને સંપાદિત કરો અને દૃશ્યમાં ઉમેરો.
# આ આયાત ઉમેરો
માંથી .ફોર્મ્સ યુઝરઅપડેટફોર્મ, પ્રોફાઇલઅપડેટફોર્મ આયાત કરો
jango.views.decorators.cache આયાત નેવર_કેશથી
jango.views.decorators.csrf આયાતથી csrf_exempt
. મોડલ્સ આયાત પ્રોફાઇલથી
.mfa આયાતથી SEND_USER_TEXT થી
@CSRF_EXEMPEMPT
@never_cache
@login_erquided
ડેફ પ્રોફાઇલ (વિનંતી):
જો વિનંતી.મેથોડ == 'પોસ્ટ':
યુ_ફોર્મ = યુઝરઅપડેટફોર્મ (વિનંતી.પોસ્ટ, દાખલા = વિનંતી.યુઝર)
p_form = પ્રોફાઇલઅપડેટફોર્મ (વિનંતી.પોસ્ટ,
વિનંતી.ફાઇલ્સ,
દાખલો = વિનંતી.યુઝર.પ્રોફાઇલ)
જો u_form.is_valid () અને p_form.is_valid ():
નવું_ફોન_નમ્બર = p_form.data ['ફોન_નમ્બર']
u_form.save ()
પ્રોફાઇલ = p_form.save (પ્રતિબદ્ધ = ખોટું)
પ્રોફાઇલ.ફોન_નમ્બર = પ્રોફાઇલ.
પ્રોફાઇલ.સેવ ()
જો નવું_ફોન_નમ્બર!
પ્રોફાઇલ.એમએફએ_એનએબલ = સાચું
પ્રોફાઇલ.સેવ ()
મોકલો_ટેક્સ્ટ (ઓલ્ડપ્રોફાઇલ.ફોન_નમ્બર, 'તમારો ફોન નંબર' + નવા_ફોન_નમ્બર + 'પર અપડેટ કરવામાં આવ્યો છે. કૃપા કરીને તે ફોન પરના પાઠોનો સંદર્ભ લ log ગ ઇન કરવા માટે. જો તમે આ ફેરફાર કર્યો ન હોય, તો કૃપા કરીને અમને ક call લ કરો. - {}'. ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ))
જો પ્રોફાઇલ.એનબલ_ટ્વો_ફેક્ટર_અથેન્ટિકેશન અને પ્રોફાઇલ.ફોન_નમ્બર અને લેન (પ્રોફાઇલ.ફોન_નમ્બર) <11:
પ્રોફાઇલ.એનબલ_ટ્વો_ફેક્ટર_અથેન્ટિકેશન = ખોટું
સંદેશાઓ.સ્યુસીસ (વિનંતી, ftwo પરિબળ પ્રમાણીકરણ કોઈ ફોન નંબર દાખલ કર્યા વિના સક્રિય કરી શકાતું નથી. કૃપા કરીને બે પરિબળ પ્રમાણીકરણને સક્ષમ કરવા માટે ફોન નંબર દાખલ કરો. ')
પ્રોફાઇલ.સેવ ()
જો નવું_ફોન_નમ્બર!
SEND_USER_TEXT (વિનંતી.યુઝર, 'તમે બે પરિબળ પ્રમાણીકરણ માટે આ નંબર {} માં ઉમેર્યો છે. હવે તમે તમારા નંબરનો ઉપયોગ બે પરિબળ પ્રમાણીકરણ માટે કરી શકો છો. જો તમે આ ફેરફાર કર્યો નથી, તો કૃપા કરીને અમને ક call લ કરો. - {}'. ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ, સેટિંગ્સ.ડોમેઇન))
પ્રોફાઇલ.એમએફએ_એનએબલ = સાચું
પ્રોફાઇલ.એમએફએ_કોડ_એક્સપાયર્સ = ટાઇમઝોન.નવ () + ડેટટાઇમ.ટાઇમડેલ્ટા (મિનિટ = 3)
પ્રોફાઇલ.સેવ ()
રીડાયરેક્ટ (પ્રોફાઇલ.ક્રિએટ_અથ_ર્લ ())
સંદેશાઓ.સ્યુસીસ (વિનંતી, તમારી પ્રોફાઇલને અપડેટ કરવામાં આવી છે! ')
છાપો ('પ્રોફાઇલ અપડેટ')
રીડાયરેક્ટ પરત કરો ('વપરાશકર્તાઓ: પ્રોફાઇલ')
અન્યથા:
યુ_ફોર્મ = યુઝરઅપડેટફોર્મ (ઉદાહરણ = વિનંતી.યુઝર)
p_form = પ્રોફાઇલઅપડેટફોર્મ (દાખલા = વિનંતી.યુઝર.પ્રોફાઇલ, પ્રારંભિક = {'ફોન_નમ્બર': વિનંતી.અસ.પ્રોફાઇલ.ફોન_નમ્બર જો વિનંતી.યુઝર.પ્રોફાયલ.ફોન_નમ્બર બીજે '+1'})
સંદર્ભ = {
'યુ_ફોર્મ': યુ_ફોર્મ,
'પી_ફોર્મ': પી_ફોર્મ,
'શીર્ષક': 'તમારી પ્રોફાઇલ અપડેટ કરો',
.
રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/પ્રોફાઇલ. Html', સંદર્ભ)આ આયાત ઉમેરો
અમને આ દૃષ્ટિકોણ માટે નમૂનાની પણ જરૂર પડશે.SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'
BASE_URL = PROTOCOL + '://' + DOMAIN
નેનો વપરાશકર્તાઓ/નમૂનાઓ/વપરાશકર્તાઓ/પ્રોફાઇલ.{ % "આધાર. Html" %} વિસ્તૃત કરે છે { % લોડ ક્રિસ્પી_ફોર્મ્સ_ટેગ્સ %} {% લોડ ફીડ_ફિલ્ટર્સ%} { % બ્લોક સામગ્રી %} તમારી પ્રોફાઇલ સંપાદિત કરો { % csrf_token %} પ્રોફાઇલ માહિતી {{u_form | ક્રિસ્પી}} {{પી_ફોર્મ | ક્રિસ્પી}} અપડેટ} બચાવેલો { % એન્ડબ્લોક સામગ્રી %} { % બ્લોક જાવાસ્ક્રિપ્ટ %} var ફોર્મ = દસ્તાવેજ.ગેટ એલિમેન્ટબાઇડ ('પ્રોફાઇલ-ફોર્મ'); $ ('ઇનપુટ'). બદલો (ફંક્શન () { var ફોર્મડેટા = નવું ફોર્મડેટા (ફોર્મ); $ .ajax ({ URL: વિંડો.લોકેશન.હરેફ, પ્રકાર: "પોસ્ટ", ડેટા: ફોર્મડેટા, પ્રોસેસડેટા: ખોટું, કન્ટેન્ટટાઇપ: ખોટું, સમયસમાપ્તિ: 1000 * 60, સફળતા: કાર્ય (ડેટા) { $ (પોસ્ટ) .રેમોવેક્લાસ ("છુપાવો"); સેટટાઇમઆઉટ (ફંક્શન () { $ (પોસ્ટ) .એડીડીક્લાસ ("ફેડ-છુપાયેલા"); સેટટાઇમઆઉટ (ફંક્શન () { $ (પોસ્ટ) .એડીડીક્લાસ ("છુપાવો"); $ (પોસ્ટ) .રેમોવેક્લાસ ("ફેડ-છુપાયેલા"); ;, 2000); ;, 2000); . ;); ;); { % એન્ડબ્લોક %}
તમે જોશો કે આ એકદમ સરળ ફોર્મ છે, પરંતુ તેમાં કેટલીક જાવાસ્ક્રિપ્ટ છે જે ફોર્મની સામગ્રીને અપડેટ કરવામાં આવે છે તે આપમેળે પોસ્ટ કરે છે. આ માટે ઉપયોગી છે, તેથી તમે દર વખતે સબમિટ કર્યા વિના સંપાદનો કરવામાં સક્ષમ છો.આગળ, અમને વપરાશકર્તાઓ URL પેટર્સમાં આ બધા મંતવ્યોનું પ્રતિનિધિત્વ કરતા URL ની જરૂર છે. વપરાશકર્તાઓ/urls.py ને સંપાદિત કરો અને આ કોડ ઉમેરો:
#… પાછલો કોડ, આયાત જાંગો.અર્લ્સ આયાત પાથથી થી. આયાત દૃશ્યો app_name = 'વપરાશકર્તાઓ' urlpattrns = [ #… URL દાખલાઓ અમે અગાઉ દાખલ કર્યા, આગલી ત્રણ લાઇનો ઉમેરો પાથ ('એમએફએ ///', views.mfa, નામ = 'એમએફએ'), પાથ ('એમએફએ/board નબોર્ડિંગ/', views.mfa_onboarding, નામ = 'mfa_onboarding'), પાથ ('પ્રોફાઇલ/', વ્યૂ. પ્રોફાઇલ, નામ = 'પ્રોફાઇલ'), ]nano users/tokens.py
… પાછલો કોડ, આયાત… યુઆરએલ દાખલાઓ અમે અગાઉ દાખલ કર્યા છે, આગલી ત્રણ લાઇનો ઉમેરો
અમારા પ્રોજેક્ટને ચકાસવા માટે હવે સારો સમય છે. પરંતુ પ્રથમ, ચાલો બીજો બેકઅપ ચલાવીએ.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()
પીઠઅને સર્વર ચલાવો. અમે લિનક્સ સર્વર પર જમાવટ કરતા પહેલા, એકાઉન્ટ પર બે પરિબળ પ્રમાણીકરણને સક્ષમ કરવું તે એક સારો વિચાર છે. અમે આ અમારા પ્રોફાઇલ URL,/વપરાશકર્તાઓ/પ્રોફાઇલ/પર જઈશું અને અમારા ફોન નંબર દાખલ કર્યા પછી પ્રમાણીકરણને સક્ષમ કરવા અને પછી ફોર્મ સબમિટ કરવા માટે બ checking ક્સને ચકાસીશું.
પાયથોન મેનેજ કરો.પી રનસર્વર લોકલહોસ્ટ: 8000તમારા વેબ બ્રાઉઝર પર જઈને વેબપેજની મુલાકાત લો, હું આ ઉદાહરણમાં ગૂગલ ક્રોમનો ઉપયોગ કરી રહ્યો છું, અને URL https: // સ્થાનિકહોસ્ટ: 8000/એકાઉન્ટ્સ/પ્રોફાઇલ દાખલ કરી રહ્યો છું
જો જરૂરી હોય તો તમે લ log ગ ઇન કરી શકશો અને બે પરિબળ પ્રમાણીકરણને સક્ષમ કરશો.nano users/email.py
આ પ્રોજેક્ટને ચલાવવા માટે સર્વરની જરૂર છે જેથી તે ખરેખર મેઇલ મોકલી શકે. પરંતુ પ્રથમ, અમને ભૂલો જોવાની રીતની જરૂર છે. તમે જોશો કે જો તમે ડિબગ મોડમાં સર્વર ચલાવો છો, સેટિંગ્સ સાથે. ડીબગ મોડનો ઉપયોગ કર્યા વિના ભૂલો બતાવવા માટે, જે પ્રોડક્શન સર્વર પર અસુરક્ષિત છે, આપણે તેના માટે દૃશ્ય ઉમેરવું જોઈએ. આપણે સંભાળવા માટે સક્ષમ થવાની સૌથી મહત્વપૂર્ણ ભૂલો આ છે:ભૂલ 500 - અમારા કોડની સમસ્યા ભૂલ 404 - એક પૃષ્ઠ જે મળ્યું ન હતું (તૂટેલું URL) ભૂલ 403 - એક પરવાનગી ભૂલ નકારી
ચાલો આ ભૂલોને હેન્ડલ કરવા માટે નવી એપ્લિકેશન ઉમેરીએ, જેને ભૂલો કહેવામાં આવે છે.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)
પાયથોન મેનેજ કરો.પી. સ્ટાર્ટએપ ભૂલોસેટિંગ્સમાં આ ઉમેરો. ઇન્સ્ટોલ કરેલા_ એપ્સ સેટિંગમાં, જેમ કે આપણે પહેલાં કર્યું હતું, અને એપ્લિકેશન/urls.py માં કેટલાક દૃશ્યોમાં સંદર્ભો ઉમેરીને પ્રારંભ કરો, જ્યાં એપ્લિકેશન તમારા જાંગો પ્રોજેક્ટનું નામ છે.
હેન્ડલર 404 = 'ભૂલો.વ્યુ.હેન્ડલર 404' હેન્ડલર 500 = 'ભૂલો.વ્યુ.હેન્ડલર 500' હેન્ડલર 403 = 'ભૂલો.વ્યુ.હેન્ડલર 403'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()
ભૂલના દૃશ્યો, નમૂનાઓ અને થોડુંક મિડલવેર ઉપરાંત આપણને આ બધું જોઈએ છે. ચાલો તેને તેથી વ્યાખ્યાયિત કરીએ:jango.shortcuts આયાત રેન્ડરથી, રીડાયરેક્ટ jango.http થી આયાત httpresponse સ્ટેકટ્રેસ.ઓડલ્સ આયાત ભૂલથી ભૂલોથી. મિડલવેર આયાત get_current_exception jango.contrib.auth.decorators થી આયાત લ login ગિન_પ્રાપ્તિથી jango.contrib.auth.decorators થી આયાત વપરાશકર્તા_પાસ_ટેસ્ટથી .logs આયાત get_logs ફેસ.ટેસ્ટ્સથી આયાત IS_SUPERUSER_OR_VENDOR છે jango.views.decorators.csrf આયાતથી csrf_exempt ભૂલોથી. હાઇલાઇટ આયાત હાઇલાઇટ_કોડ જાંગો.શોર્ટકટ્સથી આયાત રીડાયરેક્ટ jango.urls માંથી આયાત verse લટું # તમારા મંતવ્યો અહીં બનાવો. @login_erquided @user_passes_test (is_superuser_or_vendor) ડેફ લ s ગ્સ (વિનંતી): લ s ગ્સ = હાઇલાઇટ_કોડ (get_logs ()) રીટર્ન રેન્ડર (વિનંતી, 'ભૂલો/live_error.html', {'શીર્ષક': 'ભૂલ લ s ગ્સ', 'પેજેટિટલ': 'એરર લોગ', 'નોંધો': 'આ તાજેતરના ભૂલ લોગ છે.', 'ટ્રેસ': લોગ, 'સંપૂર્ણ': સાચું}) @login_erquided @user_passes_test (is_superuser_or_vendor) ડેફ લોગ_એપીઆઈ (વિનંતી): લ s ગ્સ = હાઇલાઇટ_કોડ (get_logs ()) રીટર્ન HTTPRESPONSE (લ s ગ્સ) @login_erquided ડેફ હેન્ડલર 404 (વિનંતી, અપવાદ): જો વિનંતી નથી. path.endswith ('/'): રીડાયરેક્ટ રીડાયરેક્ટ (વિનંતી.પથ + '/') રીટર્ન રેન્ડર (વિનંતી, 'ભૂલો/ભૂલ. ડેફ હેન્ડલર 500 (વિનંતી): છાપો (get_current_exception ()) વપરાશકર્તા = કંઈ નહીં જો હસટર (વિનંતી, 'વપરાશકર્તા') અને વિનંતી.યુઝર અને વિનંતી.યુઝર.આઇએસ_અથેન્ટેટેડ: વપરાશકર્તા = વિનંતી પ્રયાસ કરો: ભૂલ. Objects.create (વપરાશકર્તા = વપરાશકર્તા, stack_trace = get_current_exception (), નોંધો = '500 હેન્ડલર દ્વારા લ logged ગ કરેલા.') સિવાય: પાસ રીટર્ન રેન્ડર (વિનંતી, 'ભૂલો/ભૂલ. ડેફ હેન્ડલર 403 (વિનંતી, અપવાદ): રીટર્ન રેન્ડર (વિનંતી, 'ભૂલો/ભૂલ. ડેફ હેન્ડલર 400 (વિનંતી, અપવાદ): રીટર્ન રેન્ડર (વિનંતી, 'ભૂલો/ભૂલ.
તમારા મંતવ્યો અહીં બનાવો.આગળ, ચાલો આ ભૂલોને હેન્ડલ કરવા માટે મિડલવેરને વ્યાખ્યાયિત કરીએ. અમે અમારા મિડલવેરના નામ સાથે સેટિંગ્સ.પી.માં મિડલવેર_ક્લાસમાં પ્રથમ ઉમેરીને આ કરીશું.
મિડલવેર_ વર્ગો = [ #... પાછલું મિડલવેર 'ભૂલો.મિડલવેર.એક્સેપ્શનવરબોઝમિડલવેર, ]... પાછલું મિડલવેર
આગળ, ચાલો મિડલવેર ઉમેરીએ.nano users/models.py
થ્રેડીંગ લોકલ થ્રેડીંગ માંથી
આયાત ટ્રેસબેક
jango.utils.deprecation થી આયાત મિડલવેરમિક્સિન
_અરર = સ્થાનિક ()
વર્ગ અપવાદનર્બોઝમિડલવેર (મિડલવેરમિક્સિન):
ડેફ પ્રોસેસ_એક્સેપ્શન (સ્વ, વિનંતી, અપવાદ):
_error.value = ટ્રેસબેક.ફોર્મેટ_એક્સસી ()
ડેફ get_current_exception ():
પ્રયાસ કરો:
પાછા _error.value
એટ્રિબ્યુટર સિવાય:
પાછું નહીં
DEF SET_CURRENT_EXCEPTENCE (અપવાદ):
પ્રયાસ કરો:
_error.value = અપવાદ
એટ્રિબ્યુટર સિવાય:
છાપો ('એટ્રિબ્યુટ ભૂલ સેટિંગ અપવાદ.')# અમે થ્રેડીંગ લોકલનો ઉપયોગ કરીને વર્તમાન અપવાદ મેળવવા માટે એક ફંક્શન ઉમેરીએ છીએ, જે અમને અમારા કોડમાં કોઈપણ ભૂલોને ટ્રેસ કરવામાં મદદ કરે છે. નમૂનાઓની દ્રષ્ટિએ, આપણને ફક્ત એક જ જરૂર છે, કારણ કે આપણે દૃષ્ટિકોણમાં ગતિશીલ રીતે શીર્ષક વ્યાખ્યાયિત કરીએ છીએ. નમૂનાને ફક્ત શીર્ષક અને "ટ્રેસ" રેન્ડર કરવાની જરૂર છે, સંદર્ભમાંથી અમારી ભૂલ ટ્રેસબેક.
નેનો ભૂલો/નમૂનાઓ/ભૂલો/ભૂલ. Html{ % 'આધાર. Html' %} વિસ્તૃત કરે છે { % બ્લોક સામગ્રી %} {{પેજટાઇટલ}} {{ટ્રેસ}} { % એન્ડબ્લોક %}
આ હજી અમારું સરળ નમૂના છે, પરંતુ તે આપણા પ્રોજેક્ટમાં ભૂલો જોવી તે કેટલું સરળ છે. આગળ, ચાલો સેટિંગ્સમાં ડિબગને અક્ષમ કરીએ.# નેનો એપ્લિકેશન/સેટિંગ્સ.પી
TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # આ વાક્ય જ્યાં તે સાચું પર સેટ કરેલું છે તે શોધો, અને તેને ખોટામાં બદલો
ડીબગ = ખોટુંઆગળ વધો અને હવે એપ્લિકેશનને બેકઅપ લો. અમે રિમોટ લિનક્સ સર્વર પર જમાવટ કરવા માટે તૈયાર છીએ, અને ત્યાંથી સુવિધાઓ ઉમેરવાનું ચાલુ રાખીએ છીએ.
સુડો બેકઅપઅમે આ કોડને સર્વર પર પોસ્ટ કરીએ તે પહેલાં, આપણે ધ્યાનમાં લેવું જોઈએ કે કોડમાં કેટલાક મુદ્દાઓ હોઈ શકે છે. કેસના આધારે, તેમને પોસ્ટ કરેલી માહિતીને સ્વીકારે છે તે સ્પામ પોસ્ટ કરવામાં આવશે અને સ્પામને દૂર કરવામાં મુશ્કેલી હશે. આ તરત જ ન થવું જોઈએ, પરંતુ જો તે થઈ રહ્યું છે, તો અમે પછીથી તપાસ કરીશું કે સાઇટ પર આપમેળે સ્પામ કેવી રીતે મધ્યમ કેવી રીતે કરવું અને રોબોટ્સને સાઇટને access ક્સેસ કરવા માટે, કેવી રીતે વપરાશકર્તા એકાઉન્ટ્સને નિષ્ક્રિય કરવું, અને ફિંગરપ્રિન્ટ અથવા ચહેરાના માન્યતા જેવા બાયોમેટ્રિક સ્કેન સાથે વપરાશકર્તાની ઓળખ કેવી રીતે ચકાસી શકાય.
મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન ઉદાહરણને જોતા અમે તપાસ કરી, ઉત્પાદનમાં, વસ્તુઓ અલગ હોઈ શકે છે. નોંધ લો કે આપણે કેવી રીતે લ log ગિન મર્યાદિત કરી રહ્યા છીએ, અને ટોકન્સને સમાપ્ત કરી રહ્યા છીએ. જો રોબોટ્સ કોઈ સાઇટને access ક્સેસ કરી રહ્યાં છે, તો બે પરિબળ પ્રમાણીકરણ વધુ મુશ્કેલ હોઈ શકે છે કારણ કે તે વપરાશકર્તા છે તે જ સમયે કોડ્સ દાખલ કરી શકે છે. આનો સામનો કરવા માટે, ચાલો વપરાશકર્તા મ models ડેલોમાં એક મોડેલનો ઉપયોગ કરીએ, જ્યારે અમે ફોન નંબર સાથે મલ્ટિ ફેક્ટર ઓથેન્ટિકેશનનો ઉપયોગ કરીને પ્રમાણિત કરીએ છીએ ત્યારે અમે સાઇટ સાથે કેવી રીતે સંપર્ક કરીએ છીએ તે જાહેર કરીને. અમે ઇમેઇલ સાથે પ્રમાણિત કરવા માટે એક વિકલ્પ પણ ઉમેરીશું. નેનો સાથે વપરાશકર્તા મ models ડેલોને સંપાદિત કરીને પ્રારંભ કરો.nano users/views.py
નેનો વપરાશકર્તાઓ/મોડેલો.પીઆ તે છે જે આપણે ઉમેરી રહ્યા છીએ તે જેવું હોવું જોઈએ. અમને કોઈ પદ્ધતિની જરૂર નથી, ફક્ત આઈડી સ્ટોર કરવા માટે ફક્ત ચલો, વપરાશકર્તા, ટાઇમસ્ટેમ્પ, સમાપ્તિ, લંબાઈ અને કોઈપણ મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન સામેના પ્રયત્નો (ફોન અથવા ઇમેઇલ પર મોકલેલા 123456 જેવા કોડ).
# વેબસાઇટ પર લ log ગ ઇન કરવા માટે વપરાયેલ મૂળભૂત ટોકન વર્ગ mfatoken (મોડેલો.મોડેલ): વપરાશકર્તા = મોડલ્સ.ફોરેઇંગકી (વપરાશકર્તા, ઓન_ડિલેટ = મોડલ્સ.કેસ્કેડ, સંબંધિત_નામ = 'એમએફએ_ટોકન્સ') ટાઇમસ્ટેમ્પ = મોડેલો.ડેટટાઇમફિલ્ડ (ડિફોલ્ટ = ટાઇમઝોન.અવ) સમાપ્ત થાય છે = મોડેલો.ડેટટાઇમફિલ્ડ (ડિફ default લ્ટ = ટાઇમઝોન.અવ) ટોકન = મોડેલ્સ.ચફિલ્ડ (ડિફ default લ્ટ = '', મહત્તમ_લેન્થ = 100) લંબાઈ = મોડેલ્સ.ઇંટરફિલ્ડ (ડિફ default લ્ટ = 6) પ્રયત્નો = મોડેલો.ઇંટરફિલ્ડ (ડિફોલ્ટ = 0) uid = models.charfield (ડિફ default લ્ટ = uuid.uuid4, મહત્તમ_લેન્થ = 100)from .email import send_verification_email # વેબસાઇટ પર લ log ગ ઇન કરવા માટે વપરાયેલ મૂળભૂત ટોકન
ચાલો અમારા વપરાશકર્તાને એક લહાવો પણ ઉમેરીએ, અને આખરે વિશેષાધિકૃત વપરાશકર્તાઓને આપમેળે સૂચિબદ્ધ કરવા માટે સ્થળાંતર કરતા પહેલા, અમે તેને હમણાં માટે જાતે જ સેટ કરીશું. વપરાશકર્તા મ models ડેલોમાં, પ્રોફાઇલમાં આ વાક્ય ઉમેરો:વિક્રેતા = મોડેલો.બુલિયનફિલ્ડ (ડિફોલ્ટ = ખોટું)
ડેટાબેઝમાં કોઈપણ ફેરફારોની જેમ, આપણે જ્યારે પણ જાંગોમાં મોડેલો.પી ફાઇલને સંપાદિત કરીએ છીએ ત્યારે કોઈપણ સમયે ડેટાબેઝને સ્થળાંતર કરવાની અને સ્થાનાંતરિત કરવાની જરૂર છે. યાદ રાખો, આ કરવા માટે આપણે પહેલા સ્રોતનો ઉપયોગ કરીએ છીએ (જો તે ટર્મિનલ ખુલ્લો હતો ત્યારથી પહેલાથી ઉપયોગમાં લેવામાં આવ્યો નથી) અને પછી પાયથોનનું સંચાલન અને સ્થળાંતર કરવા માટે.સીડી પ્રોજેક્ટ-ડિરેક્ટરી-તમે નામવાળી # (જો જરૂરી હોય તો) સોર્સ વેન્વ/ડબ્બા/સક્રિય પાયથોન મેનેજ કરો.પી.કેમિગ્રેશન્સ && પાયથોન મેનેજ કરો.પી.
(જો જરૂરી હોય તો) # હમણાં માટે, તમે શેલનો ઉપયોગ કરીને વિક્રેતાઓ તરીકે બનાવેલા કોઈપણ એકાઉન્ટ્સની નોંધણી કરી શકો છો.
# પાયથોન મેનેજ.પી શેલ
વપરાશકર્તાઓ તરફથી. મોડલ્સ આયાત પ્રોફાઇલ
p = પ્રોફાઇલ. objects.get (user__username = 'ચાર્લોટ')
p.vendor = સાચું
p.save ()
બહાર નીકળો
# હવે, ચાલો આ ટોકનનો ઉપયોગ કરવા માટે અમારા મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન વ્યૂને વિકસિત કરીએ. પ્રથમ, આપણે અમારી એમએફએ સહાયક ઉપયોગિતાઓમાં ફેરફાર કરવાની જરૂર છે. નેનોનો ઉપયોગ કરીને,
નેનો વપરાશકર્તાઓ/એમએફએ.પી.પી.jango.utils માંથી આયાત ટાઇમઝોન આયાત કરો આયાત -તારીખ સમય જાંગો.કોનફ આયાત સેટિંગ્સથી ફીડ.મિડલવેરથી આયાત get_current_request માંથી jango.contrib દ્વારા આયાત સંદેશાઓથી .મેઇલ આયાત HTTML_EMAL માંથી આયાત ટ્રેસબેક થી .મોડેલ્સ આયાત mfatoken એકાઉન્ટ_સિડ = સેટિંગ્સ.ટવિલિઓ_એક ount ન્ટ_સિડ auth_token = સેટિંગ્સ.ટવિલિઓ_અથ_ટોકન સોર્સ_ફોન = સેટિંગ્સ.ફોન_નમ્બર DEF SEND_TEXT (લક્ષ્ય_ફોન, ટેક્સ્ટ): Twilio.rest આયાત ક્લાયંટથી પ્રયાસ કરો: ક્લાયંટ = ક્લાયંટ (એકાઉન્ટ_સિડ, auth_token) જો લેન (લક્ષ્ય_ફોન)> = 11: સંદેશ = ક્લાયંટ.મેસેજ.ક્રેટ ( to = લક્ષ્ય_ફોન, from_ = સોર્સ_ફોન, શારીરિક = ટેક્સ્ટ + 'રદ કરવા માટે ટેક્સ્ટ સ્ટોપ.') સિવાય: સંદેશાઓ. વ ing રિંગ (get_current_request (), 'સંદેશ મોકલવામાં ભૂલ આવી.') છાપો (ટ્રેસબેક.ફોર્મેટ_એક્સસી ()) DEF get_num_length (num, લંબાઈ): n = '' રેંજ (લંબાઈ) માં x માટે: n = n + str (num) રીટર્ન ઇન્ટ (એન) DEF SEND_VERIFICATION_TEXT (વપરાશકર્તા, ટોકન): લંબાઈ = user.profile.verification_code_length કોડ = રેન્ડમ.રંડિન્ટ (get_num_length (1, લંબાઈ), get_num_length (9, લંબાઈ)); ટોકન.ટોકન = કોડ ટોકન. ટોકન.સેવ () Send_user_text (વપરાશકર્તા, "{for માટે તમારો ચકાસણી કોડ {}". ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ, એસટીઆર (કોડ))) DEF SEND_VERIFICATION_EMAL (વપરાશકર્તા, ટોકન): લંબાઈ = user.profile.verification_code_length કોડ = રેન્ડમ.રંડિન્ટ (get_num_length (1, લંબાઈ), get_num_length (9, લંબાઈ)); ટોકન.ટોકન = કોડ ટોકન. ટોકન.સેવ () _HTML_EMAL (વપરાશકર્તા, "{for માટે તમારો ચકાસણી કોડ {}" છે. ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ, એસટીઆર (કોડ)), "પ્રિય {}, {for માટે તમારો ચકાસણી કોડ {} છે. તમારા એકાઉન્ટને સુરક્ષિત કરવા માટે આ કોડનો ઉપયોગ કરવા બદલ આભાર. str (કોડ), str (કોડ), સેટિંગ્સ.સાઇટ_નામ)) DEF SEND_USER_TEXT (વપરાશકર્તા, ટેક્સ્ટ): મોકલો_ટેક્સ્ટ (વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર, ટેક્સ્ટ) ડેફ ચેક_વરિફિકેશન_કોડ (વપરાશકર્તા, ટોકન, કોડ): ટોકન.એટમ્પ્ટ્સ = ટોકન.એટમ્પ્ટ્સ + 1 પ્રોફાઇલ = વપરાશકર્તા.પ્રોફાઇલ પરિણામ = (ટોકન! = કંઈ નહીં અને કોડ! = 'અને ટોકન.ટોકન == કોડ અને (ટોકન.એક્સપાયર્સ> ટાઇમઝોન.વ ()) અને ટોકન.એટમ્પ્ટ્સ <= સેટિંગ્સ.એમએફએ_ટોકન_ટમ્પ્ટ્સ) જો ટોકન.એટમ્પ્ટ્સ <3 અને પરિણામ: પ્રોફાઇલ.અવરિફિકેશન_કોડ_લેન્થ = 6 ELIF ટોકન.એટમ્પ્ટ્સ> 1 અને પરિણામ નથી: પ્રોફાઇલ.અવરિફિકેશન_કોડ_લેન્થ = પ્રોફાઇલ.વરિફિકેશન_કોડ_લેન્થ + 2 જો પ્રોફાઇલ.અવરિફિકેશન_કોડ_લેન્થ> સેટિંગ્સ.એમએફએ_ટોકન_લેન્થ: પ્રોફાઇલ.વરિફિકેશન_કોડ_લેન્થ = સેટિંગ્સ.એમએફએ_ટોકન_લેન્થ ટોકન.સેવ () પ્રોફાઇલ.સેવ () વળતર પરિણામ
# વપરાશકર્તાને તેમના ઇમેઇલ અથવા ફોન નંબરનો ઉપયોગ કરીને પ્રમાણિત કરો ડેફ એમએફએ (વિનંતી, વપરાશકર્તા નામ, વપરાશકર્તા): ટોકન = mfatoken.objects.filter (UID = વપરાશકર્તા નામ, સમાપ્ત થાય છે __gt = ટાઇમઝોન. જો ટોકન નથી: ટોકન = mfatoken.objects.create (વપરાશકર્તા = વપરાશકર્તા.ઓબેક્ટ્સ.ફિલ્ટર (પ્રોફાઇલ __UUID = વપરાશકર્તા નામ) .ફર્સ્ટ (), યુઆઈડી = વપરાશકર્તા નામ, સમાપ્ત થાય છે = ટાઇમઝોન.ઉ () + ડેટટાઇમ. વપરાશકર્તા = user.objects.filter (id = toke.user.id) .ફર્સ્ટ () # વપરાશકર્તાને ટોકનમાંથી મેળવો જો વપરાશકર્તા અને વિનંતી નથી. user.is_authenticated: રીટર્ન રીડાયરેક્ટ (રિવર્સ ('ફીડ: હોમ')) # જો તેઓ પહેલાથી પ્રમાણિત છે, તો તેમને લ log ગ ઇન કરો જો નહીં તો વપરાશકર્તા: જો કોઈ વપરાશકર્તા ન મળ્યો હોય તો પરવાનગી () ના નામંજૂર કરો આગળ = વિનંતી.ગેટ.ગેટ ('આગલું', '') જો નહીં. auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') # જો તેઓ પહેલાથી લ logged ગ ઇન ન હોય તો વપરાશકર્તાને લ log ગ ઇન કરો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એક્સપાયર્સ = ટાઇમઝોન.નવ () + ડેટટાઇમ.ટાઇમડેલ્ટા (મિનિટ = સેટિંગ્સ.લોગિન_વિલિડ_મિન્યુટ્સ) # તેમના મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન પર સમાપ્તિ સેટ કરો વપરાશકર્તા.પ્રોફાઇલ.સેવ () HTTPREPONSEREDEREDERTER પર પાછા ફરો (આગળ જો આગળ! = '' બીજું વિપરીત ('લેન્ડિંગ: લેન્ડિંગ')) # વપરાશકર્તાને આગલા પૃષ્ઠ પર રીડાયરેક્ટ કરો જો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ નથી: # એમએફએ સક્ષમ છે કે નહીં તે તપાસો જો ચેક_વરિફિકેશન_ટાઇમ (વપરાશકર્તા, ટોકન) નહીં: # સમય તપાસો વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ = ખોટું # ફોન નંબર સાફ કરો User.profile.enable_two_factor_authentication = સાચું # એમએફએ સક્ષમ કરો વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર = '+1' # ફોન નંબરને અક્ષમ કરો વપરાશકર્તા.પ્રોફાઇલ.સેવ () # પ્રોફાઇલ સાચવો auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') # જો તેમના એમએફએ સક્ષમ ન હોય તો વપરાશકર્તાને લ log ગ ઇન કરો સંદેશાઓ. વ ing રિંગ (વિનંતી, 'કૃપા કરીને માન્ય ફોન નંબર દાખલ કરો અને તેને કોડથી ચકાસો.') રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('વપરાશકર્તાઓ: એમએફએ_ઓનબોર્ડિંગ')) જો વિનંતી.મેથોડ == 'પોસ્ટ' અને છેતરપિંડી_ડિટેક્ટ (વિનંતી, સાચું) નહીં: # જો વિનંતી પોસ્ટ વિનંતી છે ફોર્મ = ટીએફફોર્મ (વિનંતી.પોસ્ટ) # ફોર્મ ઇન્સ્ટન્ટ કરો કોડ = str (ફોર્મ.ડાટા.ગેટ ('કોડ', કંઈ નહીં)) # કોડ મેળવો જો કોડ અને કોડ! = '' અને કોડ! = કંઈ નહીં: # ખાતરી કરો કે તે ખાલી નથી ટોકન_વલિડેટેડ = વપરાશકર્તા.પ્રોફાઇલ.ચેક_અથ_ટોકન (યુઝરટોકન) # ઓથ ટોકન તપાસો p = વપરાશકર્તા.પ્રોફાઇલ is_verified = check_verific_code (વપરાશકર્તા, ટોકન, કોડ) # કોડ તપાસો p.mfa_authenticatic = is_verified જો ટોકન_વલિડેટેડ: # જો બધું જો is_verified: # ક્રમમાં છે વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_એનએબલ = સાચું # એમએફએ સક્ષમ કરો (જો પહેલાથી સક્ષમ નથી) વપરાશકર્તા.પ્રોફાઇલ.સેવ () auth_login (વિનંતી, વપરાશકર્તા, બેકએન્ડ = 'jango.contrib.auth.backends.modelband') # વપરાશકર્તામાં લ log ગ ઇન કરો ચહેરો = user.faces.filter (સત્ર_કી = કંઈ નહીં) .LAST () p.mfa_expire = timezone.now () + datetime.timedelta (મિનિટ = સેટિંગ્સ.લોગિન_વલિડ_મિન્યુટ્સ) p.save () સંદેશાઓ.સ્યુસીસ (વિનંતી, 'તમે પ્રમાણિત થયા છો. સ્વાગત છે.' Qs = '?' કી માટે, વિનંતી. get.items () માં મૂલ્ય: # આગલા પરિમાણ માટે ક્વેરીસ્ટ્રિંગ બનાવો (જો કોઈ હોય તો) qs = qs + કી + '=' + મૂલ્ય + 'અને' જો આગળ! = '' અને નહીં (next.startswith ('/એકાઉન્ટ્સ/લોગઆઉટ/') અથવા આગળ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એડમિન/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/રજિસ્ટર/'): HTTPRASPONSEREDIRT (આગળ) પરત કરો # રીડાયરેક્ટ કરો એલિફ નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લોગઆઉટ/') અથવા નેક્સ્ટ.સ્ટાર્ટ્સવિથ ('/એકાઉન્ટ્સ/લ login ગિન/') અથવા નેક્સ્ટ.સ્ટાર્ટસ્વિથ ('/એકાઉન્ટ્સ/રજિસ્ટર/'): રીડાયરેક્ટ પરત કરો (વિપરીત ('/')) ELIF વિનંતી.મેટા.ગેટ ('http_referer', '/').સ્ટાર્ટ્સવિથ('/accounts/login/'): રીડાયરેક્ટ પરત કરો (વિપરીત ('/')) એલિફ આગળ નહીં: રીડાયરેક્ટ પરત કરો (વિપરીત ('/')) અન્યથા: HTTPREPONSEREDEREDER (વિપરીત ('ચકાસો: વય') + '? નેક્સ્ટ =' + વિનંતી.મેટા.ગેટ ('http_referer', '/') અન્યથા: સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે દાખલ કરેલા કોડને માન્યતા નહોતી. કૃપા કરીને ફરીથી પ્રયાસ કરો.') એલિફ ટોકન_ વેલિડેટેડ નથી: # જો ટોકન અમાન્ય હતું સંદેશાઓ. વ ing રિંગ (વિનંતી, 'યુઆરએલ ટોકન સમાપ્ત થઈ ગયું છે અથવા માન્યતા નથી. કૃપા કરીને ફરીથી પ્રયાસ કરો.') લોગઆઉટ (વિનંતી) રીડાયરેક્ટ રીડાયરેક્ટ (વિપરીત ('વપરાશકર્તાઓ: લ login ગિન')) જો p.mfa_attimp> 3: # જો ત્યાં ઘણા બધા પ્રયત્નો થયા હતા સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે3 કરતા વધુ વખત ખોટો કોડ દાખલ કર્યો છે. કૃપા કરીને તમારી જાતને એક નવો કોડ મોકલો. ') p.verific_code = કંઈ નહીં p.save () elif user.profile.can_send_mfa <ટાઇમઝોન.અવ (): વપરાશકર્તા.પ્રોફાઇલ.એમએફએ_ટમ્પ્ટ્સ = 0 User.profile.can_send_mfa = ટાઇમઝોન. વપરાશકર્તા.પ્રોફાઇલ.સેવ () જો ફોર્મ.ડાટા.ગેટ ('સેન્ડ_મેઇલ', ખોટું): # ઇમેઇલ મોકલો (અથવા ટેક્સ્ટ) મોકલો_એમએફએ_વરિફિકેશન_મેઇલ (વપરાશકર્તા, ટોકન) અન્યથા: મોકલો_વરિફિકેશન_ટેક્સ્ટ (વપરાશકર્તા, ટોકન) સંદેશાઓ.સ્યુસીસ (વિનંતી, "કૃપા કરીને તમારા ફોન નંબર અથવા ઇમેઇલ પર મોકલેલો કોડ દાખલ કરો. કોડ 3 મિનિટમાં સમાપ્ત થશે.") elif user.profile.can_send_mfa <ટાઇમઝોન.નવ () + ડેટટાઇમ.ટાઇમડેલ્ટા (સેકંડ = 115): સંદેશાઓ. વ ing રિંગ (વિનંતી, 'તમે ઘણા બે પરિબળ પ્રમાણીકરણ કોડ્સ મોકલી રહ્યા છો. બીજો કોડ મોકલતા પહેલા થોડીવાર રાહ જુઓ.') ફોર્મ = tfaform () છુપાવો_લોગો = કંઈ નહીં જો વપરાશકર્તા.પ્રોફાઇલ.હાઇડ_લોગો: છુપાવો_લોગો = સાચું જો વિનંતી.યુઝર.આઇએસ_અથેન્ટેટેડ: રીડાયરેક્ટ (રિવર્સ ('/') પરત કરો # ફોર્મ રેન્ડર કરો (વિનંતીઓ મેળવો) રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/mfa.html', {'શીર્ષક': 'કોડ દાખલ કરો', 'ફોર્મ', 'ફોર્મ,' xsmall ': સાચું,' વપરાશકર્તા ': વપરાશકર્તા,' છુપાવો_લોગો ': છુપાવો_લોગો,' accl_logout ': વપરાશકર્તા.પ્રોફાઇલ.શેક_લોગઆઉટ,' પ્રીલોડ ':'nano users/views.py
વપરાશકર્તાને તેમના ઇમેઇલ અથવા ફોન નંબરનો ઉપયોગ કરીને પ્રમાણિત કરો# URL માં પસાર કરેલા મૂલ્ય દ્વારા ટોકનને ફિલ્ટર કરો (યુયુઆઈડી)
# જો આ સત્ર બનાવવામાં આવ્યું નથી, તો તેને બનાવો
ટોકનમાંથી વપરાશકર્તા મેળવોજો તેઓ પહેલાથી પ્રમાણિત છે, તો તેમને લ log ગ ઇન કરો
જો કોઈ વપરાશકર્તા ન મળે તો નામંજૂર કરો# ઓથ ટોકન તપાસો
send_verification_email(user) # જો તેઓ પહેલાથી લ logged ગ ઇન ન હોય તો વપરાશકર્તાને લ log ગ ઇન કરો
તેમના મલ્ટિ ફેક્ટર પ્રમાણીકરણ પર સમાપ્તિ સેટ કરોવપરાશકર્તાને આગલા પૃષ્ઠ પર રીડાયરેક્ટ કરો
એમએફએ સક્ષમ છે કે નહીં તે તપાસો# સમય તપાસો
ફોન નંબર સાફ કરોએમએફએ સક્ષમ કરો
ફોન નંબર અક્ષમ કરોnano users/templates/users/resend_activation.html
પ્રોફાઇલ સાચવોવપરાશકર્તાને લ log ગ ઇન કરો જો તેમનો એમએફએ સક્ષમ નથી
જો વિનંતી પોસ્ટ વિનંતી છે
ફોર્મ ઇન્સ્ટન્ટ કરોકોડ મેળવો
ખાતરી કરો કે તે ખાલી નથી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)
ઓથ ટોકન તપાસોકોડ તપાસો
જો બધું
ક્રમમાં છેએમએફએને સક્ષમ કરો (જો પહેલાથી સક્ષમ નથી)
વપરાશકર્તાને લ log ગ ઇન કરોઆગલા પરિમાણ માટે ક્વેરીસ્ટ્રિંગ બનાવો (જો કોઈ હોય તો)
રી -રીગવુંજો ટોકન અમાન્ય હતું
જો ત્યાં ઘણા પ્રયત્નો થયા# ઇમેઇલ મોકલો (અથવા ટેક્સ્ટ)
ફોર્મ રેન્ડર કરો (વિનંતીઓ મેળવો)જ્યારે અમે આ કોડમાં ઉમેરી રહ્યા છીએ, ત્યારે ઇમેઇલ મોકલવા માટે ફંક્શન આયાત કરવાની ખાતરી કરો. ફાઇલની ટોચ પર, વપરાશકર્તા દૃશ્યો (અન્ય આયાત સાથે), ઉમેરો
.mfa આયાતથી Send_verific_mail તરીકે સેન્ડ_એમએફએ_વરિફિકેશન_મેઇલ તરીકે
હવે, આમાંના કોઈપણ કાર્ય કરશે તે પહેલાં આપણે તે કાર્ય લખવાની જરૂર છે. તે અમારા મોકલો ઇમેઇલ ફંક્શનને વિસ્તૃત કરવું જોઈએ, અને ફક્ત ચકાસણી કોડ સાથે વપરાશકર્તાને ઇમેઇલ મોકલો.નેનો વપરાશકર્તાઓ/એમએફએ.પી.પી.
DEF SEND_VERIFICATION_EMAL (વપરાશકર્તા, ટોકન): લંબાઈ = user.profile.verification_code_length કોડ = રેન્ડમ.રંડિન્ટ (get_num_length (1, લંબાઈ), get_num_length (9, લંબાઈ)); ટોકન.ટોકન = કોડ ટોકન. ટોકન.સેવ () _HTML_EMAL (વપરાશકર્તા, "{for માટે તમારો ચકાસણી કોડ {}" છે. ફોર્મેટ (સેટિંગ્સ.સાઇટ_નામ, એસટીઆર (કોડ)), "પ્રિય {}, {for માટે તમારો ચકાસણી કોડ {} છે. તમારા એકાઉન્ટને સુરક્ષિત કરવા માટે આ કોડનો ઉપયોગ કરવા બદલ આભાર. str (કોડ), str (કોડ), સેટિંગ્સ.સાઇટ_નામ))
તેથી આ બધું સરસ કાર્ય કરે છે, હવે અમારી પાસે મલ્ટિ ફેક્ટર ઓથેન્ટિકેશન સિસ્ટમ છે જે લ log ગ ઇન કરવા માટે ફોન નંબર અથવા ઇમેઇલ પર આધારિત છે. પરંતુ અમને દૂર કરવાની રીતની પણ જરૂર છે, અથવા ઓછામાં ઓછા વપરાશકર્તાઓને છુપાવનારા જે અમારી શરતો સાથે સહયોગ નથી કરતા. આ સ્પામર્સ, રોબોટ્સ અથવા કોઈપણ હોઈ શકે છે જેનો અર્થ આપણા કામ માટે સારો નથી. મારી વેબસાઇટ પર વપરાશકર્તાઓને મોનિટર કરવા માટે મારી પાસેના દૃશ્ય પર એક નજર નાખો:# આયાત jango.contrib.auth.decorators થી આયાત લ login ગિન_પ્રાપ્તિથી jango.contrib.auth.decorators થી આયાત વપરાશકર્તા_પાસ_ટેસ્ટથી .સ્ટેસ્ટ્સ આયાત IS_SUPERUSER_OR_VENDOR # આપણે આ પરીક્ષણ બનાવવાની જરૂર રહેશે @login_erquided @user_passes_test (is_superuser_or_vendor) ડેફ વપરાશકર્તાઓ (વિનંતી): # વપરાશકર્તાઓની સૂચિ મેળવો new_today = user.objects.filter (is_active = true, date_joined__gte = ટાઇમઝોન. new_this_month = user.objects.filter (is_active = true, date_joined__gte = ટાઇમઝોન. સબ્સ્ક્રાઇબર્સ = વપરાશકર્તા.ઓબજેક્ટ્સ.ફિલ્ટર (is_active = સાચું, પ્રોફાઇલ __સુબ્સ્ક્રિપ્ટ = સાચું) .ક ount ન્ટ () રીટર્ન રેન્ડર (વિનંતી, 'વપરાશકર્તાઓ/વપરાશકર્તાઓ. 'શીર્ષક': 'બધા એકાઉન્ટ્સ', 'વપરાશકર્તાઓ': વપરાશકર્તા.ઓબજેક્ટ્સ. બધા (), 'New_today': new_today, 'new_this_month': નવું_થિસ_મોન, 'સબ્સ્ક્રાઇબર્સ': સબ્સ્ક્રાઇબર્સ }))
આયાત
આપણે આ પરીક્ષણ બનાવવાની જરૂર રહેશેવપરાશકર્તાઓની સૂચિ મેળવો
નમૂનામાં વપરાશકર્તાઓને પરત કરો
નોંધ લો કે આ કોડ પરીક્ષણનો ઉપયોગ કરે છે, આપણે આ પરીક્ષણને પરીક્ષણો.પી. ફાઇલમાં જાહેર કરવાની અને તેને આયાત કરવાની જરૂર રહેશે. વપરાશકર્તાઓ/પરીક્ષણોનું સંપાદન કરવું, ચાલો પરીક્ષણ બનાવીએ.DEF IS_SUPERUSER_OR_VENDOR (વપરાશકર્તા): વપરાશકર્તા.પ્રોફાઇલ.વેન્ડર અથવા વપરાશકર્તા.આઇએસ_સ્યુપર્યુઝર પરત કરો
આ વપરાશકર્તાઓ/વપરાશકર્તાઓ. Html નમૂના સાથે જોડાણમાં છે, જે આ કંઈક લાગે છે:
{ % 'આધાર. Html' %} વિસ્તૃત કરે છે
{ % લોડ એપ્લિકેશન_ફિલ્ટર્સ %}
{ % બ્લોક સામગ્રી %}
બધા નોંધાયેલા મુલાકાતીઓ
.
વપરાશકર્તાઓમાં વપરાશકર્તા માટે % %}
{ % માં 'વપરાશકર્તાઓ/_user.html' %} શામેલ છે
{ % એન્ડફોર %}
{ % એન્ડબ્લોક %}વપરાશકર્તા.એચટીએમએલ. જ્યારે સબટેમ્પલેટ હોય અને તે લંબાઈનો ઉપયોગ ન કરતા નમૂનાનો ઉપયોગ કરતી વખતે, અન્ડરસ્કોર ઉમેરવા માટે તે સારો વિચાર છે (
નોંધ લો કે આ ઘણું જિંજા છે, તમારી પાસે આ બધા ચલો વ્યાખ્યાયિત ન હોય. પરંતુ આ મારો કોડ જેવો દેખાય છે. # { % લોડ એપ્લિકેશન_ફિલ્ટર્સ %}
@.
છેલ્લે {{User.profile.last_seen | તારીખ: "F d, y"}} {{User.profile.last_seen | સમય: "H: i"}}
{{User.profile.date_joined | તારીખ: "F d, y"}} {{User.profile.date_joined | સમય: "એચ: આઇ"}} પર જોડાયો
{{વપરાશકર્તા.મેઇલ}}
{ % જો વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર %} {{વપરાશકર્તા.પ્રોફાઇલ.ફોન_નમ્બર}} { % એન્ડિફ %}
User % જો વપરાશકર્તા.અવરિફિકેશન.લાસ્ટ %}
'{{વપરાશકર્તા.વરિફિકેશન.લાસ્ટ.ફુલ_નામ}}'
. User વપરાશકર્તા.અવરિફિકેશન.લાસ્ટ.ડ oc ક્યુમેન્ટ_નમ્બર}}
.
ઘેરો
અણીદાર
{ % એન્ડિફ %}
#{{વપરાશકર્તા.આઇડી}}
{ % જો વપરાશકર્તા.પ્રોફાઇલ.સબ્સ્ક્રાઇબ કરે છે %} સબ્સ્ક્રાઇબ { % અન્ય %} સબ્સ્ક્રાઇબ નથી { % એન્ડિફ %}
{ %જો વપરાશકર્તા.આઇએસ_સ્યુપર્યુઝર %}
{ % માં 'વપરાશકર્તાઓ/togle_active.html' % નો સમાવેશ થાય છે
{ % એન્ડિફ %}
%% ઓટોસ્કેપ %}
{{વપરાશકર્તા.બિઓ}}
{ % એંડ્યુટોસ્કેપ %}
User % જો વપરાશકર્તા.પ્રોફાઇલ.ડેન્ટિટી_વરિફાઇડ %} ચકાસાયેલ વપરાશકર્તા. { % અન્ય %} અનવરિફાઇડ વપરાશકર્તા.
.અમને બીજી સબટેમ્પલેટ, ટ g ગલ_એક્ટિવ. Html ની પણ જરૂર છે. આ નમૂના એક એવું સ્વરૂપ હોવું જોઈએ જે વપરાશકર્તા સક્રિય છે કે નહીં તે અમને ટ g ગલ કરવાની મંજૂરી આપે છે.
{ % જો વપરાશકર્તા.આઇએસ_એક્ટિવ %} { % અન્ય %} { % એન્ડિફ %}આપણે વપરાશકર્તા પ્રવૃત્તિ અને યોગ્ય URL દાખલાઓને ટ g ગલ કરવા માટે એક દૃશ્ય ઉમેરવાની પણ જરૂર રહેશે. જ્યારે આપણે તેના પર હોઈએ છીએ, ચાલો જો અમને જરૂર હોય તો વપરાશકર્તાને કા delete ી નાખવા માટે એક દૃશ્ય ઉમેરીએ.
jango.views.decorators.csrf આયાતથી csrf_exempt @CSRF_EXEMPEMPT @login_erquided @user_passes_test (is_superuser_or_vendor) Def togle_user_active (વિનંતી, પીકે): વપરાશકર્તા = user.objects.get (id = pk) જો વિનંતી.મેથોડ == 'પોસ્ટ': વપરાશકર્તા.આઇએસ_એક્ટિવ = વપરાશકર્તા નથી. આઇએસ_એક્ટિવ વપરાશકર્તા.સેવ () HTTPRESPONSE પરત કરો ('' જો વપરાશકર્તા.આઇએસ_એક્ટિવ બીજું '') # આયાત jango.contrib.auth.mixins માંથી આયાત લ login ગિનરીક્વેર મિક્સિન, યુઝર પાસસ્ટેસ્ટમિક્સિન jango.views.generic આયાત કા delete ી નાખવાથી વર્ગ યુઝરડિલેટીવ્યુ (લ login ગિનરીક્વેર્કીડ મિક્સિન, યુઝરપાસસ્ટેસ્ટમિક્સિન, ડિલીટ વ્યૂ): મોડેલ સફળતા_ર્લ = '/' # સફળતા URL પર રીડાયરેક્ટ ડેફ get_context_data (સ્વ, ** Kwargs): સંદર્ભ = સુપર (). get_context_data (** kwargs) વળતર સંદર્ભ ડેફ ટેસ્ટ_ફંક (સ્વ): # પરીક્ષણ જો વપરાશકર્તા સુપરયુઝર છે અને તેને કા delete ી નાખવાની પરવાનગી છે વપરાશકર્તા = self.get_object () જો self.request.user! = વપરાશકર્તા અને self.request.user.is_superuser: સાચું પાછું ખોટુંઆયાત
સફળતા URL પર રીડાયરેક્ટ# જો વપરાશકર્તા સુપરયુઝર હોય અને તેને કા delete ી નાખવાની પરવાનગી હોય તો પરીક્ષણ કરો
# જ્યારે જરૂરી હોય ત્યારે આ વ્યવહારુ હોય, ત્યારે વપરાશકર્તાને કા ting ી નાખવા માટે, મોટાભાગે જરૂરી ન હોવું જોઈએ, અમે ફક્ત વપરાશકર્તાઓની દૃશ્યતાને ટ g ગલ કરી શકીએ છીએ જેઓ તેમને બરતરફ કરવાની જરૂર હોય તો સાઇટની મુલાકાત લે છે.
# અમે ઉમેર્યા છે તે URL દાખલાઓ આના જેવા દેખાય છે. નેનો સાથે, વપરાશકર્તાઓ/urls.py ને સંપાદિત કરો અને આ રેખાઓ ઉમેરો:
TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # નેનો વપરાશકર્તાઓ/urls.py
લાઇનો વપરાશકર્તા દૃશ્યોના માર્ગોની સૂચિમાં હોવી જોઈએ, અંત પહેલા "]" પરંતુ શરૂઆત પછી "[".#… પાથ ('વપરાશકર્તા // કા Delete ી નાંખો/', વપરાશકર્તા ડિલેટીવ્યુ.એએસ_વ્યુ (Template_Name = 'બ્લોગ/વપરાશકર્તા_કોનફર્મ_ડેલેટ.એચટીએમએલ'), નામ = 'ડિલીટ-યુઝર'), પાથ ('વપરાશકર્તા // સક્રિય/', views.toggle_user_active, નામ = 'ટ g ગલ-વપરાશકર્તા-સક્રિય'), #…
…source venv/bin/activate
python manage.py makemigrations && python manage.py migrate
…હવે, સાઇટનો બેકઅપ લેવાની ખાતરી કરો જેથી તમે તેને વેબ સર્વર પર ડાઉનલોડ કરી શકો કે અમે કામ કરવાનું ચાલુ રાખીશું. આદેશ વાક્યમાંથી,
સુડો બેકઅપહવે અમારી સાઇટનો બેકઅપ લેવામાં આવ્યો છે.
તેથી હવે અમારી પાસે કેટલીક વધુ ઉપયોગી સુવિધાઓ છે. પરંતુ અહીં મોટા ચિત્રનું શું? આ કોડ હજી પણ ઇન્ટરનેટથી access ક્સેસિબલ નથી, અમારી પાસે હજી સુધી કોઈ મેઇલ સર્વર નથી, અને વિશેષાધિકૃત વપરાશકર્તાઓને પ્રમાણિત કરવા માટે સુરક્ષિત પ્રોટોકોલ સાથે, સાઇટની શોધખોળ કરવામાં મદદ કરવા માટે, અમારી પાસે વ્યાપક ચકાસણી પ્રક્રિયા તેમજ સરળ લેઆઉટનો સમાવેશ કરવા માટે અમારી એપ્લિકેશનને વિસ્તૃત કરવાની જરૂર છે.# અમે આ બધાને મળીશું. હમણાં માટે સૌથી અગત્યની બાબત ફક્ત આ કોડ getting નલાઇન મેળવશે, જે અમે ઉબુન્ટુ સર્વર પર બાશની કેટલીક લાઇનો સાથે કરી શકીએ છીએ. તમારે આ માટે સર્વર ભાડે લેવાની જરૂર રહેશે, સિવાય કે તમારી પાસે ઘરે સર્વર અને વ્યવસાય ઇન્ટરનેટ સબ્સ્ક્રિપ્શન હોય જે તમને બંદરો ખોલવાની મંજૂરી આપે. હું મારા એપાર્ટમેન્ટમાં ઇન્સ્ટોલ કરેલી એચપી ઝેડ 440 પર વ્યક્તિગત રૂપે મારી વેબસાઇટ ચલાવું છું, પરંતુ વર્ચુઅલ પ્રાઇવેટ સર્વર (વીપીએસ) ભાડે લેવાની મૂળભૂત જરૂરિયાતો માટે તે સામાન્ય રીતે સસ્તી હોય છે.
if user and user.profile.can_login < timezone.now(): # ધ્યાનમાં રાખો કે હવે આપણે જે કોડ ચલાવી રહ્યા છીએ તે પ્રમાણમાં પાતળા છે, આપણે ઉત્પાદન બનાવવાનું છે તેનો ઉપયોગ કરવા માટે તૈયાર થાય તે પહેલાં તેને જાળવવાની અને સુધારવાની જરૂર રહેશે. ઇન્ટરનેટ સાથે તમે શું કરો છો તેની કાળજી લેવાની ખાતરી કરો, ખાતરી કરો કે જો તમે આ સાઇટને લિનક્સ સર્વર પર વેબ પર સાર્વજનિક રૂપે જમાવટ કરો છો, તો તમારી વેબસાઇટ સાથે અનિચ્છનીય ક્રિયાપ્રતિક્રિયાઓને અવરોધિત કરવાની તમારી યોજના છે. આ સંભવિત સમસ્યા નહીં હોય, પરંતુ અમે મશીન લર્નિંગ, કૃત્રિમ બુદ્ધિ અને કમ્પ્યુટર વિઝન સહિત આનો સામનો કરવા માટે વિવિધ ઉકેલો પર ધ્યાન આપીશું. જ્યારે તે કોઈ સમસ્યા બની જાય છે, ત્યારે સમાધાન માટે આ ટેક્સ્ટમાં વધુ જુઓ.
# વી.પી.એસ. ભાડે આપવાની બાબતમાં, ત્યાં ઘણી બધી જગ્યાઓ છે જે તમે જઈ શકો છો. ગૂગલ ક્લાઉડમાં વીપીએસ સર્વર્સ, આયનોસ, કામટેરા, એમેઝોન એડબ્લ્યુએસ અને વધુ પ્રદાતાઓ ક્લાઉડ સર્વર સોલ્યુશન્સ પ્રદાન કરે છે જે આપણી જરૂરિયાતોને અનુરૂપ રહેશે.
return redirect(user.profile.create_auth_url()) # તમારે તેમના ફોર્મ્સ દ્વારા ક્લિક કરવાની અને પ્રારંભ કરવા માટે કોઈ યોજના પસંદ કરવાની જરૂર પડશે. તમે કોઈપણ પ્રદાતા સાથે મૂળભૂત યોજના સાથે જઈ શકો છો, પરંતુ ખાતરી કરો કે પ્રદાતા તમને ઇમેઇલ મોકલવા માટે પોર્ટ મેઇલ સર્વર બંદરો ખોલવાની મંજૂરી આપે છે (આ પોર્ટ 587 અને પોર્ટ 25 હોવું જોઈએ), કેટલાક પ્રદાતાઓ આ બંદરોને અવરોધે છે. અત્યાર સુધીમાં મને આયનોસ અને કામટેરા સાથેનો શ્રેષ્ઠ અનુભવ મળ્યો છે, તે બંને મને અમર્યાદિત ઇમેઇલ મોકલવાની મંજૂરી આપશે અને તેમની કિંમત ખૂબ સસ્તી છે.
else: # તમે તમારા નવા સર્વરથી એસએસએચ અથવા સિક્યુર શેલ નામના પ્રોટોકોલથી કનેક્ટ થશો, જે તમને તમારા વ્યક્તિગત કમ્પ્યુટરથી, તમારા વ્યક્તિગત કમ્પ્યુટરની જેમ સર્વર સાથે દૂરસ્થ ઇન્ટરફેસ કરવાની મંજૂરી આપે છે. જ્યારે તમે સર્વર સેટ કરો છો, ત્યારે હોસ્ટિંગ પ્રદાતા તમને એસએસએચ કી ઉમેરવા માટે કહેશે, અથવા તેઓ તમને વપરાશકર્તા નામ અને પાસવર્ડ આપશે. એસએસએચ કી એ છે કે તમે કોડને સંપાદિત કરવા માટે કમાન્ડ લાઇનથી સર્વર પર કેવી રીતે લ log ગ ઇન કરશો. એસએસએચ કી બનાવવા માટે નીચેના એસએસએચ-કીજેન વિકલ્પોનો ઉપયોગ કરો.
else: # keyક-Keygen
user = User.objects.filter(username=username).first() # ફાઇલ સાચવો અને જો તમને જરૂર હોય તો તેને ફરીથી લખો, જો તમારી પાસે પહેલાથી ન હોય તો તમારી એસએસએચ કીઓ ફેરવવી સારી છે. હવે, તમે તમારી એસએસએચ કી જોવા માટે નીચેના આદેશનો ઉપયોગ કરી શકો છો. તમે તેને તમારા રિમોટ સર્વર પર ક copy પિ કરવા માંગો છો જેથી તમે તેનો ઉપયોગ પ્રમાણિત કરવા માટે કરી શકો.
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # બિલાડી ~/.ssh/id_rsa.pub
જો તમે તે આદેશ ટાઇપ કરતી વખતે એસએસએચ કી જોઈ શકશો નહીં ("એસએસએચ-આરએસએ એએએ" થી શરૂ થતા અંકો અને અક્ષરોની લાંબી તાર), આરએસએ કી ઉત્પન્ન કરવાનો પ્રયાસ કરો (તેઓ વધુ સુરક્ષિત છે, તેથી હું તેનો ઉપયોગ કરવાની સલાહ આપીશ.) નીચેનો કોડ 4096 બીટ આરએસએ એસએસએચ કી જનરેટ કરશે.ssh -keygen -t rsa -b 4096
ઉબુન્ટુ ચલાવતા વી.પી. બનાવો, જો કે તમે આ કરવાની યોજના ઘડી રહ્યા છો. એકવાર તમે પ્રદાતાઓ વેબસાઇટ (કામેટેરા ડોટ કોમ, આયનોસ.કોમ અથવા સમાન) પરના ફોર્મ્સ દ્વારા ક્લિક કરીને વીપીએસ બનાવ્યા પછી, તમે લ log ગ ઇન કરવા માંગો છો. આ કરવા માટે, તમારા આઇપી સરનામાં સાથે એસએસએચ આદેશનો ઉપયોગ કરો (સરનામું જે xx.xx.xx.xx જેવું લાગે છે). અમે બનાવેલા સર્વર પર ડિફ default લ્ટ વપરાશકર્તા નામ પ્રત્યે પણ તમારે સંવેદનશીલ રહેવાની જરૂર છે, ઉદાહરણ તરીકે, ઉબુન્ટુ.ssh ubuntu@xx.xx.xx.xx
તમને પાસવર્ડ માટે પૂછવામાં આવી શકે છે, જો તમને પાસવર્ડ પૂછવામાં આવે છે, તો તેને દાખલ કરો. અમે ડિફ default લ્ટ વપરાશકર્તા નામનો ઉપયોગ કરીશું નહીં, તેથી ચાલો એક નવો વપરાશકર્તા બનાવીને અને તેમના ખાતામાં એસએસએચ કી ઉમેરીને પ્રારંભ કરીએ.nano users/sms.py
ચાલો નવી એસએસએચડી_કોનફિગ ફાઇલ ઉમેરીને પ્રારંભ કરીએ, જે સર્વરને એસએસએચનો ઉપયોગ કેવી રીતે કરવો તે કહે છે.# નેનો sshd_config
# # આ એસએસએચડી સર્વર સિસ્ટમ-વ્યાપક રૂપરેખાંકન ફાઇલ છે. જોવા મળવું
વધુ માહિતી માટે # sshd_config (5).
# આ એસએસએચડી પાથ =/યુએસઆર/સ્થાનિક/એસબીઆઇએન:/યુએસઆર/સ્થાનિક/બિન:/યુએસઆર/એસબીઆઇએન:/યુએસઆર/બિન:/એસબીઆઇએન:/બિન:/યુએસઆર/રમતો સાથે સંકલિત કરવામાં આવ્યું હતું.
# ડિફ default લ્ટ sshd_config માં મોકલવામાં આવેલા વિકલ્પો માટે વપરાયેલી વ્યૂહરચના
# ઓપનશ એ તેમના ડિફ default લ્ટ મૂલ્ય સાથે વિકલ્પોનો ઉલ્લેખ કરવો છે
# શક્ય, પરંતુ તેમને ટિપ્પણી છોડી દો. અસામાન્ય વિકલ્પો ઓવરરાઇડ
# ડિફોલ્ટ મૂલ્ય.
#પોર્ટ 22
#એડ્રેસફેમિલી કોઈપણ
#લિસ્ટેનાડ્રેસ 0.0.0.0
#લિસ્ટેનાડ્રેસ ::
#હોસ્ટકી/વગેરે/ssh/ssh_host_rsa_key
#હોસ્ટકી/વગેરે/ssh/ssh_host_ecdsa_key
#હોસ્ટકી/વગેરે/ssh/ssh_host_ed25519_key
# સાઇફર્સ અને કીિંગ
#રેકિલિમિટ ડિફ default લ્ટ કંઈ નહીં
# લ ging ગિંગ
#Syslogfacility લેખ
#Loglevel માહિતી
# પ્રમાણીકરણ:
#લોગિંગ્રેસટાઇમ 2 એમ
#પરમિટ્રૂટલોગિન પ્રતિબંધિત-પાસવર્ડ
#સ્ટ્રીટમોડ્સ હા
#Maxauthtries 6
#Maxssions 10
પબકેઆથેન્ટિકેશન હા
# અપેક્ષા .ssh/અધિકૃત_કીઝ 2 ભવિષ્યમાં ડિફ default લ્ટ રૂપે અવગણવામાં આવશે.
અધિકૃતકીઝફાઇલ .ssh/અધિકૃત_કીઝ .ssh/અધિકૃત_કી 2
#અધિકૃત પ્રિન્સિપલ્સફાઇલ કંઈ નહીં
#Authorizedkeyscommand કંઈ નહીં
#Authorizedkeyscommanduser કોઈ
# આ કામ કરવા માટે તમારે/etc/ssh/ssh_known_hosts માં હોસ્ટ કીની પણ જરૂર પડશે
#હોસ્ટબેસ્ડ at થેન્ટિકેશન નં
# હા પર બદલો જો તમને ~/.ssh/જાણીતા_હોસ્ટ્સ પર વિશ્વાસ ન હોય તો
# હોસ્ટબેઝથેન્ટિકેશન
#Ignoreuserknownhosts નં
# વપરાશકર્તાની ~/.rhosts અને ~/.shosts ફાઇલો વાંચશો નહીં
#આયર્નરહોસ્ટ્સ હા
# ટનલેડ સ્પષ્ટ ટેક્સ્ટ પાસવર્ડ્સને અક્ષમ કરવા માટે, અહીં કોઈ બદલો નહીં!
પાસવર્ડઆથેન્ટિકેશન નં
#પરમિટિમ્પ્ટસવર્ડ્સ નં
ચેલેન્જ-રિસ્પોન્સ પાસવર્ડ્સને સક્ષમ કરવા માટે # હા પર બદલો (સાથેના મુદ્દાઓથી સાવચેત રહો
# કેટલાક પામ મોડ્યુલો અને થ્રેડો)
Kbdinteractiveathentication નં
# કર્બરોઝ વિકલ્પો
#Kerberosauthentication નં
#Kerberosorlocalpasswd હા
#Kerberosticketcleanup હા
#Kerberosgetafstoken નં
# Gssapi વિકલ્પો
#GSSAPIATHENTICTICTION નંબર
#GSSAPICLEANUPCREDENTINES હા હા
#GSSAPISTECTECEPTORCHECK હા
#Gssapikeyexchange No
# ને PAM પ્રમાણીકરણ, એકાઉન્ટ પ્રોસેસિંગ, સક્ષમ કરવા માટે 'હા' પર સેટ કરો
# અને સત્ર પ્રક્રિયા. જો આ સક્ષમ છે, તો પામ પ્રમાણીકરણ કરશે
# KBDINTERACTIVEATHENTICTION અને દ્વારા મંજૂરી આપવામાં આવશે
# પાસવર્ડ authentication. તમારા પામ ગોઠવણી પર આધાર રાખીને,
# KBDINTERACTIVEATHENTICTION દ્વારા PAM પ્રમાણીકરણ બાયપાસ કરી શકે છે
# "પરમિટરૂટલોગિન વિના-પાસવર્ડ" ની સેટિંગ.
# જો તમને ફક્ત PAM એકાઉન્ટ અને સત્રની તપાસ વિના ચાલવા માંગતા હોય તો
# પામ પ્રમાણીકરણ, પછી આને સક્ષમ કરો પરંતુ પાસવર્ડ at થેન્ટિકેશન સેટ કરો
# અને 'ના' માટે KBDINTERACTIVEATHENTICTION.
ઉપયોગપેમ હા
#એલોવેજન્ટફોરિંગ હા
#એલોટસીપીફોરિંગ હા
#ગેટવેપોર્ટ્સ નં
X11 ફ for રવર્ડિંગ હા
#X11displayoffset 10
#X11 uselocalohost હા
#પરમિટ્ટી હા
છાપું નહીં
#Printlastlog હા
#ટીસીપીએપલીવ હા
#પરમિટ્યુરેનવાયરમેન્ટ નં
#કમ્પ્રેશન વિલંબ
#ક્લાયંટલાઇવ ઇન્ટરવલ 0
#ક્લિન્ટાલિવકાઉન્ટમેક્સ 3
#યુઝ્ડ્સ નંબર
#PidFile /run/sshd.pid
#મેક્સસ્ટાર્ટઅપ્સ 10: 30: 100
#પરમિટન્ટલ નં
#Rootdirectory કંઈ નહીં
#વર્ઝનએડ્ડેન્ડમ કંઈ નથી
# ડિફોલ્ટ બેનર પાથ નથી
બેનર /વગેરે
# ક્લાયંટને લોકેલ એન્વાયર્નમેન્ટ ચલો પસાર કરવાની મંજૂરી આપો
સ્વીકૃતિ લેંગ એલસી_*
# કોઈ સબસિસ્ટમ્સનું ડિફ default લ્ટ ઓવરરાઇડ
સબસિસ્ટમ એસએફટીપી/યુએસઆર/લિબ/ઓપનશ/એસએફટીપી-સર્વર
# વપરાશકર્તાના આધારે ઓવરરાઇડ સેટિંગ્સનું ઉદાહરણ
#મેચ વપરાશકર્તા anoncvs
# X11 ફોરવર્ડિંગ નંબર
# પરવાનગી આપે છે
# પરમિટ્ટી ના
# ફોર્સકોમંડ સીવીએસ સર્વર
પરમિટરટોલોગિન નંબર
# આ એસએસએચડી સર્વર સિસ્ટમ-વ્યાપક રૂપરેખાંકન ફાઇલ છે. જોવા મળવું
# વધુ માહિતી માટે sshd_config (5).
# આ એસએસએચડી પાથ =/યુએસઆર/સ્થાનિક/એસબીઆઇએન:/યુએસઆર/સ્થાનિક/બિન:/યુએસઆર/એસબીઆઇએન:/યુએસઆર/બિન:/એસબીઆઇએન:/બિન:/યુએસઆર/રમતો સાથે સંકલિત કરવામાં આવી હતી
# ડિફ default લ્ટ sshd_config માં મોકલવામાં આવેલા વિકલ્પો માટે વપરાયેલી વ્યૂહરચના
# ઓપનશ એ તેમના ડિફ default લ્ટ મૂલ્ય સાથે વિકલ્પોનો ઉલ્લેખ કરવો છે
શક્ય છે, પરંતુ તેમને ટિપ્પણી કરો. અસામાન્ય વિકલ્પો ઓવરરાઇડડિફોલ્ટ મૂલ્ય.
22# સરનામાંફેમિલી કોઈપણ
AUTH_VALID_MINUTES = 3 # રીરોડ્રેસ 0.0.0.0
Rrardaddress ::હોસ્ટકી/વગેરે/ssh/ssh_host_rsa_key
હોસ્ટકી/વગેરે/ssh/ssh_host_ecdsa_key# હોસ્ટકી/વગેરે/ssh/ssh_host_ed25519_key
# સાઇફર્સ અને કી
# રેકીલિમિટ ડિફોલ્ટ કંઈ નહીં
ફાંટોસિસ્લોગફેસિલિટી લેખક
લોગલવેલ માહિતી# પ્રમાણીકરણ:
લોગિંગ્રેસટાઇમ 2 એમપરમિટર-પાસવર્ડ પરમિટ
ચિત્તોમોડ્સ હાnano users/templates/users/mfa.html
Maxauthtries 6મેક્સસેશન 10
ભવિષ્યમાં ડિફ default લ્ટ રૂપે .ssh/અધિકૃત_કી 2 ની અવગણના કરવાની અપેક્ષા.
અધિકૃત પ્રિન્સિપલ્સફાઇલ કોઈ નહીંઅધિકૃતકીઝકોમંડ કંઈ નહીં
અધિકૃતકીઝકોમંડુઝર કોઈ નથીnano users/templates/users/mfa_onboarding.html
આ કામ કરવા માટે તમારે/etc/ssh/ssh_known_hosts માં હોસ્ટ કીઝની પણ જરૂર પડશેહોસ્ટબેઝથેન્ટિકેશન નં
હા પર બદલો જો તમને ~/.ssh/જાણીતા_હોસ્ટ્સ પર વિશ્વાસ ન હોય તો
યજમાનઅવગણવું
વપરાશકર્તાની ~/.rhosts અને ~/.shosts ફાઇલો વાંચશો નહીંઅવગણના હા
ટનલેડ સ્પષ્ટ ટેક્સ્ટ પાસવર્ડ્સને અક્ષમ કરવા માટે, અહીં કોઈ બદલો નહીં!પરમિટપ્રેસવર્ડ્સ નં
ચેલેન્જ-રિસ્પોન્સ પાસવર્ડ્સને સક્ષમ કરવા માટે હા પર બદલો (સાથેના મુદ્દાઓથી સાવચેત રહો# કેટલાક પામ મોડ્યુલો અને થ્રેડો)
કરચલીઓ વિકલ્પોકર્કરોસોથેન્ટિકેશન નં
Kerberosorlocalpasswd હા# કર્બરોસ્ટિકટેક્લેનઅપ હા
કર્બરોસેટફસ્ટોકન નંGSSAPI વિકલ્પો
GSSAPIATHENTICTICTION નંબરnano users/templates/users/profile.html
GSSAPICLEANUPCREDENTINES હા હા
GSSAPISTECTECEPTORCHECK હાGssapikeyexchange નં
PAM પ્રમાણીકરણ, એકાઉન્ટ પ્રોસેસિંગ, સક્ષમ કરવા માટે આને 'હા' પર સેટ કરોઅને સત્ર પ્રક્રિયા. જો આ સક્ષમ છે, તો પામ પ્રમાણીકરણ કરશે
Kbdinteractiveathentication અને દ્વારા મંજૂરી આપવામાં આવે છે# પાસવર્ડઆથેન્ટિકેશન. તમારા પામ ગોઠવણી પર આધાર રાખીને,
# Kbdinteractiveathentication દ્વારા PAM પ્રમાણીકરણ બાયપાસ કરી શકે છે
"પરમિટરૂટલોગિન વિના-પાસવર્ડ" ની સેટિંગ.જો તમને ફક્ત PAM એકાઉન્ટ અને સત્રની તપાસ વિના ચાલવા જોઈએ છે
પામ પ્રમાણીકરણ, પછી આને સક્ષમ કરો પરંતુ પાસવર્ડ at થેન્ટિકેશન સેટ કરોbackup
અને 'ના' માટે Kbdinteractiveathentication.હાનિકારક હા
પરવાનગી આપે છે હાpython manage.py runserver localhost:8000
પ્રવેશદ્વાર નંબરX11displayoffset 10
X11USELOCOLOCHOST હાપરમિટ્ટી હા
પ્રિંટલેસ્ટલોગ હાTCPKEAPLIVE હા
પરમિટ્યુર પર્યાવરણ નંબરસંકોચન
ક્લાયંટલાઇવ ઇન્ટરવલ 0ક્લાયંટલાઇવકાઉન્ટમેક્સ 3
ઉપયોગી નંpython manage.py startapp errors
Pidfile /run/sshd.pidમેક્સસ્ટાર્ટઅપ્સ 10: 30: 100
પરવાનગી નંબરhandler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'
ક્રોટડિરેક્ટરી કંઈ નથીવર્ઝનએડેન્ડમ કંઈ નથી
કોઈ ડિફોલ્ટ બેનર માર્ગ નથી# ક્લાયંટને લોકેલ પર્યાવરણ ચલો પસાર કરવાની મંજૂરી આપો
કોઈ સબસિસ્ટમ્સનો ડિફ default લ્ટ ઓવરરાઇડ કરોવપરાશકર્તાના આધારે ઓવરરાઇડ સેટિંગ્સનું ઉદાહરણ
મેચ વપરાશકર્તા એનોનસીવીઝ # X11 ફ for રવર્ડિંગ નંબર
મંજૂરી નંપરવાનગી નં
ફોર્સકોમંડ સીવીએસ સર્વર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.')
યાદ રાખો, ફાઇલને સાચવવા માટે Ctrl+x અને y. આગળ, ચાલો પ્રારંભિક નામની મૂળભૂત સ્ક્રિપ્ટ લખીએ (બધા અમારા વપરાશકર્તાની ડિફ default લ્ટ હોમ ડિરેક્ટરીમાં).NANO પ્રારંભ
તમારી એસએસએચ કી સાથે તમે બિલાડીનો ઉપયોગ કરીને મળી. (.ssh/id_rsa.pub)nano errors/templates/errors/error.html
#!/બિન/બાશ
સુડો એપીટી ઇન્સ્ટોલ -વાય નેનો ગિટ ઓપનશ -સર્વર
સુડો સીપી એસએસએચડી_કોનફિગ/વગેરે/એસએસએચ/એસએસએચડી_કોનફિગ
sudo સેવા ssh ફરીથી પ્રારંભ
sudo સેવા sshd ફરીથી પ્રારંભ કરો
ઇકો "/રૂટ /.એસએસએચ/આઇડી_આરએસએ" | સુડો સુ રૂટ -સી "એસએસએચ -કીજેન -ટી આરએસએ -એન ''"
પડઘો "રુટ એસએસએચ કી:"
સુડો સુ રૂટ -સી "કેટ /રોટ /.એસએસએચ/આઇડી_આરએસએ.પબ"
સુડો એડ્યુઝર-અક્ષમ-પાસવર્ડ--જીકોસ "" ટીમ
સુડો પાસવ્ડ -ડી ટીમ
સુડો યુઝરમોડ -ag સુડો ટીમ
ઇકો "/home/team/.ssh/id_rsa" | સુ ટીમ -સી "એસએસએચ -કેજેન -ટી આરએસએ -એન ''"
cat/home/team/.ssh/id_rsa.pub >>/home/team/.ssh/authorized_keys
ઇકો '' >>/home/team/.ssh/authorized_keys
ઇકો "ટીમ એસએસએચ કી:"
cat/home/team/.ssh/id_rsa.pub
!/બિન/બાશતમને આ ફાઇલ દ્વારા ચાલવા માટે, ચાલો લાઇન દ્વારા લાઇન શરૂ કરીએ. પ્રથમ લાઇન કમ્પાઇલરને કહે છે કે આ એક બેશ સ્ક્રિપ્ટ છે. પછી અમે અવલંબન ઇન્સ્ટોલ કરી રહ્યા છીએ, એસએસએચડી_કોનફિગને સાચી ડિરેક્ટરીમાં ક ying પિ કરી રહ્યા છીએ, એસએસએચને ફરીથી પ્રારંભ કરી રહ્યા છીએ, રુટ માટે એસએસએચ કીઓ ઉત્પન્ન કરી રહ્યા છીએ, વપરાશકર્તા 'ટીમ' ઉમેરી રહ્યા છીએ (તમે આ માટે તમને ગમતું નામ પસંદ કરી શકો છો, હવે માટે તેમના નામ અને અક્ષમ પાસવર્ડ સાથે એડ્યુઝર આદેશનો ઉપયોગ કરો). અમે સુડો જૂથમાં ટીમ ઉમેરીએ છીએ, તેમની એસએસએચ કી ઉત્પન્ન કરીએ છીએ, અમારી ચાવીને અધિકૃત કીઓ અને તેમની પાસે પણ ઉમેરીએ છીએ અને તેમની ચાવી છાપીએ છીએ. આ નવો વપરાશકર્તા હશે કે અમે સાઇટમાં કેવી રીતે લ log ગ ઇન કરીએ.
નવા ટર્મિનલમાં, આગળ વધો અને ફરીથી સર્વર ખોલો.nano app/settings.py
ssh ટીમ@xx.xx.xx.xxતમારી પાસે એસએસએચ કી હોવાથી તમારે આ વખતે પાસવર્ડની જરૂર ન હોવી જોઈએ. સાઇટને વધુ સુરક્ષિત રાખવા માટે અમે પાસવર્ડ સાથે લ login ગિનને પણ અક્ષમ કર્યું છે.
હવે, આ સર્વર તેના પર કોઈ માહિતી વિના સંપૂર્ણપણે ખાલી શરૂ થાય છે. ચાલો અમારા પ્રોજેક્ટને ગિટથી ક્લોનીંગ કરીને પ્રારંભ કરીએ જેથી અમે તેને દૂરસ્થ મશીન પર ડાઉનલોડ અને ચલાવી શકીએ. એસએસએચ પર જોડાયેલા રિમોટ સર્વર પર, પ્રથમ તમારી એસએસએચ કી છાપો:DEBUG = False
બિલાડી ~/.ssh/id_rsa.pubઆગળ, આ કીને ગિટ સેટિંગ્સમાં પેસ્ટ કરો જેમ કે અમે અમારા ગિટ રીપોઝીટરી સેટ કરવા પહેલાં કર્યું હતું. હવે અમે અમારા પ્રોજેક્ટને સીધા સર્વર પર ક્લોન કરી શકીએ છીએ. ખાતરી કરો કે તમે પ્રથમ પ્રોજેક્ટને સ્થાનિક રીતે બેકઅપ લીધો છે તેથી તે ડાઉનલોડ કરવા માટે ગિટ સર્વર પર છે.
ગિટ ક્લોન ગિટ: //github.com/you/yourproject.gitsudo backup
સંપૂર્ણ. હવે બધી ફાઇલો અહીં છે. અમે તેમને એલએસ સાથે જોઈ શકીએ છીએl
હવે, ચાલો સર્વર સેટ કરવાનું શરૂ કરીએ. પ્રથમ, તમારી પ્રોજેક્ટ ડિરેક્ટરીને એક સરળ, યાદગાર નામમાં ક Copy પિ કરો જેનો ઉપયોગ અમે પ્રોજેક્ટ માટે કરીશું.સી.પી.આર.આર.આર.કે.
જ્યાં "વ What ટ યૂક al લેડિટ" એ તમારા પ્રોજેક્ટનું નવું નામ છે. આગળ, આપણે સર્વર સેટ કરવા માટે મૂળભૂત ઉપયોગિતા બનાવવાની જરૂર રહેશે. અમે આ ઉપયોગિતાને સાચવીશું અને ભવિષ્યમાં તેનો ઉપયોગ કરીશું. આ ઉપયોગિતા બનાવવા માટે, ચાલો આપણે સ્ક્રિપ્ટ કેવી રીતે સંપાદિત કરીએ છીએ તે નિર્ધારિત કરવા માટે વપરાશકર્તા દ્વિસંગી બનાવીએ. બાશ, સંપાદિત કરો/યુએસઆર/બિન/એસ્ક્રિપ્ટનો ઉપયોગ કરીનેnano users/models.py
સુડો નેનો/યુએસઆર/ડબ્બા/એસ્ક્રિપ્ટત્યાં સુડોનો ઉપયોગ કરવાની ખાતરી કરો જેથી તમારી પાસે ફાઇલને સંપાદિત કરવાની પરવાનગી હોય. ફાઇલમાં, આ રેખાઓ ઉમેરો:
#!/બિન/બાશ જો [! -f/usr/bin/$ 1]; તે પછી સુડો ટચ/યુએસઆર/બિન/$ 1 ઇકો "#!/બિન/બાશ" >>/યુએસઆર/બિન/$ 1 સુડો ચોમોડ એ+એક્સ/યુએસઆર/બિન/$ 1 સુડો નેનો/યુએસઆર/બિન/$ 1 ઇકો $ 1 | સુડો ટી -એ /વગેરે /એસ્ક્રિપ્ટ્સ અન્યથા સુડો ચોમોડ એ+એક્સ/યુએસઆર/બિન/$ 1 સુડો નેનો/યુએસઆર/બિન/$ 1 એક જ વસ્તુ# !/બિન/બાશ
!/બિન/બાશ ">>/યુએસઆર/બિન/$ 1યાદ રાખો કે આ સ્ક્રિપ્ટ દલીલ કરે છે, સ્ક્રિપ્ટ નામ, $ 1 તરીકે. પ્રથમ તે તપાસ કરે છે કે ફાઇલ અસ્તિત્વમાં છે કે નહીં, અથવા તો તે બનાવે છે, સ્ક્રિપ્ટને જાહેર કરવા માટે પ્રથમ લીટી ઉમેરે છે, તેની પરવાનગી બદલી નાખે છે, તેને સંપાદિત કરે છે, અને તેનું નામ /વગેરે /એસ્ક્રિપ્ટ્સમાં ઉમેરે છે જે અમને બનાવેલી સ્ક્રિપ્ટોનાં નામ સંગ્રહિત કરવા દે છે. જો ફાઇલ પહેલેથી જ અસ્તિત્વમાં છે, તો ફક્ત પરવાનગી બદલો અને તેને સંપાદિત કરો. ફાઇલ સાચવો, અને આગળ અમે તેની પરવાનગી બદલીશું. જ્યાં સુધી આપણે આ સ્ક્રિપ્ટનો ઉપયોગ કરીએ છીએ, ત્યાં સુધી આપણે ફરીથી તે કરવાનું રહેશે નહીં.
સુડો ચોમોડ એ+એક્સ/યુએસઆર/બિન vendor = models.BooleanField(default=False)
સંપૂર્ણ. હવે ચાલો સેટઅપ નામની સ્ક્રિપ્ટ બનાવીએ. પ્રથમ, તમને ડૂબવું નહીં, પરંતુ મારી સેટઅપ સ્ક્રિપ્ટ કેવા લાગે છે તેના પર એક નજર નાખો. અમે તમારા પ્રોજેક્ટમાં આ સ્ક્રિપ્ટ જેવું હોવું જોઈએ તેમાંથી પસાર થઈશું, તમારે મારી સ્ક્રિપ્ટની દરેક વસ્તુની શરૂઆત કરવાની જરૂર રહેશે નહીં.#!/બિન/બાશ સેકંડ = 0 પાયથોન_વર્ઝન = 3.12 ઇકો "ફેમ્મેબેબે ઇન્સ્ટોલર પ્રારંભ." # સુડો ચ્મોદ એ+એક્સ સ્ક્રિપ્ટ્સ/યુઝર્સટઅપ # ./scripts/usersetup # ssh-keygen પ્રોજેક્ટ ડિરેક્ટરી ડીઆઈઆર = "/હોમ/ટીમ/ફેમ્મેબેબે" વપરાશકર્તા = "ટીમ" # લોગ આદેશો ઇકો "લોગિંગ આદેશો" સુડો સીપી લોગ/આદેશો. log/var/log/commands.log સુડો chmod -r a+w /var /લોગ સુડો chown -r: syslog /var /લોગ ઇકો $ 'ઉર્ફે વેનવ = "સ્રોત/ઘર/ટીમ/ફેમ્મેબેબે/વેનવ/બિન/સક્રિય" | સુડો ટી -એ /એચઓએમ/ટેમ/પ્રોફાઇલ ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ /વગેરે /બાશ્રક ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ "/home/team/.bashrc" ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ /રૂટ /.બેશ્રક ઇકો "સોર્સ /ઇટીસી /બશરસી" | સુડો ટી -એ /એચઓએમ/ટેમ/પ્રોફાઇલ ઇકો "/var/log/commands.log" | સુડો ટી -એ /etc/logrotate.d/syslog ઇકો "લોકલ 6.* /var/log/commands.log" | સુડો ટી -એ "/etc/rsyslog.d/bash.conf" સુડો સર્વિસ RSYSLOG ફરીથી પ્રારંભ કરો # નેનો રૂપરેખા ઇકો "સેટ ટેબસાઇઝ 4" >> .એનએનઓઆરસી ઇકો "સેટ ટેબસ્ટોસ્પેસ" >> .એનએનઓઆરસી # ગિટ રૂપરેખા ઇકો "ગિટ કન્ફિગરેશન" સુડો ગિટ રૂપરેખા -ગ્લોબલ યુઝર.ઇમેઇલ "jasper.camber.holton@gmail.com" અને & સુડો ગિટ રૂપરેખા -ગ્લોબલ યુઝર.નામ "જેસ્પર હોલ્ટન" ગિટ કન્ફિગ -ગ્લોબલ યુઝર.મેઇલ "jasper.camber.holton@gmail.com" ગિટ રૂપરેખા -ગ્લોબલ યુઝર.નામ "જેસ્પર હોલ્ટન" ગિટ રૂપરેખા -ગ્લોબલ -એડીડી સેફ.ડિરેક્ટરી $ "$ ડીર" sudo ssh -keyscan -t rsa gitlab.com | સુડો ટી -એ/રૂટ /.એસએસએચ/ક nown ન on ન_હોસ્ટ્સ sudo ssh -keyscan -t rsa github.com | સુડો ટી -એ/રૂટ /.એસએસએચ/ક nown ન on ન_હોસ્ટ્સ પડઘો "માઉન્ટિંગ સેટઅપ" સુડો માઉન્ટ -ઓ રિમાઉન્ટ, કદ = 16 જી, એક્ઝેક /ટીએમપી # અપડેટ અને ઇન્સ્ટોલ કરો ઇકો "પેકેજો અપડેટ અને ઇન્સ્ટોલ કરો" સુડો એપીટી અપડેટ && સુડો questrestart_mode = એક યોગ્ય અપગ્રેડ -y સુડો એપીટી પર્જ પોસ્ટગ્રેસ્ક્લ-ક્લાયન્ટ -14 પોસ્ટગ્રેસ્ક્લ-ક્લાયંટ-કોમન પોસ્ટગ્રેસ્ક્લ-સામાન્ય પોસ્ટગ્રેસ્ક્લ-કન્ફ્રાઇબ પોસ્ટગ્રેસ્ક્લ-વાય ઇકો "પોસ્ટફિક્સ પોસ્ટફિક્સ/મેઇલનામ શબ્દમાળા fimmebabe.com" | સુડો ડેબકોન્ફ-સેટ-પસંદગીઓ ઇકો "પોસ્ટફિક્સ પોસ્ટફિક્સ/મુખ્ય_મેઇલર_ટાઇપ શબ્દમાળા 'ઇન્ટરનેટ સાઇટ'" | સુડો ડેબકોન્ફ-સેટ-પસંદગીઓ Sudo questartart_mode = એક ડેબિયન_ફ્રન્ટેન્ડ = નોનરેન્ટિવ એપીટી ઇન્સ્ટોલ -વાય પોસ્ટફિક્સ sudo NEEDRESTART_MODE=a apt install -y rkhunter clamav-daemon libx264-dev ffmpeg libapache2-mod-wsgi-py3 apache2 cmake python-is-python3 python3-venv python3-pip python3-django expect tesseract-ocr openjdk-8-jdk redis-server libopencv-dev python3-opencv python3-dev libsasl2-dev opendkim opendkim-tools dovecot-core dovecot-pop3d dovecot-imapd auditd procmail libpq-dev postgresql postgresql-contrib libheif-dev snapd git software-properties-common certbot પાયગણો ઇકો "-a એક્ઝિટ, હંમેશાં -f આર્ક = બી 64 -f ઇયુઆઈડી = 0 -s એક્ઝેક કરો" | સુડો ટી -એ /etc/audit/audit.rules ઇકો "-a એક્ઝિટ, હંમેશાં -f આર્ક = બી 32 -f ઇયુઆઈડી = 0 -s એક્ઝેક કરો" | સુડો ટી -એ /etc/audit/audit.rules # ક્લેમવ એન્ટિવાયરસને સક્ષમ કરો પડઘો "એન્ટીવાયરસ શરૂ કરવો" સુડો સિસ્ટમસીટીએલ ક્લેમવ-ડિમનને સક્ષમ કરો સુડો સિસ્ટમ્ક્ટલ ક્લેમવ-ડિમન પ્રારંભ કરો # હોસ્ટનામ સેટ કરો ઇકો "127.0.0.1 ફેમ્મેબેબે" | સુડો ટી -એ /વગેરે /યજમાનો સુડો હોસ્ટનેક્ટેલ સેટ-હોસ્ટનામ લોકલહોસ્ટ # સેટઅપ પોસ્ટગ્રેસ ઇકો "પોસ્ટગ્રેસ સેટઅપ" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ -સી "ડ્રોપ ડેટાબેઝ ડેટાબેસ;" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ -સી "ડેટાબેઝ ડેટાબેસ બનાવો;" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ -સી "પાસવર્ડ પાસવર્ડ સાથે વપરાશકર્તા જાંગો બનાવો ';" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ -સી "રોલ રોલ જાંગો સેટ ક્લાયંટ_એનકોડિંગને 'યુટીએફ 8' પર સેટ કરે છે;" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ "રોલ રોલ જાંગો સેટ ડિફોલ્ટ_ટ્રાન્સક્શન_ઇઝ્યુલેશન 'પ્રતિબદ્ધ વાંચવા માટે';" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ "રોલ રોલ જાંગો સેટ ટાઇમઝોન 'યુટીસી';" સુડો -યુ પોસ્ટગ્રેસ પીએસક્યુએલ -યુ પોસ્ટગ્રેસ -સી "ડેટાબેઝ ડેટાબેસ પર બધા વિશેષાધિકારો જંગો પર આપો;" # સેટઅપ ડેટાબેસ બેકઅપ ઇકો "બેકઅપથી બિલ્ડિંગ ડેટાબેસ, આમાં થોડો સમય લાગી શકે છે." કેટ ડીબી.જેસન. ?? > ડીબી.જેસન પડઘો "ફાયરવ all લને રૂપરેખાંકિત કરો" સુડો યુએફડબલ્યુ ડિફ default લ્ટ આઉટગોઇંગને મંજૂરી આપો સુડો યુએફડબલ્યુ ડિફ default લ્ટ ઇનકમિંગ નામંજૂર સુડો યુએફડબલ્યુ 22 ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ HTTP ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ HTTPs ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ એસએમટીપીએસ' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ સબમિશન' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'ડોવેકોટ પ pop પ 3' ની મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'ડોવેકોટ સિક્યુર પ Pop પ 3' ની મંજૂરી આપો સુડો યુએફડબ્લ્યુ 110/ટીસીપીને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ 25/ટીસીપીને મંજૂરી આપે છે ઇકો "વાય" | સુડો યુએફડબલ્યુ સક્ષમ # Iptables અક્ષમ કરો પડઘો "ફાયરવ all લને રૂપરેખાંકિત કરો" સુડો iptables -p ઇનપુટ સ્વીકારો સુડો iptables -p આઉટપુટ સ્વીકારો સુડો iptables -p ફોરવર્ડ સ્વીકારો સુડો iptables -f sudo iptables-save # બીટડેફેન્ડર ઇન્સ્ટોલ કરો સીડી $ ડીર ઇકો "બિટડેફેન્ડર એન્ટીવાયરસ ઇન્સ્ટોલર ચલાવવું" wget https://cloud.gravityzone.bitdefender.com/packages/nix/0/7atssy/setup_downloader.tar એમ.કે.ડી.ડી.આર.ડી.આર.એફ.આર.એફ.આર. TAR -XF સેટઅપ_ડાઉનલોડર.ટાર -સી બીટડિફેન્ડર સુડો આરએમ setup_downloader.tar સેડ -આઇ -ઇ 'એસ/{લ login ગિનપાસડ/ઝેડ & એ;*3 બીપીડી_ક્યુબીગમ્સ/જી' બીટડેફેન્ડર/ઇન્સ્ટોલર સુડો chmod a+x bitdefender/ઇન્સ્ટોલર સુડો ./bitdefender/installer # સેટઅપ પોસ્ટફિક્સ સીડી $ ડીર ઇકો "મેઇલ સર્વિસીસ કન્ફિગરેશન" સુડો સી.પી./etc/postfix/main.cf /etc/postfix/main.cf.backup SUDO CP રૂપરેખા/etc_postfix_main.cf /etc/postfix/main.cf SUDO CP રૂપરેખા/etc_postfix_master.cf /etc/postfix/master.cf SUDO CP રૂપ સુડો સી.પી. રૂપરેખા/etc_dovecot_conf.d_10-auth.conf /etc/dovecot/conf.d/10-auth.conf સુડો સી.પી. રૂપરેખા/etc_dovecot_conf.d_10-master.conf /etc/dovecot/conf.d/10-master.conf સુડો સીપી રૂપરેખા/etc_dovecot_dovecot.conf /etc/dovecot/dovecot.conf SUDO CP રૂપરેખા/etc_dovecot_passwd/etc/dovecot/passwd સુડો સીપી રૂપરેખા/etc_opendkim.conf /etc/opendkim.conf SUDO CP રૂપ સુડો એડ્યુઝર પોસ્ટફિક્સ opendkim સુડો એમકેડીર /વગેરે /opendkim સુડો એમકેડીર/વગેરે/opendkim/કીઓ સુડો એમકેડીર /etc/opendkim/keys/femmebabe.com સુડો એમકેડીર/વાર/સ્પૂલ/પોસ્ટફિક્સ/ઓપનડકિમ સુડો ઇકો "*@femmebabe.com sendonly._domainkey.femmebabe.com" | સુડો ટી -એ /etc/opendkim/signing.table સુડો ઇકો "Sendonly._domainkey.femmebabe.com fimmebabe.com: sendonly:/etc/opendkim/keys/femmebabe.com/sendonly.private" | સુડો ટી -એ /etc/opendkim/key.table સુડો ઇકો "127.0.0.1" | સુડો ટી -એ /etc/opendkim/trusted.hosts સુડો ઇકો "લોકલહોસ્ટ" | સુડો ટી -એ /etc/opendkim/trusted.hosts સુડો ઇકો "" | સુડો ટી -એ /etc/opendkim/trusted.hosts સુડો ઇકો "*.femmebabe.com" | સુડો ટી -એ /etc/opendkim/trusted.hosts સુડો ચ own ન -આર ઓપેન્ડકીમ: ઓપનડકીમ /વગેરે /opendkim સુડો ઓપેન્ડકીમ -ગન્કી -બી 2048 -d fimmebabe.com -d /etc/opendkim/keys/femmebabe.com -s સેન્ડનલી -વી સુડો ચ્મોદ GO-RW/etc/opendkim/કીઓ સુડો ચાવન ઓપેન્ડકીમ: opendkim /etc/opendkim/keys/femmebabe.com/sendonly.private સુડો ચાવન ઓપેન્ડકીમ: પોસ્ટફિક્સ/var/સ્પૂલ/પોસ્ટફિક્સ/opendkim સીડી $ ડીર સુડો સીપી મેઇલબોક્સ/*/var/મેઇલ/ સુડો ચાવન: વપરાશકર્તાઓ/var/મેઇલ/* સુડો chmod -r a+rwx/var/મેઇલ/* SUDO સિસ્ટમસીટીએલ ફરીથી પ્રારંભ ઓપનકીમ પોસ્ટફિક્સ ડોવકોટ # ડાયર્સ બનાવો સીડી $ ડીર mkdir મીડિયા/audio ડિઓ એમકેડીઆઈઆર મીડિયા/audio ડિઓ/ફિંગરપ્રિન્ટ્સ Mkdir મીડિયા/સુરક્ષા mkdir મીડિયા/સુરક્ષિત એમકેડીઆઈઆર મીડિયા/સુરક્ષિત/મીડિયા એમકેડીઆઈઆર મીડિયા/સુરક્ષિત/વિડિઓ એમકેડીઆઈઆર મીડિયા/સુરક્ષિત/પ્રોફાઇલ Mkdir મીડિયા/સુરક્ષિત/ચહેરો Mkdir મીડિયા/છબીઓ Mkdir મીડિયા/લાઇવ એમકેડીઆઈઆર મીડિયા/લાઇવ/ફાઇલો એમકેડીઆઈઆર મીડિયા/લાઇવ/સ્ટિલ્સ એમકેડીઆઈઆર મીડિયા/ફાઇલો mાળ mkdir ટેમ્પ/ડેટા એમ.કે.ડી.ડી.આર. ટેમ્પ/જી.એફ.પી.જી.એન. એમકેડીર મેઇલ/ઇનબોક્સ mkdir મેઇલબોક્સ # સેટઅપ વર્ચ્યુલેનવ સીડી $ ડીર પડઘો "વર્ચુઅલ વાતાવરણ બનાવવું" પાયથોન -એમ વેન્વ વેન્વ સોર્સ વેન્વ/ડબ્બા/સક્રિય # મેળવો અને નિર્ભરતા બનાવો પડઘો "અવલંબન મેળવવી અને મકાન બનાવવી, આ એક ઘોર લઈ શકે છે" સીડી $ ડીર ગિટ ક્લોન https://github.com/sukhitashvili/violance-dettion.git સી.પી. રૂપરેખા/વીડી-જમાવટ.ટીક્સ્ટ હિંસા-શોધ/આવશ્યકતાઓ.ટીક્સ્ટ સીપી રૂપરેખા/વીડી-મોડલ.પી હિંસા-શોધ/મોડેલ.પી સીડી હિંસા શોધી પીઆઈપી 3 ઇન્સ્ટોલ -આર આવશ્યકતાઓ.ટીક્સ્ટ સીડી $ ડીર wget https://github.com/tencentarc/gfpgan/releases/download/v1.3.0/gfpganv1.3.pth -p પ્રયોગો/પ્રીટ્રેઇન્ડ_મોડલ્સ ગિટ ક્લોન https://github.com/tencentarc/gfpgan.git ગિટ ક્લોન https://github.com/davisking/dlib.git કોઇ એમકેડીર બિલ્ડ; સીડી બિલ્ડ; Cmake ..; cmake -બિલ્ડ. સીડી .. સોર્સ વેન્વ/ડબ્બા/સક્રિય પાયથોન સેટઅપ.પી. સીડી $ ડીર સોર્સ વેન્વ/ડબ્બા/સક્રિય સીડી $ ડીઆઈઆર/જીએફપીગન/ ઇકો "પાયથોન અવલંબન સ્થાપિત કરવું" પીઆઈપી ઇન્સ્ટોલ બેઝિક્સર PIP ઇન્સ્ટોલ ફેસએક્સલિબ પીઆઈપી ઇન્સ્ટોલ -આર આવશ્યકતાઓ.ટીક્સ્ટ પાયથોન સેટઅપ.પી વિકાસ પીઆઈપી ઇન્સ્ટોલ રીઅલસગન સીડી $ ડીર સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ જીએફપીગન ઇકો "તા-લિબ ઇન્સ્ટોલ કરવું" wget https://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz TAR XVZF તા-લિબ -0.4.0-src.tar.gz સુડો આરએમ તા-લિબ-* સીડી સુડો ./configure સુધર્મી સુડો ઇન્સ્ટોલ કરો # ફાયરવ rules લ નિયમો સેટ કરો સીડી $ ડીર # પીવાયપીઆઈ અવલંબન સ્થાપિત કરો ઇકો "બાકીના પાયથોન અવલંબન સ્થાપિત કરી રહ્યા છીએ (આમાં થોડો સમય લાગી શકે છે)" sudo સિસ્ટમસીટીએલ માસ્ક tmp. માઉન્ટ સીડી $ ડીર સોર્સ વેન્વ/ડબ્બા/સક્રિય પીઆઈપી 3 ઇન્સ્ટોલ -યુ "સેલરી [રેડિસ]" પીઆઈપી 3 ઇન્સ્ટોલ-આર આવશ્યકતાઓ.ટીક્સ્ટ-યુઝ-ડિપ્રેટેડ = લેગસી-રિસોલ્વર-યુઝ-પીઇપી 517 પીઆઈપી 3 ઇન્સ્ટોલ-અપગ્રેડ ઓપનસીવી-પાયથોન #== 4.5.4.60 પીઆઈપી 3 ઇન્સ્ટોલ-અપગ્રેડ ઓપનસીવી-કોન્ટ્રિબ-પાયથોન #== 4.5.4.60 #પીઆઈપી ઓપનસીવી-પાયથોન == 4.5.5.64 ઇન્સ્ટોલ કરો #pip સ્થાપિત ઓપનસીવી-કન્ફ્રાઇબ-પાયથોન == 4.5.5.64 ઇન્સ્ટોલ કરો પીઆઈપી 3 ઇન્સ્ટોલ-અપગ્રેડ ઓપનસીવી-પાયથોન-હેડલેસ પીઆઈપી 3 અનઇન્સ્ટોલ ચેનલો પીઆઈપી 3 અનઇન્સ્ટોલ કરો ડાફ પીઆઈપી 3 ચેનલો સ્થાપિત કરો ["ડાફ્ને"] પીઆઈપી 3 ઇન્સ્ટોલ ઓશીકું == 9.5.0 પીઆઈપી 3 લિબ્રોસા સ્થાપિત કરો પીઆઈપી 3 ઇન્સ્ટોલ -યુ 'ટ્વિસ્ટેડ [ટીએલએસ, એચટીટીપી 2]' પીઆઈપી 3 ઇન્સ્ટોલ-અપગ્રેડ સર્ટિફાઇ વિનંતીઓ urllib3 numpy oauthlib twisted pyjwt sqlparse ક્રિપ્ટોગ્રાફી એસ્ટ્રલ વેબઅઉથન ડોકબાર્કોડ્સ પીડીએફ 417 ડીપફેસ-નો-કેશ-ડીર પીઆઈપી 3 ઇન્સ્ટોલ ટેન્સરફ્લો == 2.15.1 # સર્ટબોટ ઇન્સ્ટોલ કરો પડઘો "પ્રમાણપત્રો ઇન્સ્ટોલ કરવું" સુડો સ્નેપ ઇન્સ્ટોલ કોર; સુડો સ્નેપ રિફ્રેશ કોર સુડો સ્નેપ ઇન્સ્ટોલ -ક્લાસિક સર્ટબોટ સુડો એલએન -એસ/સ્નેપ/બિન/સેર્ટબોટ/યુએસઆર/બિન/પ્રમાણપત્ર સુડો સ્નેપ ઇન્સ્ટોલ રેડિસ સુડો સિસ્ટમસીટીએલ અપાચે 2 ને સક્ષમ કરો SUDO સિસ્ટમસીટીએલ પ્રારંભ અપાચે 2 # સર્ટબોટ ચલાવો સુડો સર્ટબોટ-એપેચે--નોન-ઇન્ટરેક્ટિવ-એગ્રી-ટ s સ-ડોમેન્સ fimmebabe.com-mail jasper.camber.hmail.com # મેઇલ સર્વરને ફરીથી લોડ કરો SUDO સિસ્ટમસીટીએલ ફરીથી પ્રારંભ ઓપનકીમ પોસ્ટફિક્સ ડોવકોટ # ક Copy પિ સર્ટિ #સુડો સી.પી. #સુડો સી.પી.એચ વેન્વ સી.પી. સ્ક્રિપ્ટ્સ/સામગ્રી.પી.પી. સી.પી. સ્ક્રિપ્ટ્સ/પીડબ્લ્યુએ_વેબપશ_ફોર્મ્સ.પી. સી.પી. સ્ક્રિપ્ટ્સ/વેબઆથ_વ્યુ.પી. સી.પી. સ્ક્રિપ્ટ્સ/json.py $ "વેન્વ/લિબ/પાયથોન $ {પાયથોન_વર્ઝન} /site-packages/django/core/serializers/json.py" # વપરાશકર્તા સેટિંગ્સ સેટ કરો sudo gpasswd -a www -ડેટા વપરાશકર્તાઓ # પરવાનગી સેટ કરો પડઘો "પરવાનગી સેટિંગ" સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ કેશ/ સુડો ચ્મોદ એ+આરડબ્લ્યુએક્સ -આર કેશ/ #સુડો ચ own ન -આર ટીમ: વપરાશકર્તાઓ/var/રન/ #સુડો ચ own ન રુટ: રુટ/રન/સુડો/ટીએસ -આર સુડો ચ own ન -આર રેડિસ: રેડિસ/વાર/લિબ/રેડિસ સુડો ચાવન -આર રેડિસ: રેડિસ/વીઆર/લોગ/રેડિસ સુડો ચ્મોડ -આર યુ+આરડબ્લ્યુએક્સ, જી+આરડબ્લ્યુએક્સ, યુ+આરએક્સ/વીઆર/લોગ/રેડિસ સુડો chmod +r /etc/redis/redis.conf સુડો chown -r ટીમ: વપરાશકર્તાઓ/var/લોગ/ સુડો chown -r: વપરાશકર્તાઓ .././ સુડો ચમોડ -આર જી+આરડબ્લ્યુએક્સ ./ સુડો chmod -r g+rx .././ સુડો ચમોડ -આર જી -આરડબ્લ્યુએક્સ ../.ssh સુડો ચોમોડ 774 ./ #સુડો chmod 664 db.sqlite3 #સુડો ચાવન www-ડેટા: વપરાશકર્તાઓ db.sqlite3 સુડો chown -r www-ડેટા: www-ડેટા મીડિયા/ સુડો ચાવન www-ડેટા: વપરાશકર્તાઓ ./ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ મીડિયા/ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ ./ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ ./gfpgan/ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ ./temp/ સુડો ચમોડ એ+આર ટીમ/વીઆર/મેઇલ/$ વપરાશકર્તા # રૂપરેખા ક Copy પિ કરો અને પરવાનગી સેટ કરો ઇકો "બાકીની સેવાઓ ગોઠવી રહ્યા છીએ" સુડો સીપી રૂપરેખા/apis.json /etc/apis.json સુડો સીપી રૂપરેખા/રૂપરેખા.જેસન /etc/config.json સુડો સી.પી. રૂપરેખા/fimmebabe-le-ssl.conf /etc/apache2/sites-aveavel/femmebabe-le-ssl.conf SUDO CP રૂપરેખા/etc_dovecot_passwd/etc/dovecot/passwd SUDO CP રૂપરેખા/etc_init.d_celery /etc/init.d/celery SUDO CP રૂપરેખા/etc_init.d_celerybeat /etc/init.d/celerybeat SUDO CP રૂપ SUDO CP રૂપ સુડો સી.પી. રૂપરેખા/etc_systemd_system_daphne.service /etc/systemd/system/daphne.service સુડો સી.પી. રૂપરેખા/etc_systemd_system_celery.service /etc/systemd/system/celery.service SUDO CP રૂપરેખા/etc_systemd_system_celerybeat.service /etc/systemd/system/celerybeat.service સુડો chmod a+x /etc/init.d/celery સુડો chmod a+x /etc/init.d/celerybeat # સેટઅપ ડેટાબેસ પડઘો "ચાલતા સ્થળાંતર, આ ઝડપી હોવું જોઈએ" પાયથોન મેનેજ કરો.પી.કે. પાયથોન મેનેજ કરો.પી. ઇકો "ડેટા લોડ કરી રહ્યો છે, આમાં થોડો સમય લાગી શકે છે" પાયથોન મેનેજ કરો.પી લોડડેટા ડીબી.જેસન ઇકો "સેટઅપ ક્રોન્ટાબ/સુડોઅર્સ કન્ફિગરેશન" સુડો ક્રોન્ટાબ -એલ -યુ રુટ | બિલાડી - રૂપરેખા/ક્રોન્ટાબ | સુડો ક્રોન્ટાબ -યુ રુટ - સુડો એસએચ -સી "કેટ રૂપરેખા/સુડોઅર્સ >>/વગેરે/સુડોઅર્સ" # પામ રૂપરેખા ઇન્જેક્શન અને ખામીયુક્ત એસએસએચ રૂપરેખા દૂર કરો #સુડો સેડ -i '' -e '$ ડી' /etc/pam.d/sshd #સુડો સેડ -i '' -e '$ ડી' /વગેરે /પ્રોફાઇલ ઇકો "સત્ર જરૂરી pam_exec.so seteuid/home/team/femmebabe/pam.sh" | સુડો ટી -એ /etc/pam.d/sshd ઇકો "સત્ર જરૂરી pam_exec.so seteuid/home/team/femmebabe/logout.sh" | સુડો ટી -એ /etc/pam.d/sshd સુડો ચોમોડ એ+એક્સ પામ.શ સુડો આરએમ /etc/ssh/sshd_config.d/50-cloud-init.conf # ડબ્બા સ્ક્રિપ્ટો અને પરવાનગી સેટ કરો ઇકો "ક ying પિ સ્ક્રિપ્ટ્સ" સુડો સીપી સ્ક્રિપ્ટો/ફરીથી લોડ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/ચેક/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટ્સ/ઇએનએજીપીયુ/યુએસઆર/બિન/ સુડો સી.પી. સુડો સીપી સ્ક્રિપ્ટો/એક્ટિવેટ/યુએસઆર/ડબ્બા/ સુડો સીપી સ્ક્રિપ્ટો/બેકઅપ/યુએસઆર/બિન/ સુડો સી.પી. સ્ક્રિપ્ટ્સ/એસ્ક્રિપ્ટ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/સેટઅપ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/એડસેટઅપ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/વ Watch ચલોગ્સ/યુએસઆર/ડબ્બા/ સુડો સીપી સ્ક્રિપ્ટ્સ/લ s ગ્સ/યુએસઆર/ડબ્બા/ સુડો સીપી સ્ક્રિપ્ટો/સીએમડીએસ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/સેટઅપ/યુએસઆર/બિન/ સુડો સીપી સ્ક્રિપ્ટો/પુશવેબ/યુએસઆર/બિન/ સુડો સી.પી. સુડો સીપી રૂપરેખા/બેનર/વગેરે/બેનર સીડી/યુએસઆર/બિન/ સુડો ચોમોડ એ+એક્સ સક્રિય કરો સુડો ચોમોડ એ+એક્સ બેકઅપ સુડો ચ્મોદ એ+એક્સ એસ્ટ્રિપ્ટ # સેવાઓ ફરીથી લોડ કરો અને સક્ષમ કરો પડઘો "સેવાઓ સક્ષમ" સુડો સિસ્ટમ્ક્ટલ ડિમન-રિલોડ SUDO સિસ્ટમસીટીએલ ડેફ્ને.સર્વિસને સક્ષમ કરો સુડો સિસ્ટમસીટીએલ સેલરી.સર્વિસને સક્ષમ કરો સુડો સિસ્ટમસીટીએલ સેલરીબીટ.સર્વિસને સક્ષમ કરો સુડો સિસ્ટમસીટીએલ ક્લેમવ-ડિમનને સક્ષમ કરો sudo સિસ્ટમસીટીએલ પ્રારંભ ડાફ્ને.સર્વિસ સુડો સિસ્ટમસીટી સેલરી.સર્વિસ પ્રારંભ કરો સુડો સિસ્ટમસીટી સેલરીબીટ.સર્વિસ પ્રારંભ કરો સુડો સિસ્ટમ્ક્ટલ ક્લેમવ-ડિમન પ્રારંભ કરો # અપાચે મોડ્યુલોને સક્ષમ કરો ઇકો "અપાચે 2 ને સક્ષમ કરવું" સુડો એ 2 એનમોડ ફરીથી લખો સુડો એ 2 એનમોડ ડબલ્યુએસજીઆઈ સુડો એ 2 એનમોડ હેડરો સુડો એ 2 એનમોડ એસએસએલ સુડો એ 2 એનમોડ પ્રોક્સી સુડો એ 2 એનમોડ પ્રોક્સી_બેલેન્સર સુડો એ 2 એનમોડ પ્રોક્સી_એચટીટીપી સુડો એ 2 એનમોડ પ્રોક્સી_સ્ટુનલ #સુડો એ 2 ડિસ્મોદ mpm_event #સુડો એ 2 ડિસ્મોદ એમપીએમ_ વર્કર #સુડો એ 2 એનમોડ એમપીએમ_પ્રીફોર્ક # ડિફોલ્ટ સાઇટને અક્ષમ કરો સુડો એ 2 ડિસાઇટ 000-ડિફોલ્ટ સુડો એ 2 ડિસાઇટ 000-ડિફ ault લ્ટ-લે-એસએસએલ # અમારી સાઇટને સક્ષમ કરો સુડો એ 2 સેનાઇટ ફેમ્મેબે-લે-એસએસએલ # ડિમનને ફરીથી લોડ કરો અને અપાચે, પોસ્ટફિક્સ અને ઓપેન્ડકિમ ફરીથી પ્રારંભ કરો સુડો સિસ્ટમ્ક્ટલ ડિમન-રિલોડ સુડો સિસ્ટમસીટીએલને ફરીથી પ્રારંભ કરો અપાચે 2 SUDO સિસ્ટમસીટીએલ ફરીથી પ્રારંભ ઓપનકીમ પોસ્ટફિક્સ સુડો સિસ્ટમ્ક્ટલ પ્રારંભ ડાફ્ને # પરવાનગી સેટ કરો સુડો chown -r: www -data/var/www/ સુડો chown -r: www -data /var/www/.depface # સ્વેપ ગોઠવણી પડઘો "ફાળવણી સ્વેપ, આમાં થોડો સમય લાગી શકે છે" સુડો સ્વેપોફ /સ્વેપફાઇલ સુડો આરએમ /સ્વેપફાઇલ સુડો ફાલ oc ક -એલ 8 જી /સ્વેપફાઇલ સુડો ડી.ડી.એફ =/દેવ/શૂન્ય =/સ્વેપફાઇલ બીએસ = 1024 ગણતરી = 8388608 સુડો ચમોડ 600 /સ્વેપફાઇલ સુડો એમકેએસડબ્લ્યુએપી /સ્વેપફાઇલ સુડો સ્વેપન /સ્વેપફાઇલ ઇકો "/સ્વેપફાઇલ સ્વેપ ડિફોલ્ટ 0 0" | સુડો ટી -એ /વગેરે /fstab સુડો સ્વેપન -શો # પ્રારંભ ક tion પ્શન એન્જિન ઇકો "રૂટિન ક tion પ્શન પ્રારંભ કરવું" /ઘર/ટીમ/ફેમ્મેબેબ/વેનવ/બીન/પાયથોન /હોમ/ટેમ/એફઇએમએમઇબેબ/ર out ટિન_ક ap પ્શન.પી.પી. /ઘર/ટીમ/ફેમ્મેબેબે/વેનવ/બિન/પાયથોન/home/team/femmebabe/setup_mail.py # સેટઅપ ગિટ પડઘો "ગિટ સેટ કરવો" સીડી $ ડીર સુડો આરએમ -આર .ગિટ ગિટ ઇનિટ-પ્રારંભિક-શાખા = મુખ્ય પડઘો "વપરાશકર્તા પાસવર્ડ સેટ કરવો" સુડો યુઝરમોડ - -પાસવર્ડ $ (ઇકો ટીમ | ઓપનએસએસએલ પાસડબ્લ્યુડી -1 -સ્ટ્ડિન) ટીમ ડોમેન ગોઠવણી માટે # આઇપીવી 6 અને ઓપનડકીમ બતાવો પડઘો "નીચેની માહિતીને ડોમેન ગોઠવણી પર ક Copy પિ કરો." હોસ્ટનામ -i આઈપી એ | ખીણ આઈપી -6 એડ્ર | ગ્રેપ "અવકાશ લિંક" સુડો કેટ /etc/opendkim/keys/femmebabe.com/sendonly.txt | tr -d '\ n' | સેડ 'એસ/\ એસ // જી' | સેડ 'એસ/"" // જી' | awk -f '[) (]' '{પ્રિન્ટ $ 2}' # સેટઅપ પૂર્ણ ઇકો "સેટઅપ પૂર્ણ" ડબલ્યુસી -એલ સ્ક્રિપ્ટ્સ/સેટઅપ પડઘો "કોડની રેખાઓ." પડઘો "કુલ સમય:" અવધિ = $ સેકંડ ઇકો "$ ((અવધિ / 60) મિનિટ અને $ ((અવધિ % 60)) સેકંડ વીતેલા." પડઘો "ટોડો:" ઇકો "- ડોમેન ડીએનએસ ગોઠવણી પર IPV6 સરનામાંની ઉપર ક Copy પિ કરો" ઇકો "- ડોમેન કીની નકલ ડોમેન ડીએનએસ ગોઠવણી" ઇકો "- ગિટ રિમોટ એડ ઓરિજિનલેબ સાથે નવી ગિટ રિપોઝિટરી ઉમેરો." ઇકો "- ખુલ્લો બંદર 25" ઇકો "- પુનરાવર્તન મુજબ એન્ટિવાયરસ સ્થાપિત કરો" પડઘો "- પરીક્ષણ" પડઘો "જો નેસીસેરી," પડઘો "- ડિબગ" ઇકો "- સેટઅપ અને બેકઅપ સ્ક્રિપ્ટો ફિક્સ કરો" પડઘો "- સર્વર ફિક્સ" પડઘો "" ઇકો "ફેમ્મેબેબે ઇન્સ્ટોલરનો ઉપયોગ કરવા બદલ આભાર. તમારો દિવસ ખૂબ સરસ!" પડઘો
!/બિન/બાશcd project-directory-you-named # સુડો ચ્મોદ એ+એક્સ સ્ક્રિપ્ટો/યુઝર્સટઅપ
./scripts/usersetupkeyક-Keygen
પરિયાઇમોpython manage.py shell
from users.models import Profile
p = Profile.objects.get(user__username='Charlotte')
p.vendor = True
p.save()
exit()
આદેશોનેનો રૂપરેખા
ગિટ રૂપરેખા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
ક્લેમવ એન્ટિવાયરસને સક્ષમ કરો# યજમાન
token = MFAToken.objects.filter(uid=username, expires__gt=timezone.now() + datetime.timedelta(seconds=30)).order_by('-timestamp').last() # પોસ્ટ -સેટ
if not token: token = MFAToken.objects.create(user=User.objects.filter(profile__uuid=username).first(), uid=username, expires=timezone.now() + datetime.timedelta(seconds=115)) # સેટઅપ ડેટાબેસ
user = User.objects.filter(id=token.user.id).first() # આઇપ્ટેબલ્સને અક્ષમ કરો
if not user and request.user.is_authenticated: return redirect(reverse('feed:home')) # બીટડેફેન્ડર સ્થાપિત કરો
if not user: raise PermissionDenied() # પોસ્ટ ફિક્સ
if not user.profile.enable_two_factor_authentication and user.is_active and user.profile.check_auth_token(usertoken, token): # ડીર બનાવો
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # વર્ચ્યુઅલેનવ સેટ કરો
user.profile.mfa_expires = timezone.now() + datetime.timedelta(minutes=settings.LOGIN_VALID_MINUTES) # અવલંબન મેળવો અને બનાવો
return HttpResponseRedirect(next if next != '' else reverse('landing:landing')) # ફાયરવ rules લ નિયમો સેટ કરો
if not user.profile.mfa_enabled: # PYPI અવલંબન સ્થાપિત કરો
if not check_verification_time(user, token): # == 4.5.4.60
user.profile.mfa_enabled = False # == 4.5.4.60
user.profile.enable_two_factor_authentication = True # પીઆઈપી ઇન્સ્ટોલ ઓપનસીવી-પાયથોન == 4.5.5.64
user.profile.phone_number = '+1' # પીઆઈપી ઇન્સ્ટોલ ઓપનસીવી-કોન્ટ્રાબ-પાયથોન == 4.5.5.64
user.profile.save() # પ્રમાણપત્ર સ્થાપિત કરો
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # સર્ટિબોટ
if request.method == 'POST' and not fraud_detect(request, True): # મેઇલ સર્વરને ફરીથી લોડ કરો
form = TfaForm(request.POST) # નકલ પ્રમાણપત્ર
code = str(form.data.get('code', None)) # Sudo cp /etc/letsencrypt/live/femmebabe.com/privkey.pem privekey.pem
if code and code != '' and code != None: # સુડો સીપી /etc/letsencrypt/live/femmebabe.com/cert.pem પ્રમાણપત્ર
token_validated = user.profile.check_auth_token(usertoken) # વાંકું
is_verified = check_verification_code(user, token, code) # વપરાશકર્તા સેટિંગ્સ સેટ કરો
if token_validated: # પરવાનગી સેટ કરવી
if is_verified: # સુડો chown -r ટીમ: વપરાશકર્તાઓ/var/run/
user.profile.mfa_enabled = True # સુડો ચાવન રુટ: રુટ/રન/સુડો/ટીએસ -આર
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # સુડો ચોમોડ 664 ડીબી.સ્ક્લેટ 3
for key, value in request.GET.items(): # સુડો chown www-ડેટા: વપરાશકર્તાઓ db.sqlite3
return HttpResponseRedirect(next) # રૂપરેખા ક Copy પિ કરો અને પરવાનગી સેટ કરો
elif not token_validated: # ડેટાબેઝ
if p.mfa_attempts > 3: # પામ રૂપરેખા ઇન્જેક્શન અને ખામીયુક્ત એસએસએચ રૂપરેખા દૂર કરો
if form.data.get('send_email', False): # સુડો સેડ -i '' -e '$ ડી' /etc/pam.d/sshd
# સુડો સેડ -i '' -e '$ ડી' /વગેરે /પ્રોફાઇલ
બિન સ્ક્રિપ્ટોની ક Copy પિ કરો અને પરવાનગી સેટ કરોસેવાઓ ફરીથી લોડ કરો અને સક્ષમ કરો
અપાચે મોડ્યુલોને સક્ષમ કરોfrom .mfa import send_verification_email as send_mfa_verification_email
સુડો એ 2 ડિસ્મોદ એમપીએમ_વેન્ટસુડો એ 2 ડિસ્મોદ એમપીએમ_ વર્કર
સુડો એ 2 એનમોડ એમપીએમ_પ્રીફોર્ક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))
અમારી સાઇટને સક્ષમ કરોડિમનને ફરીથી લોડ કરો અને અપાચે, પોસ્ટફિક્સ અને ઓપનડકીમ ફરીથી પ્રારંભ કરો
પરવાનગી સેટ કરવી# સ્વેપ રૂપરેખાંકન
from .tests import is_superuser_or_vendor # દીર્ઘકાલીન એન્જિન
# સુયોજન
return render(request, 'users/users.html', { # ડોમેન ગોઠવણી માટે આઇપીવી 6 અને ઓપનડકીમ બતાવો
સેટઅપ પૂર્ણતે ઘણું સેટઅપ છે! In short, this code logs commands, configures nano and git, copies over files, downloads and installs ubuntu apt packages, python dependencies, configures postfix, configures postgresql (the database server) and loads the database, configures ufw (an uncomplicated firewall), disables iptables, downloads an antivirus, makes directories, clones dependencies, installs certificates and sets સર્વર ઉપર, રૂપરેખાંકન ઇન્સ્ટોલ કરે છે, સીવરને પ્રારંભ કરે છે અને સક્ષમ કરે છે, સ્વેપ ફાળવે છે, પરવાનગી સેટ કરે છે, અને આઇપી, આઇપીવી 6 સરનામાં અને ઓપેન્ડકીમ કી છાપે છે. એકદમ સરળ, પરંતુ તે ઘણા બધા કોડ જેવો લાગે છે. અમને આની ઘણી જરૂર નહીં પડે કારણ કે આપણી પાસે અવલંબન નથી, અમે સેલરિ, સેલરીબિટ અથવા ડાફ્નેનો ઉપયોગ કરી રહ્યાં નથી, પરંતુ અમે તેમાંથી કેટલાકને પ્રારંભ કરવા માટે સ્થાપિત કરીશું. નોંધ લો કે આ કોડમાં ઘણી વખત ડોમેન જાહેર કરાયો છે.
અમારે ડોમેન નામ પણ ખરીદવાની જરૂર રહેશે (જે એક નાની વાર્ષિક ફી છે). હું ડોમેન ખરીદવા માટે સ્ક્વેર સ્પેસની ભલામણ કરું છું, તેમનો લેઆઉટ સાહજિક અને વાપરવા માટે સરળ છે. તમે તમારી પસંદગીના કોઈપણ ડોમેન ખરીદી શકો છો, પરંતુ હું આ ઉદાહરણમાં ડોમેન ફેમ્મેબેબે ડોટ કોમનો ઉપયોગ કરી રહ્યો છું. એકવાર તમે ડોમેન ખરીદ્યા પછી, સ્ક્વેર સ્પેસ ડીએનએસ કન્ફિગરેશન પેનલ તરફ જાઓ અને આઇપી સરનામાં દ્વારા સર્વર પર તમારા ડોમેનને દર્શાવતો રેકોર્ડ ઉમેરો. તે આના જેવું દેખાવું જોઈએ:def is_superuser_or_vendor(user):
return user.profile.vendor or user.is_superuser
@ A xx.xx.xx.xxહોસ્ટ તરીકે @ operator પરેટર સાથે, એટલે કે આ ડોમેન હેઠળના બધા સબડોમેન્સ અને રુટ ડોમેન બધા સર્વર પર રીડાયરેક્ટ કરશે. ઘોષણા કરવા માટે વધુ રેકોર્ડ્સ છે, પરંતુ એકવાર અમે મેઇલ મોકલવા માટે તૈયાર થઈ ગયા પછી અમે આ તરફ આગળ વધી શકીએ છીએ. ધ્યાનમાં રાખો, તમે સર્વરથી મેઇલ સફળતાપૂર્વક મોકલવા માટે સક્ષમ છો તે પહેલાં ઘણા દિવસો લાગી શકે છે. અમે જે DNS રેકોર્ડ્સ સેટ કરી રહ્યા છીએ તે પ્રચાર કરવામાં સમય લેશે.
તો પણ, આપણે શરૂ કરવાની એકમાત્ર રેકોર્ડ એ એક રેકોર્ડ છે. તેથી હવે અમે અમારા પ્રોજેક્ટ અનુસાર નીચેની સ્ક્રિપ્ટ ભરી શકીએ છીએ અને તેને ચલાવી શકીએ છીએ.
અમને મૂળભૂત પ્રગતિ માટે જે જોઈએ છે તે ઇન્સ્ટોલ કરવા માટે નાના સેટઅપ સ્ક્રિપ્ટથી પ્રારંભ કરીએ. અમે હજી સુધી ઘણી અવલંબન અથવા પોસ્ટગ્રેસ્ક્લનો ઉપયોગ કરીશું નહીં, અમે ફક્ત મૂળભૂત HTTP સર્વર શરૂ કરીશું અને જ્યારે તે પૂર્ણ થાય ત્યારે તેને પ્રમાણિત કરવાની ચિંતા કરીશું. યાદ રાખો, HTTPS પ્રમાણપત્ર મેળવવા અને સર્વરને સુરક્ષિત રીતે ચલાવવા માટે, આપણે ભાડે સર્વરની સાથે ડોમેન ખરીદવાની જરૂર રહેશે. હમણાં માટે, આ ફાઇલમાં "ટીમ" ને તમારા વપરાશકર્તાના નામથી, તમારા પ્રોજેક્ટની ડિરેક્ટરીથી "ડીર" ને બદલો અને <> ટ s ગ્સમાં તમારા ઇમેઇલ અને ડોમેન સપ્લાય કરો.વધુમાં, અમે આ કોડ ચલાવતા પહેલા, આપણે સેટિંગ્સને ફાયરવ all લમાં બદલવાની જરૂર છે, જો કોઈ હોય તો, હોસ્ટિંગ પ્રદાતા સપોર્ટ કરે છે. સામાન્ય રીતે આ તમારા હોસ્ટિંગ પ્રદાતાના 'નેટવર્ક્સ' ટેબમાં હોય છે, અથવા જો તમે સ્વ હોસ્ટિંગ છો, તો તે તમારા રાઉટરના 'પોર્ટ ફોરવર્ડિંગ' વિભાગમાં છે. જો તમે સેલ્ફ હોસ્ટિંગનો ઉપયોગ કરી રહ્યાં છો, તો તમે તમારા સર્વર મશીનના સરનામાં સાથે તમારા રાઉટર દ્વારા સ્થિર આઇપી પણ સેટ કરવા માંગો છો. વાંચવા/લખવા માટે તમારે નીચેના બંદરો ખોલવાની જરૂર રહેશે.22 (એસએસએચ) 25 (મેઇલ) 587 (મેઇલ) 110 (મેઇલ ક્લાયંટ) 80 (HTTP) 443 (HTTPS)#!/બિન/બાશ સેકંડ = 0 પાયથોન_વર્ઝન = 3.12 ઇકો "ફેમ્મેબેબે ઇન્સ્ટોલર પ્રારંભ." ડીઆઈઆર = "/હોમ/ટીમ/" વપરાશકર્તા = "ટીમ" # લોગ આદેશો ઇકો "લોગિંગ આદેશો" સુડો સીપી લોગ/આદેશો. log/var/log/commands.log સુડો chmod -r a+w /var /લોગ સુડો chown -r: syslog /var /લોગ ઇકો $ 'ઉર્ફે વેનવ = "સ્રોત/ઘર/ટીમ/ફેમ્મેબેબે/વેનવ/બિન/સક્રિય" | સુડો ટી -એ /એચઓએમ/ટેમ/પ્રોફાઇલ ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ /વગેરે /બાશ્રક ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ "/home/team/.bashrc" ઇકો $ 'પ્રોમ્પ્ટ_કોમંડ = \' રીટર્ન_વલ = $ ?; લોગર -p સ્થાનિક 6.debug "$ (હોમી) [$$]: $ (ઇતિહાસ 1 સુડો ટી -એ /રૂટ /.બેશ્રક ઇકો "સોર્સ /ઇટીસી /બશરસી" | સુડો ટી -એ /એચઓએમ/ટેમ/પ્રોફાઇલ ઇકો "/var/log/commands.log" | સુડો ટી -એ /etc/logrotate.d/syslog ઇકો "લોકલ 6.* /var/log/commands.log" | સુડો ટી -એ "/etc/rsyslog.d/bash.conf" સુડો સર્વિસ RSYSLOG ફરીથી પ્રારંભ કરો # નેનો રૂપરેખા ઇકો "સેટ ટેબસાઇઝ 4" >> .એનએનઓઆરસી ઇકો "સેટ ટેબસ્ટોસ્પેસ" >> .એનએનઓઆરસી # ગિટ રૂપરેખા ઇકો "ગિટ કન્ફિગરેશન" સુડો ગિટ રૂપરેખા -ગ્લોબલ યુઝર.ઇમેઇલ "@gmail.com" અને & સુડો ગિટ રૂપરેખા -ગ્લોબલ યુઝર.નામ "" ગિટ રૂપરેખા -ગ્લોબલ -એડીડી સેફ.ડિરેક્ટરી $ "$ ડીર" sudo ssh -keyscan -t rsa gitlab.com | સુડો ટી -એ/રૂટ /.એસએસએચ/ક nown ન on ન_હોસ્ટ્સ sudo ssh -keyscan -t rsa github.com | સુડો ટી -એ/રૂટ /.એસએસએચ/ક nown ન on ન_હોસ્ટ્સ # અપડેટ અને ઇન્સ્ટોલ કરો ઇકો "પેકેજો અપડેટ અને ઇન્સ્ટોલ કરો" સુડો એપીટી અપડેટ && સુડો questrestart_mode = એક યોગ્ય અપગ્રેડ -y સુડો એપીટી પર્જ પોસ્ટગ્રેસ્ક્લ-ક્લાયન્ટ -14 પોસ્ટગ્રેસ્ક્લ-ક્લાયંટ-કોમન પોસ્ટગ્રેસ્ક્લ-સામાન્ય પોસ્ટગ્રેસ્ક્લ-કન્ફ્રાઇબ પોસ્ટગ્રેસ્ક્લ-વાય ઇકો "પોસ્ટફિક્સ પોસ્ટફિક્સ/મેઇલનામ શબ્દમાળા fimmebabe.com" | સુડો ડેબકોન્ફ-સેટ-પસંદગીઓ ઇકો "પોસ્ટફિક્સ પોસ્ટફિક્સ/મુખ્ય_મેઇલર_ટાઇપ શબ્દમાળા 'ઇન્ટરનેટ સાઇટ'" | સુડો ડેબકોન્ફ-સેટ-પસંદગીઓ Sudo questartart_mode = એક ડેબિયન_ફ્રન્ટેન્ડ = નોનરેન્ટિવ એપીટી ઇન્સ્ટોલ -વાય પોસ્ટફિક્સ sudo NEEDRESTART_MODE=a apt install -y rkhunter clamav-daemon libx264-dev ffmpeg libapache2-mod-wsgi-py3 apache2 cmake python-is-python3 python3-venv python3-pip python3-django expect tesseract-ocr openjdk-8-jdk redis-server libopencv-dev python3-opencv python3-dev libsasl2-dev opendkim opendkim-tools dovecot-core dovecot-pop3d dovecot-imapd auditd procmail libpq-dev postgresql postgresql-contrib libheif-dev snapd git software-properties-common certbot પાયગણો # ક્લેમવ એન્ટિવાયરસને સક્ષમ કરો પડઘો "એન્ટીવાયરસ શરૂ કરવો" સુડો સિસ્ટમસીટીએલ ક્લેમવ-ડિમનને સક્ષમ કરો સુડો સિસ્ટમ્ક્ટલ ક્લેમવ-ડિમન પ્રારંભ કરો # હોસ્ટનામ સેટ કરો ઇકો "127.0.0.1 ફેમ્મેબેબે" | સુડો ટી -એ /વગેરે /યજમાનો સુડો હોસ્ટનેક્ટલ સેટ-યજમાન ફેમ્બેબે # સેટઅપ ડેટાબેસ બેકઅપ ઇકો "બેકઅપથી બિલ્ડિંગ ડેટાબેસ, આમાં થોડો સમય લાગી શકે છે." કેટ ડીબી.જેસન. ?? > ડીબી.જેસન પડઘો "ફાયરવ all લને રૂપરેખાંકિત કરો" સુડો યુએફડબલ્યુ ડિફ default લ્ટ આઉટગોઇંગને મંજૂરી આપો સુડો યુએફડબલ્યુ ડિફ default લ્ટ ઇનકમિંગ નામંજૂર સુડો યુએફડબલ્યુ 22 ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ HTTP ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ HTTPs ને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ એસએમટીપીએસ' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'પોસ્ટફિક્સ સબમિશન' ને મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'ડોવેકોટ પ pop પ 3' ની મંજૂરી આપો સુડો યુએફડબ્લ્યુ 'ડોવેકોટ સિક્યુર પ Pop પ 3' ની મંજૂરી આપો સુડો યુએફડબ્લ્યુ 110/ટીસીપીને મંજૂરી આપે છે સુડો યુએફડબ્લ્યુ 25/ટીસીપીને મંજૂરી આપે છે ઇકો "વાય" | સુડો યુએફડબલ્યુ સક્ષમ # Iptables અક્ષમ કરો પડઘો "ફાયરવ all લને રૂપરેખાંકિત કરો" સુડો iptables -p ઇનપુટ સ્વીકારો સુડો iptables -p આઉટપુટ સ્વીકારો સુડો iptables -p ફોરવર્ડ સ્વીકારો સુડો iptables -f sudo iptables-save # સેટઅપ વર્ચ્યુલેનવ સીડી $ ડીર પડઘો "વર્ચુઅલ વાતાવરણ બનાવવું" પાયથોન -એમ વેન્વ વેન્વ સોર્સ વેન્વ/ડબ્બા/સક્રિય પીઆઈપી 3 ઇન્સ્ટોલ -આર આવશ્યકતાઓ.ટીક્સ્ટ # સર્ટબોટ ઇન્સ્ટોલ કરો પડઘો "પ્રમાણપત્રો ઇન્સ્ટોલ કરવું" સુડો સ્નેપ ઇન્સ્ટોલ કોર; સુડો સ્નેપ રિફ્રેશ કોર સુડો સ્નેપ ઇન્સ્ટોલ -ક્લાસિક સર્ટબોટ સુડો એલએન -એસ/સ્નેપ/બિન/સેર્ટબોટ/યુએસઆર/બિન/પ્રમાણપત્ર સુડો સ્નેપ ઇન્સ્ટોલ રેડિસ સુડો સિસ્ટમસીટીએલ અપાચે 2 ને સક્ષમ કરો SUDO સિસ્ટમસીટીએલ પ્રારંભ અપાચે 2 # સર્ટબોટ ચલાવો સુડો સર્ટબોટ-એપેચે-નોન-ઇન્ટરેક્ટિવ-એગ્રી-ટ s સ-ડોમેન્સ fimmebabe.com-mail @gmail.com # વપરાશકર્તા સેટિંગ્સ સેટ કરો sudo gpasswd -a www -ડેટા વપરાશકર્તાઓ # પરવાનગી સેટ કરો પડઘો "પરવાનગી સેટિંગ" સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ કેશ/ સુડો ચ્મોદ એ+આરડબ્લ્યુએક્સ -આર કેશ/ #સુડો ચ own ન -આર ટીમ: વપરાશકર્તાઓ/var/રન/ #સુડો ચ own ન રુટ: રુટ/રન/સુડો/ટીએસ -આર સુડો ચ own ન -આર રેડિસ: રેડિસ/વાર/લિબ/રેડિસ સુડો ચાવન -આર રેડિસ: રેડિસ/વીઆર/લોગ/રેડિસ સુડો ચ્મોડ -આર યુ+આરડબ્લ્યુએક્સ, જી+આરડબ્લ્યુએક્સ, યુ+આરએક્સ/વીઆર/લોગ/રેડિસ સુડો chmod +r /etc/redis/redis.conf સુડો chown -r ટીમ: વપરાશકર્તાઓ/var/લોગ/ સુડો chown -r: વપરાશકર્તાઓ .././ સુડો ચમોડ -આર જી+આરડબ્લ્યુએક્સ ./ સુડો chmod -r g+rx .././ સુડો ચમોડ -આર જી -આરડબ્લ્યુએક્સ ../.ssh સુડો ચોમોડ 774 ./ સુડો chown -r www-ડેટા: www-ડેટા મીડિયા/ સુડો ચાવન www-ડેટા: વપરાશકર્તાઓ ./ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ મીડિયા/ સુડો ચાવન -આર ટીમ: વપરાશકર્તાઓ ./ # સેવાઓ ફરીથી લોડ કરો અને સક્ષમ કરો પડઘો "સેવાઓ સક્ષમ" સુડો સિસ્ટમ્ક્ટલ ડિમન-રિલોડ સુડો સિસ્ટમસીટીએલ ક્લેમવ-ડિમનને સક્ષમ કરો સુડો સિસ્ટમ્ક્ટલ ક્લેમવ-ડિમન પ્રારંભ કરો # અપાચે મોડ્યુલોને સક્ષમ કરો ઇકો "અપાચે 2 ને સક્ષમ કરવું" સુડો એ 2 એનમોડ ફરીથી લખો સુડો એ 2 એનમોડ ડબલ્યુએસજીઆઈ સુડો એ 2 એનમોડ હેડરો સુડો એ 2 એનમોડ એસએસએલ સુડો એ 2 એનમોડ પ્રોક્સી સુડો એ 2 એનમોડ પ્રોક્સી_બેલેન્સર સુડો એ 2 એનમોડ પ્રોક્સી_એચટીટીપી સુડો એ 2 એનમોડપ્રોક્સી_સ્ટુનલ # ડિમનને ફરીથી લોડ કરો અને અપાચે, પોસ્ટફિક્સ અને ઓપેન્ડકિમ ફરીથી પ્રારંભ કરો સુડો સિસ્ટમ્ક્ટલ ડિમન-રિલોડ સુડો સિસ્ટમસીટીએલને ફરીથી પ્રારંભ કરો અપાચે 2 SUDO સિસ્ટમસીટીએલ ફરીથી પ્રારંભ ઓપનકીમ પોસ્ટફિક્સ ડોમેન ગોઠવણી માટે # આઇપીવી 6 અને ઓપનડકીમ બતાવો પડઘો "નીચેની માહિતીને ડોમેન ગોઠવણી પર ક Copy પિ કરો." હોસ્ટનામ -i આઈપી એ | ખીણ આઈપી -6 એડ્ર | scંચીપન
!/બિન/બાશઆદેશો
નેનો રૂપરેખા <small># ગિટ રૂપરેખા
અપડેટ અને ઇન્સ્ટોલ કરોક્લેમવ એન્ટિવાયરસને સક્ષમ કરો
યજમાન
સેટઅપ ડેટાબેસઆઇપ્ટેબલ્સને અક્ષમ કરો
વર્ચ્યુઅલેનવ સેટ કરો# પ્રમાણપત્ર સ્થાપિત કરો
success_url = '/' # સર્ટિબોટ
def test_func(self): # વપરાશકર્તા સેટિંગ્સ સેટ કરો
પરવાનગી સેટ કરવીસુડો chown -r ટીમ: વપરાશકર્તાઓ/var/run/
સુડો ચાવન રુટ: રુટ/રન/સુડો/ટીએસ -આરસેવાઓ ફરીથી લોડ કરો અને સક્ષમ કરો
અપાચે મોડ્યુલોને સક્ષમ કરોnano users/urls.py
ડિમનને ફરીથી લોડ કરો અને અપાચે, પોસ્ટફિક્સ અને ઓપનડકીમ ફરીથી પ્રારંભ કરોડોમેન ગોઠવણી માટે આઇપીવી 6 અને ઓપનડકીમ બતાવો
આ કોડ ચલાવતા પહેલા, ખાતરી કરો કે તમે ખરીદ્યો છે તે ડોમેન સર્વર સાથે જોડાયેલ છે. આ કરવા માટે, તમારા સ્થાનિક મશીન પર ટર્મિનલ ખોલો, અને આ આદેશ તમારા ડોમેનથી ચલાવો:# પિંગ ફેમ્મેબેબે.કોમ # પિંગ પછી, તમારા ડોમેન અહીં દાખલ કરો
# પિંગ પછી, અહીં તમારું ડોમેન દાખલ કરો
જો બધા બરાબર લાગે છે અને સર્વર જવાબો મોકલી રહ્યું છે, તો અમે સ્ક્રિપ્ટ ચલાવવા અને પેકેજો ઇન્સ્ટોલ કરવા તેમજ અમારા અપાચે સર્વરને પ્રારંભ કરવા, સક્ષમ અને પ્રમાણિત કરવા માટે તૈયાર છીએ.આ પોસ્ટફિક્સને ગોઠવવા માટે જરૂરી તમામ સેટઅપ નથી, અમે તે સેટઅપને વધુ પછીથી જોશું. હમણાં માટે, આ સેટઅપ કોડ ચલાવો અને તમારા સર્વરને ઇન્સ્ટોલ કરવા અને પ્રમાણિત કરવામાં થોડી મિનિટો લેવી જોઈએ. ફરી એકવાર, તમે ખરીદેલા નામ અનુસાર સ્ક્રિપ્ટમાં નામ, ઇમેઇલ અને ડોમેન નામ બદલવાની ખાતરી કરો.
હવે જ્યારે સર્વરની જોગવાઈ કરવામાં આવી છે, તો તમે કોઈપણ વેબ બ્રાઉઝરમાં URL પર જઈ શકો છો અને સર્વર HTTPS ચલાવી રહ્યું છે તેની ખાતરી કરવા માટે તપાસ કરી શકો છો. જો તે ન હોય તો, DNS રેકોર્ડ્સને પકડવા માટે થોડી રાહ જોવાનો પ્રયાસ કરો અને પછી સર્ટબોટ સર્ટિફિકેટ ફરીથી પ્રયાસ કરવા માટે નીચેનો આદેશ ચલાવો:sudo backup
સુડો સર્ટબોટ-એપેચે-નોન-ઇન્ટરેક્ટિવ-એગ્રી-ટ s સ-ડોમેન્સ .com --mail @gmail.comજ્યાં સુધી તમે બધું યોગ્ય રીતે ગોઠવ્યું છે, ત્યાં સુધી તમે તમારા કોડ કાર્યરત છે અને લાઇવ વેબપેજ પ્રદર્શિત કરવા માટે ફક્ત અપાચેના ડિફ default લ્ટ પૃષ્ઠને access ક્સેસ કરવા માટે સમર્થ હોવા જોઈએ. આગળ, ચાલો સેટિંગ્સને સંપાદિત કરીએ.પી. અમે સેટિંગ્સ, તેમજ આંતરિક આઇપીએસમાં ડોમેનને પણ ગોઠવીશું.
nano yourproject/settings.pyસેટિંગ્સમાં, આ રેખાઓ બદલો/ઉમેરો.
ડીબગ = ખોટું # સાઇટ રૂપરેખા સાઇટ_નામ = 'ફેમ બેબે' પ્રોટોકોલ = 'https' ડોમેન = 'fimmebabe.com' સાઇટ_આઈડી = 1 આધાર_યુઆરએલ = પ્રોટોકોલ + ': //' + ડોમેન મંજૂરી_હોસ્ટ્સ = [ડોમેન] આંતરિક_આઇપી = [ 'Xx.xx.xx.xx', ]સ્થળ રૂપરેખા
હવે, આપણે અપાચે 2 ને ગોઠવવાની જરૂર રહેશે. ચાલો અમે આ લાઇન સાથે ગોઠવીશું તે રૂપરેખા ફાઇલને સંપાદિત કરીએ:સુડો નેનો /etc/apache2/sites-vayvel/femmebabe-le-ssl.conf
આ રૂપરેખા ફાઇલમાં અમારું ડોમેન નામ અને વપરાશકર્તા અને પ્રોજેક્ટનું નામ હોવું જોઈએ. હું ફેમ્મેબેબે ડોટ કોમ, વપરાશકર્તા નામની ટીમ અને પ્રોજેક્ટ નામ ફેમ્મેબેબે ડોમેન નામનો ઉપયોગ કરી રહ્યો છું.સર્વરસિગ્નેચર બંધ કાંસપરો કાયમી/https://femmebabe.com/ ને રીડાયરેક્ટ કરો સર્વરનામ fimmebabe.com સર્વરએડમિન ટીમ@femmebabe.com દસ્તાવેજ રૂટ/var/www/html એરરલોગ $ {apache_log_dir}/error.log કસ્ટમલોગ $ {apache_log_dir}/access.log સંયુક્ત ઉપનામ/સ્થિર/ઘર/ટીમ/ફેમ્મેબેબ/સ્થિર બધા મંજૂરીની જરૂર છે ઉપનામ/મીડિયા/ચિહ્નો/ઘર/ટીમ/ફેમ્મેબેબ/મીડિયા/ બધા મંજૂરીની જરૂર છે બધા મંજૂરીની જરૂર છે Wsgiscriptalias//home/team/femmebabe/femmebabe/wsgi.py.py Wsgidaemonprocess ફેમ્મેબેબે પાયથોન-પાથ =/ઘર/ટીમ/ફેમ્મેબેબ/પાયથોન-હોમ =/હોમ/ટીમ/ટીમ/ફેમ્મેબેબ/વેનવ હેડર-બફર-સાઇઝ = 100000000000 વપરાશકર્તા = ટીમ ડબલ્યુએસજીપ્રોસેસગ્રુપ ફેમ્બેબે WsgiapplicationGroup %{વૈશ્વિક} વિકલ્પો અનુક્રમણિકાઓ અનુસરે છે બધાને મંજૂરી આપો પર ફરીથી લખાણ લખવું ફરીથી લખો %{વિનંતી_યુરી} \. (સીએસએસ | વેબપી ફરીથી લખી શકાય છે %{http_referer}!^Https: //femmebabe.com/media/.*$ [એનસી] ફરીથી લખવું ^(.+?)/$/મીડિયા/$ 1 [એફ, એલ] શામેલ કરો /etc/letsencrypt/options-ssl-apache.conf Sslcertifatefile /etc/letsencrypt/live/femmebabe.com/fullchain.pem Sslcertifatekeyfile /etc/letsencrypt/live/femmebabe.com/privkey.pem હેડર સેટ એક્સ-ફ્રેમ-વિકલ્પો: "સમાન or રિગિન" હેડર સેટ એક્સેસ-કંટ્રોલ-એલ્લો-ઓરિગિન "https://femmebabe.com" સમયસમાપ્તિ 60000 લિમિટેડ રેક્વેસ્ટબોડી 0 હેડર સેટ કેશ-નિયંત્રણ "મેક્સ-એજ = 30, સાર્વજનિક" સર્વરનામ fimmebabe.com સર્વરએડમિન ટીમ@femmebabe.com દસ્તાવેજ રૂટ/var/www/html એરરલોગ $ {apache_log_dir}/error.log કસ્ટમલોગ $ {apache_log_dir}/access.log સંયુક્ત પર ફરીથી લખાણ લખવું ફરીથી લખો %{સર્વર_નામ} = fimmebabe.com ફરીથી લખવું
તમારા સર્વરને રૂપરેખાંકિત કરતી વખતે આ ઉદાહરણ કોડમાં પ્રોજેક્ટ, ડિરેક્ટરીઓ અને ડોમેનનું નામ બદલવાની ખાતરી કરો. હવે, આપણે ડિફ default લ્ટ સાઇટને અક્ષમ કરવાની જરૂર રહેશે. આ બાશનો ઉપયોગ કરીને કરી શકાય છે.સુડો એ 2 ડિસાઇટ 000-ડિફ ault લ્ટ-લે-એસએસએલ સુડો એ 2 ડિસાઇટ 000-ડિફોલ્ટ સુડો એ 2 ડિસાઇટ ડિફ default લ્ટ-એસએસએલ
આગળ, અમે બાશનો ઉપયોગ કરીને, ડિફ default લ્ટ સાઇટને સક્ષમ કરી શકીએ અને અપાચે 2 ને ફરીથી લોડ કરી શકીએ છીએ. /Etc/apache2/સાઇટ્સ-ઉપલબ્ધ/માં સંપાદન કરતી વખતે તમે જાહેર કરેલી ફાઇલના નામથી ફેમ્મેબેબેને બદલવાનું ભૂલશો નહીં.સુડો એ 2 સેનાઇટ ફેમ્મેબે-લે-એસએસએલ SUDO સિસ્ટમસીટીએલ ફરીથી લોડ અપાચે 2
નવબારમાં તમારા ડોમેન પર પાછા જાઓ. તમારે તમારા વેબ બ્રાઉઝરમાં ગોઠવેલ સાઇટ જોવી જોઈએ. અભિનંદન! જો તમે તેને જોતા નથી, તો તમારે કેટલાક ફેરફારો કરવાની જરૂર પડી શકે છે. તમારા પ્રોજેક્ટ, અપાચે ગોઠવણીની સેટિંગ્સની કાળજીપૂર્વક સમીક્ષા કરો અને ખાતરી કરો કે તમારી પાસે કોઈ ભૂલો નથી, અને ભૂલો માટે પ્રોજેક્ટને તપાસવા માટે નીચેના આદેશો ચલાવો.ssh-keygen
સીડી પ્રોજેક્ટ નામ
સોર્સ વેન્વ/ડબ્બા/સક્રિય
પાયથોન મેનેજ.પી ચેકજો તમને તમારા પાયથોન પ્રોજેક્ટમાં ભૂલો છે, તો તેઓ જ્યાં છે ત્યાં ટ્રેસ કરો અને તેમને ઠીક કરો. તમે જ્યાં છે તેના આધારે તમારી બધી ભૂલો જોઈ શકશો નહીં, તેથી જો તમને ભૂલ હોય કે જે ખાલી કહે છે કે "પ ulate પ્યુલેટ રેન્ટ્રેન્ટ નથી", તો ભૂલને છતી કરવા માટે વર્ચુઅલ વાતાવરણ, રજિસ્ટ્રી.પી.માં નીચેની ફાઇલને સંપાદિત કરો.
નેનો વેન્વ/લિબ/પાયથોન 3.12/સાઇટ-પેકેજેસ/જાંગો/એપ્લિકેશન્સ/રજિસ્ટ્રી.પી.cat ~/.ssh/id_rsa.pub
લાઇન to 83 પર સ્ક્રોલ કરો, જ્યાં આ રનટાઇમ ભૂલ ઉભી કરવામાં આવે છે (રનટાઇમરરર ("પોપ્યુલેટ () રેન્ટ્રન્ટ નથી")), અને આ લાઇન પહેલાં એક ટિપ્પણી ઉમેરો, પછી સમાન ઇન્ડેન્ટેશન સાથે, સેલ્ફ.એપ_કોનફિગ્સ =}} ઉમેરીને. આ આના જેવું લાગે છે:જો સેલ્ફ.લોડિંગ: # એપ્લિકેશનકોનફિગ.અન () ને ટાળવા માટે રેન્ટ્રન્ટ ક calls લ્સ અટકાવો () # પદ્ધતિઓ બે વાર. # વધો self.app_configs = {} સ્વ.લોડિંગ = સાચું
એપકોનફિગ.અન () ને ટાળવા માટે રેન્ટ્રન્ટ ક calls લ્સ અટકાવો ()ssh-keygen -t rsa -b 4096
પદ્ધતિઓ બે વાર.રન ટાઇમરોર ("પોપ્યુલેટ () રેન્ટ્રન્ટ નથી")
પછી તમે ફરીથી પ્રોજેક્ટને ચકાસી શકો છો અને ભૂલને છતી કરી શકો છો.ssh ubuntu@XX.XX.XX.XX
પાયથોન મેનેજ.પી ચેકપછી તમે ભૂલ જોઈ શકો છો અને તેને ઠીક કરી શકો છો. જ્યારે તમારી પાસે તેને ઠીક કરે છે અને કોડ કોઈ ભૂલો વિના કમ્પાઇલ કરે છે, ત્યારે ફાઇલને પાછા બદલવાની ખાતરી કરો જેથી તે આના જેવું લાગે છે:
જો સેલ્ફ.લોડિંગ: # એપ્લિકેશનકોનફિગ.અન () ને ટાળવા માટે રેન્ટ્રન્ટ ક calls લ્સ અટકાવો () # પદ્ધતિઓ બે વાર. રન ટાઇમરોર ("પોપ્યુલેટ () રેન્ટ્રન્ટ નથી") # સેલ્ફ.એપ_કોનફિગ્સ = {} સ્વ.લોડિંગ = સાચુંએપકોનફિગ.અન () ને ટાળવા માટે રેન્ટ્રન્ટ ક calls લ્સ અટકાવો ()
પદ્ધતિઓ બે વાર.nano sshd_config
self.app_configs = {}# પૂરી પાડવામાં આવેલ સર્વર online નલાઇન છે, જ્યારે આપણે તેનામાં આગળ કોઈ ફેરફાર કરીએ, ત્યારે સર્વરને ફરીથી લોડ કરવા માટે આપણે નીચેના આદેશનો ઉપયોગ કરવાની જરૂર છે:
# SUDO સિસ્ટમસીટીએલ ફરીથી લોડ અપાચે 2
# અદ્ભુત! પરંતુ મેઇલ મોકલવાનું શું? ઇમેઇલ મોકલવાનું શરૂ કરવા માટે, આપણે પહેલા ડોમેન ગોઠવણીને અપડેટ કરવાની જરૂર રહેશે. આ સ્ક્વેર સ્પેસમાં તમારી DNS પેનલમાં અથવા તમે પસંદ કરેલા ડોમેન નામ રજિસ્ટ્રારમાં હોવું જોઈએ. આપણે ગોઠવણી ઇન્સ્ટોલ કરવાની અને ઉમેરવાની પણ જરૂર રહેશે, અને થોડા આદેશો ચલાવશો.
# પ્રથમ, ચાલો સર્વરનું IPV6 સરનામું મેળવીએ. તે પછી અમે તમારા DNS ખોલીશું અને રેકોર્ડ્સ ઉમેરીશું.
# સર્વરનું IPV6 સરનામું મેળવવા માટે, આ આદેશનો ઉપયોગ કરો:
# આઈપી -6 એડ્ર
# હવે, અમે DNS સેટિંગ્સમાં નીચેના રેકોર્ડ્સ ઉમેરી શકીએ છીએ. મારા રેકોર્ડ્સ આના જેવા લાગે છે. જો કે, તમારા રેકોર્ડ્સ માટે, તમારે આઇપી સરનામાંને તમારા આઇપી (75.147.182.214 નહીં, તે ખાણ છે) સાથે બદલવું જોઈએ. ફેમ્મેબેબે ડોટ કોમની જગ્યાએ તમારું ડોમેન પણ ઉમેરો, તેમજ પાછલા આદેશ સાથે મળેલ તમારું આઈપીવી 6 સરનામું (તમે ખાણ, ફે 80 :: 725 એ: એફએફએફ: ફે 49: 3E02) નો ઉપયોગ કરી શકતા નથી. હમણાં માટે ડોમેઇનકી વિશે ચિંતા કરશો નહીં, જ્યારે આપણે પોસ્ટફિક્સ, મેઇલ સર્વર, ઓપનડકીમ સાથે સેટ કરીએ છીએ અને કી છાપીએ છીએ ત્યારે આ બનાવવામાં આવે છે. અમે આ છેલ્લે ગોઠવીશું.
# @
એક
એન/એ
75.147.182.214
# @
એમ.એક્સ.
10
fimmebabe.com
# @
પી.ટી.આર.
એન/એ
fimmebabe.com
# @
Xt
એન/એ
Txt @ v = spf1 mx Ip75.147.182.214IP6: FE80 :: 725A: FFF: FE49: 3E02 ~ બધા
# ડિફોલ્ટ._બીમી
Xt
એન/એ
v = bimi1; l = https: //femmebabe.com/media/static/femmebabe.svg
# _dmarc
Xt
એન/એ
v = dmarc1; પી = કંઈ નહીં
# હવે, આપણે પોસ્ટફિક્સ માટે કેટલાક સતત ગોઠવણી ઉમેરવાની જરૂર રહેશે. આપણે ફક્ત ખાતરી કરવાની જરૂર છે કે અમે ડોમેન નામ, ફેમ્મેબેબે ડોટ કોમ, તમે ઉપયોગ કરી રહ્યાં છો તે ડોમેન નામથી બદલીએ છીએ. ચાલો એક પછી એક રૂપરેખા ફાઇલો જોઈએ, અને ઓએસ પર ઇન્સ્ટોલ કરવા માટે, અમારા પ્રોજેક્ટમાં રૂપરેખા નામની ડિરેક્ટરીમાં તેમને ઇન્સ્ટોલ કરીએ.
# નેનો રૂપરેખા/etc_postfix_main.cf
# ફાઇલમાં આ ટેક્સ્ટ ઉમેરો
# એક ટિપ્પણી, વધુ સંપૂર્ણ સંસ્કરણ માટે #/usr/share/postfix/main.cf.dist જુઓ
# ડેબિયન વિશિષ્ટ: ફાઇલ નામનો ઉલ્લેખ કરવો પ્રથમ કારણ બનશે
તે ફાઇલની લાઇન નામ તરીકે ઉપયોગમાં લેવા માટે. ડેબિયન ડિફોલ્ટ
# છે /વગેરે /મેઇલનામ.
#માયોરિગિન = /વગેરે /મેઇલનામ
smtpd_banner = $ myhostName ESMTP $ મેઇલ_નામ (ubuntu)
BIFF = ના
# ઉમેરવું. ડોમેન એ MUA નું કામ છે.
એપેન્ડ_ડોટ_માયડોમેઇન = ના
"વિલંબિત મેઇલ" ચેતવણીઓ પેદા કરવા માટે આગળની લાઇન અનક om મ્પમેન્ટ
#delay_warning_time = 4h
readme_directory = ના
# જુઓ
# તાજી ઇન્સ્ટોલ.
સુસંગતતા_લેવલ = 3.6
# TLS પરિમાણો
SMTPD_TLS_CERT_FILE =/etc/LETSENCRYPT/LIVE/fimmebabe.com/fullchain.pem
SMTPD_TLS_KEY_FILE =/etc/LETSENCRYPT/LIVE/fimmebabe.com/privekey.pem
smtpd_tls_security_level = મે
smtp_tls_capath =/etc/ssl/પ્રમાણપત્રો
smtp_tls_session_cache_database = btree: $ {ડેટા_ડિરેક્ટરી}/smtp_scache
smtpd_relay_reestrictions = પરમ_સાસલ_અથેન્ટિકેટેડ, ડિફર_ઉથ_ડેસ્ટિનેશન
myhostName = fimmebabe.com
ઉપનામ_મેપ્સ = હેશ:/વગેરે/ઉપનામ
ઉર્ફે_ડેટાબેસ = હેશ:/વગેરે/ઉપનામ
Myorigin = /etc /મેઇલનામ
માયડેસ્ટિનેશન = fimmebabe.com, લોકલહોસ્ટ, $ માયહોસ્ટનામ
smtp_helo_name = fimmebabe.com
માયનેટવર્ક્સ = 127.0.0.0/8 [::ffff:127.0.0.0/104 [:: 1]/128
મેઇલબોક્સ_સાઇઝ_લિમિટ = 0
પ્રાપ્તકર્તા_ડેલિમિટર = +
inet_interfaces = બધા
inet_protocols = બધા
# મિલ્ટર ગોઠવણી
milter_default_action = સ્વીકારો
milter_protocol = 6
smtpd_milters = સ્થાનિક: /opendkim/opendkim.sock
non_smtpd_milters = $ smtpd_milters
smtp_tls_security_level = એન્ક્રિપ્ટ
smtp_tls_loglevel = 1
વર્ચ્યુઅલ_ટ્રાન્સપોર્ટ = એલએમટીપી: યુનિક્સ: ખાનગી/ડોવેકોટ-એલએમટીપી
smtpd_sasl_path = ખાનગી/લેખ
# ટિપ્પણી, વધુ સંપૂર્ણ સંસ્કરણ માટે/usr/share/postfix/main.cf.dist જુઓ
# ડેબિયન વિશિષ્ટ: ફાઇલ નામનો ઉલ્લેખ કરવો પ્રથમ કારણ બનશે
# નામ તરીકે ઉપયોગમાં લેવા માટે તે ફાઇલની લાઇન. ડેબિયન ડિફોલ્ટ
# IS /etc /મેઇલનામ.
# Myorigin = /etc /મેઇલનામ
# ઉમેરવું .ડોમેઇન એ MUA નું કામ છે.
# "વિલંબિત મેઇલ" ચેતવણીઓ પેદા કરવા માટે આગળની લાઇન અનક om મ્પમેન્ટ
# વિલંબ_વેર્નિંગ_ટાઇમ = 4 એચ
# Http://www.postfix.org/compatibibility_readme.html જુઓ - ડિફ default લ્ટ પર 3.6 ચાલુ
# તાજી ઇન્સ્ટોલ.
# TLS પરિમાણો
# મિલ્ટર રૂપરેખાંકન
# આગળ રૂપરેખા!
# નેનો રૂપરેખા/etc_postfix_master.cf
# આ રેખાઓ ઉમેરો:
# #
# પોસ્ટફિક્સ માસ્ટર પ્રક્રિયા ગોઠવણી ફાઇલ. ફોર્મેટ પર વિગતો માટે
ફાઇલની #, માસ્ટર (5) મેન્યુઅલ પૃષ્ઠ જુઓ (આદેશ: "મેન 5 માસ્ટર" અથવા
# -ન-લાઇન: http://www.postfix.org/master.5.html).
#
# આ ફાઇલને સંપાદિત કર્યા પછી "પોસ્ટફિક્સ ફરીથી લોડ" ચલાવવાનું ભૂલશો નહીં.
#
# ==========================================================================
# સર્વિસ પ્રકાર ખાનગી અનપ્રિવ ક્રોટ વેકઅપ મેક્સપ્રોક આદેશ + આર્ગ્સ
# (હા) (હા) (ના) (ક્યારેય નહીં) (100)
# ==========================================================================
smtp inet n - y - - smtpd
#smtp inet n - y - 1 પોસ્ટસ્ક્રીન
#SMTPD પાસ - - y - - smtpd
#dnsblog Unix - - y - 0 dnsblog
#TLSPROXY UNIX - - Y - 0 tlsproxy
# એક પસંદ કરો: ફક્ત લૂપબેક ક્લાયન્ટ્સ માટે અથવા કોઈપણ ક્લાયંટ માટે સબમિશનને સક્ષમ કરો.
#127.0.0.1: સબમિશન ઇનટ એન - વાય - - એસએમટીપીડી
સબમિશન ઇનટ એન - વાય - - એસએમટીપીડી
-o smtpd_relay_reestrictions = પરવાનગી_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
-o smtpd_recipient_reestrictions = પરવાનગી_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
-o syslog_name = પોસ્ટફિક્સ/સબમિશન
-o smtpd_tls_security_level = એન્ક્રિપ્ટ
-o smtpd_tls_wrappermode = ના
-o smtpd_sasl_auth_enable = હા
-o smtpd_sasl_type = dovecot
-o smtpd_sasl_path = ખાનગી/લેખ
# -o syslog_name = પોસ્ટફિક્સ/સબમિશન
# -o smtpd_tls_security_level = એન્ક્રિપ્ટ
# -o smtpd_sasl_auth_enable = હા
# -o smtpd_tls_auth_only = હા
# -o smtpd_reject_unlisted_recipient = ના
# -o smtpd_client_restrictions = $ mua_client_restrictions
# -o smtpd_helo_restrictions = $ MUA_helo_restrictions
# -o smtpd_sender_restrictions = $ MUA_SENDER_RESTRICTIONS
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_restrictions = પરમિટ_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
# -o મિલ્ટર_મેક્રો_ડેન_નામ = મૂળ
# એક પસંદ કરો: ફક્ત લૂપબેક ક્લાયન્ટ્સ માટે અથવા કોઈપણ ક્લાયંટ માટે એસએમટીપીને સક્ષમ કરો.
#127.0.0.1: smtps inet n - y - - smtpd
#smtps inet n - y - - smtpd
# -o syslog_name = પોસ્ટફિક્સ/એસએમટીપીએસ
# -o smtpd_tls_wrappermode = હા
# -o smtpd_sasl_auth_enable = હા
# -o smtpd_reject_unlisted_recipient = ના
# -o smtpd_client_restrictions = $ mua_client_restrictions
# -o smtpd_helo_restrictions = $ MUA_helo_restrictions
# -o smtpd_sender_restrictions = $ MUA_SENDER_RESTRICTIONS
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_restrictions = પરમિટ_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
# -o મિલ્ટર_મેક્રો_ડેન_નામ = મૂળ
#628 inet n - y - - qmqpd
પીકઅપ યુનિક્સ એન - વાય 60 1 પિકઅપ
ક્લિનઅપ યુનિક્સ એન - વાય - 0 સફાઇ
QMGR UNIX N - N 300 1 Qmgr
#ક્યુએમજીઆર યુનિક્સ એન - એન 300 1 ઓક્યુએમજીઆર
TLSMGR UNIX - - Y 1000? 1 tlsmgr
યુનિક્સ ફરીથી લખો - - વાય - - તુચ્છ -લખાણ લખો
બાઉન્સ યુનિક્સ - - વાય - 0 બાઉન્સ
સ્થગિત યુનિક્સ - - વાય - 0 બાઉન્સ
ટ્રેસ યુનિક્સ - - વાય - 0 બાઉન્સ
યુનિક્સ ચકાસો - - વાય - 1 ચકાસો
ફ્લશ યુનિક્સ એન - વાય 1000? 0 ફ્લશ
પ્રોક્સિમેપ યુનિક્સ - - એન - - પ્રોક્સાયમેપ
પ્રોક્સીરાઇટ યુનિક્સ - - એન - 1 પ્રોક્સીમેપ
એસએમટીપી યુનિક્સ - - વાય - - એસ.એમ.ટી.પી.
રિલે યુનિક્સ - - વાય - - એસએમટીપી
-o syslog_name = postfix/$ service_name
# -o smtp_helo_timeout = 5 -o smtp_connect_timeout = 5
શોક્યુ યુનિક્સ એન - વાય - - શોક
ભૂલ યુનિક્સ - - વાય - - ભૂલ
યુનિક્સ - - વાય - - ભૂલ ફરીથી પ્રયાસ કરો
યુનિક્સ કા discard ી નાખો - - વાય - - કા discard ી નાખો
સ્થાનિક યુનિક્સ - એન એન - - સ્થાનિક
વર્ચ્યુઅલ યુનિક્સ - એન એન - - વર્ચુઅલ
એલએમટીપી યુનિક્સ - - વાય - - એલએમટીપી
એરણ યુનિક્સ - - વાય - 1 એરણ
સ્કેન યુનિક્સ - - વાય - 1 સ્કેશે
પોસ્ટલોગ યુનિક્સ -ડીગ્રામ એન - એન - 1 પોસ્ટલોગડ
#
# ====================================================================
# બિન-પોસ્ટફિક્સ સ software ફ્ટવેર પર ઇન્ટરફેસો. મેન્યુઅલની તપાસ કરવાની ખાતરી કરો
# ન -ન-પોસ્ટફિક્સ સ software ફ્ટવેરનાં પૃષ્ઠો તે કયા વિકલ્પો ઇચ્છે છે તે શોધવા માટે.
#
# નીચેની ઘણી સેવાઓ પોસ્ટફિક્સ પાઇપ (8) ડિલિવરીનો ઉપયોગ કરે છે
# એજન્ટ. $ {પ્રાપ્તકર્તા} વિશેની માહિતી માટે પાઇપ (8) મેન પૃષ્ઠ જુઓ
# અને અન્ય સંદેશ પરબિડીયું વિકલ્પો.
# ====================================================================
#
# મેઇલડ્રોપ. વિગતો માટે પોસ્ટફિક્સ મેઇલડ્રોપ_આરેડમે ફાઇલ જુઓ.
# મેઈન.સી.એફ. માં પણ સ્પષ્ટ કરો: મેઇલડ્રોપ_ડેસ્ટિનેશન_રેસિપિએન્ટ_લિમિટ = 1
#
મેઇલડ્રોપ યુનિક્સ - એનએન - - પાઇપ
ધ્વજ = drxhu વપરાશકર્તા = vmail argv =/usr/bin/મેઇલડ્રોપ -d $ {પ્રાપ્તકર્તા}
#
# ====================================================================
#
# તાજેતરના સાયરસ સંસ્કરણો હાલના "એલએમટીપી" માસ્ટર.સીએફ પ્રવેશનો ઉપયોગ કરી શકે છે.
#
# સાયરસ.કોનફમાં સ્પષ્ટ કરો:
# એલએમટીપી સીએમડી = "એલએમટીપીડી -એ" સાંભળો = "લોકલહોસ્ટ: એલએમટીપી" પ્રોટો = ટીસીપી 4
#
# મેઇન.સી.એફ. માં નીચેનામાંથી એક અથવા વધુનો ઉલ્લેખ કરો:
# મેઇલબોક્સ_ટ્રાન્સપોર્ટ = એલએમટીપી: આઈએનઇટી: લોકલહોસ્ટ
# વર્ચ્યુઅલ_ટ્રાન્સપોર્ટ = એલએમટીપી: આઈએનઇટી: લોકલહોસ્ટ
#
# ====================================================================
#
# સાયરસ 2.1.5 (એમોસ ગોઉક્સ)
# મેઈન.સી.એફ. માં પણ સ્પષ્ટ કરો: સાયરસ_ડેસ્ટિનેશન_રેસિપિએન્ટ_લિમિટ = 1
#
#સીરસ યુનિક્સ - એન એન - - પાઇપ
# ફ્લેગ્સ = ડીઆરએક્સ વપરાશકર્તા = સાયરસ આર્ગવી =/સાયરસ/બિન/ડિલિવર -આર $ {પ્રેષક} -m $ {એક્સ્ટેંશન} $ {વપરાશકર્તા}
#
# ====================================================================
સાયરસ દ્વારા ડિલિવરીનું # જૂનું ઉદાહરણ.
#
#ઓલ્ડ -કિરસ યુનિક્સ - એન એન - - પાઇપ
# ફ્લેગ્સ = આર વપરાશકર્તા = સાયરસ આર્ગવી =/સાયરસ/બિન/ડિલિવર -e -e -m $ {એક્સ્ટેંશન} $ {વપરાશકર્તા}
#
# ====================================================================
#
# રૂપરેખાંકન વિગતો માટે પોસ્ટફિક્સ UUCP_README ફાઇલ જુઓ.
#
યુયુસીપી યુનિક્સ - એન એન - - પાઇપ
ધ્વજ = fqhu વપરાશકર્તા = uucp argv = uux -r -n -z -a $ પ્રેષક -$ Nexthop! rmail ($ પ્રાપ્તકર્તા)
#
# અન્ય બાહ્ય ડિલિવરી પદ્ધતિઓ.
#
ifmail Unix - n n - - પાઇપ
ધ્વજ = એફ વપરાશકર્તા = ftn argv =/usr/lib/ifmail/ifmail -r $ Nexthop ($ પ્રાપ્તકર્તા)
બીએસએમટીપી યુનિક્સ - એન એન - - પાઇપ
ફ્લેગો = એફક્યુ. વપરાશકર્તા = બીએસએમટીપી આર્ગવી =/યુએસઆર/લિબ/બીએસએમટીપી/બીએસએમટીપી -ટી $ નેક્સથોપ -એફ $ પ્રેષક $ પ્રાપ્તકર્તા
સ્કેલેમેઇલ -બેકએન્ડ યુનિક્સ - એન એન - 2 પાઇપ
ધ્વજ = આર વપરાશકર્તા = સ્કેલેમેઇલ આર્ગવી =/યુએસઆર/લિબ/સ્કેલેમેઇલ/બીન/સ્કેલેમેઇલ-સ્ટોર $ {નેક્સ્થ op પ} $ {વપરાશકર્તા} $ {એક્સ્ટેંશન}
મેઇલમેન યુનિક્સ - એન એન - - પાઇપ
ધ્વજ = FRX વપરાશકર્તા = સૂચિ આર્ગવી =/યુએસઆર/લિબ/મેઇલમેન/બીન/પોસ્ટફિક્સ-થી-મેઇલમેન.પી {{નેક્સ્થ op પ}
#
# પોસ્ટફિક્સ માસ્ટર પ્રક્રિયા ગોઠવણી ફાઇલ. ફોર્મેટ પર વિગતો માટે
# ફાઇલની, માસ્ટર (5) મેન્યુઅલ પૃષ્ઠ જુઓ (આદેશ: "મેન 5 માસ્ટર" અથવા
# -ન-લાઇન: http://www.postfix.org/master.5.html).
#
# આ ફાઇલને સંપાદિત કર્યા પછી "પોસ્ટફિક્સ ફરીથી લોડ" ચલાવવાનું ભૂલશો નહીં.
#
# ==========================================================================
# સેવા પ્રકાર ખાનગી અનપ્રિવ ક્રોટ વેકઅપ મેક્સપ્રોક આદેશ + આર્ગ્સ
# (હા) (હા) (ના) (ક્યારેય નહીં) (100)
# ==========================================================================
# smtp inet n - y - 1 પોસ્ટસ્ક્રીન
# એસએમટીપીડી પાસ - - વાય - - એસએમટીપીડી
# dnsblog Unix - - y - 0 dnsblog
# tlsproxy unix - - y - 0 tlsproxy
# એક પસંદ કરો: ફક્ત લૂપબેક ક્લાયન્ટ્સ માટે અથવા કોઈપણ ક્લાયંટ માટે સબમિશનને સક્ષમ કરો.
# 127.0.0.1:Submission in - y - - smtpd
# -o syslog_name = પોસ્ટફિક્સ/સબમિશન
# -o smtpd_tls_security_level = એન્ક્રિપ્ટ
# -o smtpd_sasl_auth_enable = હા
# -o smtpd_tls_auth_only = હા
# -o smtpd_reject_unlisted_recipient = ના
# -o smtpd_client_restrictions = $ mua_client_restrictions
# -o smtpd_helo_restrictions = $ MUA_helo_restrictions
# -o smtpd_sender_restrictions = $ MUA_SENDER_RESTRICTIONS
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_reestrictions = પરવાનગી_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
# -o મિલ્ટર_માક્રો_ડેન_નામ = મૂળ
# એક પસંદ કરો: ફક્ત લૂપબેક ક્લાયન્ટ્સ માટે અથવા કોઈપણ ક્લાયંટ માટે એસએમટીપીને સક્ષમ કરો.
# 127.0.0.1:SMTPS inet n - y - - smtpd
# smtps inet n - y - - smtpd
# -o syslog_name = પોસ્ટફિક્સ/એસએમટીપીએસ
# -o smtpd_tls_wrappermode = હા
# -o smtpd_sasl_auth_enable = હા
# -o smtpd_reject_unlisted_recipient = ના
# -o smtpd_client_restrictions = $ mua_client_restrictions
# -o smtpd_helo_restrictions = $ MUA_helo_restrictions
# -o smtpd_sender_restrictions = $ MUA_SENDER_RESTRICTIONS
# -o smtpd_recipient_restrictions =
# -o smtpd_relay_reestrictions = પરવાનગી_સાસલ_અથેન્ટિકેટેડ, અસ્વીકાર
# -o મિલ્ટર_માક્રો_ડેન_નામ = મૂળ
# 628 inet n - y - - qmqpd
# QMGR UNIX N - N 300 1 OQMGR
# -o smtp_helo_timeout = 5 -o smtp_connect_timeout = 5
#
# ====================================================================
# નોન-પોસ્ટફિક્સ સ software ફ્ટવેર માટે ઇન્ટરફેસો. મેન્યુઅલની તપાસ કરવાની ખાતરી કરો
# તે કયા વિકલ્પો ઇચ્છે છે તે શોધવા માટે નોન-પોસ્ટફિક્સ સ software ફ્ટવેરનાં પૃષ્ઠો.
#
# નીચેની ઘણી સેવાઓ પોસ્ટફિક્સ પાઇપ (8) ડિલિવરીનો ઉપયોગ કરે છે
# એજન્ટ. $ {પ્રાપ્તકર્તા} વિશેની માહિતી માટે પાઇપ (8) મેન પૃષ્ઠ જુઓ
# અને અન્ય સંદેશ પરબિડીયું વિકલ્પો.
# ====================================================================
મેઇલડ્રોપ. વિગતો માટે પોસ્ટફિક્સ મેઇલડ્રોપ_આરેડમે ફાઇલ જુઓ.
મેઈન.સી.એફ. માં પણ સ્પષ્ટ કરો: મેઇલડ્રોપ_ડેસ્ટિનેશન_રેસિપિએન્ટ_લિમિટ = 1nano initialize
# તાજેતરના સાયરસ સંસ્કરણો હાલના "એલએમટીપી" માસ્ટર.સીએફ પ્રવેશનો ઉપયોગ કરી શકે છે.
સાયરસ.કોનફ માં સ્પષ્ટ કરો:
એલએમટીપી સીએમડી = "એલએમટીપીડી -એ" સાંભળો = "લોકલહોસ્ટ: એલએમટીપી" પ્રોટો = ટીસીપી 4મેઇન.સી.એફ. માં નીચેનામાંથી એક અથવા વધુનો ઉલ્લેખ કરો:
ssh team@XX.XX.XX.XX
મેઇલબોક્સ_ટ્રાન્સપોર્ટ = એલએમટીપી: આઈએનઇટી: લોકલહોસ્ટવર્ચ્યુઅલ_ટ્રાન્સપોર્ટ = એલએમટીપી: આઈએનઇટી: લોકલહોસ્ટ
====================================================================
cat ~/.ssh/id_rsa.pub
સાયરસ 2.1.5 (એમોસ ગોઉક્સ)મેઇન.સી.એફ. માં પણ સ્પષ્ટ કરો: સાયરસ_ડેસ્ટિનેશન_રેસિપિએન્ટ_લિમિટ = 1
git clone git://github.com/you/yourproject.git
સાયરસ યુનિક્સ - એન એન - - પાઇપધ્વજ = ડીઆરએક્સ વપરાશકર્તા = સાયરસ આર્ગવી =/સાયરસ/બિન/ડિલિવર -e -r $ {પ્રેષક} -m $ {એક્સ્ટેંશન} $ {વપરાશકર્તા}
ls
====================================================================સાયરસ દ્વારા ડિલિવરીનું જૂનું ઉદાહરણ.
cp -r yourproject whatyoucalledit
ઓલ્ડ -કિરસ યુનિક્સ - એન એન - - પાઇપધ્વજ = આર વપરાશકર્તા = સાયરસ આર્ગવી =/સાયરસ/બિન/ડિલિવર -e -m $ {એક્સ્ટેંશન} $ {વપરાશકર્તા}
sudo nano /usr/bin/ascript
====================================================================રૂપરેખાંકન વિગતો માટે પોસ્ટફિક્સ UUCP_README ફાઇલ જુઓ.
#
echo "#
અન્ય બાહ્ય ડિલિવરી પદ્ધતિઓ.અને opendkim ગોઠવણી. ઓપનડકીમ તેમને વધુ સુરક્ષિત બનાવવા માટે ડોમેન કીઓ સાથે ઇમેઇલ સર્વર્સને ઓળખે છે. તેના વિના, મેઇલ સહી થયેલ નથી અને કદાચ તેને ઇનબ box ક્સમાં બનાવશે નહીં.
sudo chmod a+x /usr/bin/ascript
નેનો રૂપરેખા/etc_default_opendkimઆ રેખાઓ ઉમેરો:
# નોંધ: આ એક વારસો ગોઠવણી ફાઇલ છે. તેનો ઉપયોગ opendkim દ્વારા કરવામાં આવતો નથી # સિસ્ટમ ડી સેવા. કૃપા કરીને અનુરૂપ ગોઠવણી પરિમાણોનો ઉપયોગ કરો તેના બદલે # /etc/opendkim.conf. # # પહેલાં, કોઈ અહીં ડિફ default લ્ટ સેટિંગ્સને સંપાદિત કરશે અને પછી ચલાવશે # /lib/opendkim/opendkim.service.genate પર સિસ્ટમ ઓવરરાઇડ ફાઇલો જનરેટ કરવા માટે # /etc/systemd/system/opendkim.service.d/override.conf અને # /etc/tmpfiles.d/opendkim.conf. જ્યારે આ હજી પણ શક્ય છે, તે હવે છે # સેટિંગ્સને સીધા /etc/opendkim.conf માં સમાયોજિત કરવાની ભલામણ કરી. # #ડિમન_ઓપ્ટ્સ = "" # યુનિક્સ સોકેટનો ઉપયોગ કરવા માટે/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપનડકીમ પર બદલો # એક ક્રોટમાં પોસ્ટફિક્સ: #Rundir =/var/સ્પૂલ/પોસ્ટફિક્સ/રન/opendkim Rundir =/રન/opendkim # વૈકલ્પિક સોકેટનો ઉલ્લેખ કરવા માટે # અસામાન્ય # નોંધ લો કે આ સેટ કરવાથી opendkim.conf માં કોઈપણ સોકેટ મૂલ્યને ઓવરરાઇડ કરશે # ડિફોલ્ટ: સોકેટ = "સ્થાનિક: /var/spool/postfix/opendkim/opendkim.sock" # બંદર 54321 પર બધા ઇન્ટરફેસો પર સાંભળો: #સોકેટ = inet: 54321 # પોર્ટ 12345 પર લૂપબેક સાંભળો: #સોકેટ = inet: 12345@લોકલહોસ્ટ # બંદર 12345 પર 192.0.2.1 પર સાંભળો: #સોકેટ = inet: 12345@192.0.2.1 વપરાશકર્તા = opendkim જૂથ = opendkim Pidfile = $ rundir/$ નામ.પીડ એક્સ્ટ્રાફ્ટર =# નોંધ: આ એક વારસો ગોઠવણી ફાઇલ છે. તેનો ઉપયોગ opendkim દ્વારા કરવામાં આવતો નથી
# સિસ્ટમ સેવા. કૃપા કરીને અનુરૂપ ગોઠવણી પરિમાણોનો ઉપયોગ કરો
# તેના બદલે /etc/opendkim.conf.
#
# પહેલાં, કોઈ અહીં ડિફ default લ્ટ સેટિંગ્સને સંપાદિત કરશે અને પછી એક્ઝેક્યુટ કરશે
# /lib/opendkim/opendkim.service.genate પર સિસ્ટમ ઓવરરાઇડ ફાઇલો જનરેટ કરવા માટે
# /etc/systemd/system/opendkim.service.d/override.conf અને
# /etc/tmpfiles.d/opendkim.conf. જ્યારે આ હજી પણ શક્ય છે, તે હવે છે
# સીધા /etc/opendkim.conf માં સેટિંગ્સને સમાયોજિત કરવાની ભલામણ કરી.
#
# ડિમન_ઓપ્ટ્સ = ""
# યુનિક્સ સોકેટનો ઉપયોગ કરવા માટે/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપેન્ડકીમ પર બદલો
# એક ક્રોટમાં પોસ્ટફિક્સ:
# Rundir =/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપેન્ડકિમ
#
# વૈકલ્પિક સોકેટનો ઉલ્લેખ કરવા માટે અસામાન્ય
# નોંધ લો કે આ સેટ કરવાથી opendkim.conf માં કોઈપણ સોકેટ મૂલ્યને ઓવરરાઇડ કરશે
# ડિફોલ્ટ:
# બંદર 54321 પર બધા ઇન્ટરફેસો પર સાંભળો:
# સોકેટ = inet: 54321
# 12345 પોર્ટ પર લૂપબેક સાંભળો:
pip3 install --upgrade opencv-python # સોકેટ = inet: 12345@લોકલહોસ્ટ
pip3 install --upgrade opencv-contrib-python # 12345 પોર્ટ પર 192.0.2.1 પર સાંભળો:
# સોકેટ = inet: 12345@192.0.2.1
# નેનો રૂપરેખા/etc_dovecot_conf.d_10-માસ્ટર.કોનફ
# આ રેખાઓ ઉમેરો:
# 0-માસ્ટર.કોન
#ડેફોલ્ટ_પ્રોસેસ_લિમિટ = 100
#Default_client_limit = 1000
સેવા પ્રક્રિયાઓ માટે # ડિફ ault લ્ટ વીએસઝેડ (વર્ચુઅલ મેમરી કદ) મર્યાદા. આ મુખ્યત્વે છે
# પ્રક્રિયાઓ પકડવા અને મારવાનો હેતુ છે કે તેઓ ખાય તે પહેલાં મેમરીને લીક કરે છે
# બધું.
#Default_vsz_limit = 256m
# લ login ગિન વપરાશકર્તાનો ઉપયોગ લ login ગિન પ્રક્રિયાઓ દ્વારા આંતરિક રીતે થાય છે. આ સૌથી અવિશ્વસનીય છે
# ડોવકોટ સિસ્ટમમાં વપરાશકર્તા. તેમાં કંઈપણની .ક્સેસ હોવી જોઈએ નહીં.
#ડેફોલ્ટ_લોગિન_યુઝર = ડોવેનુલ
# આંતરિક વપરાશકર્તાનો ઉપયોગ અનપ્રાઇવિલેડ પ્રક્રિયાઓ દ્વારા થાય છે. તે અલગ હોવું જોઈએ
# લ login ગિન વપરાશકર્તા, જેથી લ login ગિન પ્રક્રિયાઓ અન્ય પ્રક્રિયાઓને ખલેલ પહોંચાડી શકે નહીં.
#Default_internal_user = dovecot
સેવા imap-login {
inet_listener imap {
#પોર્ટ = 143
.
inet_listener imaps {
#પોર્ટ = 993
#SSL = હા
.
નવી પ્રક્રિયા શરૂ કરતા પહેલા હેન્ડલ કરવા માટે જોડાણોની સંખ્યા. ખાસ કરીને
# એકમાત્ર ઉપયોગી મૂલ્યો 0 (અમર્યાદિત) અથવા 1. 1 વધુ સુરક્ષિત છે, પરંતુ 0
# ઝડપી છે.
#સર્વિસ_કાઉન્ટ = 1
હંમેશાં વધુ જોડાણોની રાહ જોતા રહેવાની પ્રક્રિયાઓની સંખ્યા.
#પ્રોસેસ_મિન_વાઇલ = 0
# જો તમે સેવા_કાઉન્ટ = 0 સેટ કરો છો, તો તમારે કદાચ આ વધવાની જરૂર છે.
#vsz_limit = $ default_vsz_limit
.
સેવા પ pop પ 3-લોગિન {
inet_listener pop3 {
#પોર્ટ = 110
.
inet_listener pop3s {
#પોર્ટ = 995
#SSL = હા
.
.
સેવા સબમિશન-લોગિન {
inet_listener સબમિશન {
#પોર્ટ = 587
.
.
સેવા એલએમટીપી {
યુનિક્સ_લિસ્ટનર/var/સ્પૂલ/પોસ્ટફિક્સ/ખાનગી/ડોવકોટ-એલએમટીપી {
જૂથ = પોસ્ટફિક્સ
સ્થિતિ = 0666
વપરાશકર્તા = પોસ્ટફિક્સ
.
# જો તમે ઉપરોક્ત યુનિક્સ સોકેટનો ઉપયોગ ન કરી શકો તો જ INET શ્રોતા બનાવો
#INTE_LISTENER LMTP {
# સમગ્ર ઇન્ટરનેટ માટે એલએમટીપીને દૃશ્યમાન બનાવવાનું ટાળો
#સરનામું =
#પોર્ટ =
#}
.
સેવા imap {
# મોટાભાગની મેમરી એમએમએપી () ઇંગ ફાઇલો પર જાય છે. તમારે આ વધારવાની જરૂર પડી શકે છે
# મર્યાદા જો તમારી પાસે વિશાળ મેઇલબોક્સ છે.
#vsz_limit = $ default_vsz_limit
# મહત્તમ. આઇએમએપી પ્રક્રિયાઓની સંખ્યા (જોડાણો)
#પ્રોસેસ_લિમિટ = 1024
.
સેવા પ pop પ 3 {
# મહત્તમ. પીઓપી 3 પ્રક્રિયાઓની સંખ્યા (જોડાણો)
#પ્રોસેસ_લિમિટ = 1024
.
સેવા રજૂઆત {
# મહત્તમ. એસ.એમ.ટી.પી. સબમિશન પ્રક્રિયાઓની સંખ્યા (જોડાણો)
#પ્રોસેસ_લિમિટ = 1024
.
સેવા ઓથ {
# auth_sket_path ડિફ default લ્ટ રૂપે આ યુઝરડીબી સોકેટ તરફ નિર્દેશ કરે છે. તે સામાન્ય રીતે છે
# ડોવેકોટ-એલડીએ, ડોવેડમ, સંભવત IM આઇએમએપી પ્રક્રિયા, વગેરે દ્વારા વપરાયેલ વપરાશકર્તાઓ જે વપરાશકર્તાઓ છે
# આ સોકેટની સંપૂર્ણ પરવાનગી બધા વપરાશકર્તાનામોની સૂચિ મેળવવા માટે સક્ષમ છે અને
# દરેકના યુઝરડીબી લુકઅપ્સના પરિણામો મેળવો.
#
# ડિફ default લ્ટ 0666 મોડ કોઈપણને સોકેટથી કનેક્ટ કરવાની મંજૂરી આપે છે, પરંતુ
# યુઝરડીબી લુકઅપ્સ ફક્ત ત્યારે જ સફળ થશે જો યુઝરડીબી "યુઆઈડી" ફીલ્ડ આપે છે
# ક ler લર પ્રક્રિયાની યુઆઈડી સાથે મેળ ખાય છે. જો ક ler લરની યુઆઈડી અથવા જીઆઈડી સાથે મેળ ખાય છે તો પણ
# સોકેટની યુઆઈડી અથવા જીઆઈડી લુકઅપ સફળ થાય છે. બીજું કંઈપણ નિષ્ફળતાનું કારણ બને છે.
#
# ક ler લરને બધા વપરાશકર્તાઓને શોધવા માટે સંપૂર્ણ પરવાનગી આપવા માટે, મોડને સેટ કરો
# 0666 અને ડોવકોટ કરતાં બીજું કંઈક કર્નલને લાગુ કરવા દે છે
# પરવાનગી (દા.ત. 0777 દરેકને સંપૂર્ણ પરવાનગી આપે છે).
યુનિક્સ_લિસ્ટનર/var/સ્પૂલ/પોસ્ટફિક્સ/ખાનગી/uth થ {
સ્થિતિ = 0660
વપરાશકર્તા = પોસ્ટફિક્સ
જૂથ = પોસ્ટફિક્સ
.
.
સેવા લેખક-કાર્યકર {
# Uth થ વર્કર પ્રક્રિયા મૂળભૂત રૂપે મૂળ તરીકે ચલાવવામાં આવે છે, જેથી તે .ક્સેસ કરી શકે
# /etc /શેડો. જો આ જરૂરી નથી, તો વપરાશકર્તાને બદલવો જોઈએ
# $ ડિફ ault લ્ટ_ઇંટરનલ_યુઝર.
#વપરાશકર્તા = રુટ
.
સેવા ડિક્ટ {
# જો ડિક પ્રોક્સીનો ઉપયોગ કરવામાં આવે છે, તો મેઇલ પ્રક્રિયાઓમાં તેના સોકેટની .ક્સેસ હોવી જોઈએ.
# ઉદાહરણ તરીકે: મોડ = 0660, જૂથ = vmail અને વૈશ્વિક મેઇલ_એક્સેસ_ગ્રુપ્સ = vmail
યુનિક્સ_લિસ્ટનર ડિક {
#મોડ = 0600
#user =
#ગ્રુપ =
.
.
# ડિફોલ્ટ_પ્રોસેસ_લિમિટ = 100
# ડિફ ault લ્ટ_ક્લાયંટ_લિમિટ = 1000
# ડિફ ault લ્ટ વીએસઝેડ (વર્ચુઅલ મેમરી કદ) સેવા પ્રક્રિયાઓ માટે મર્યાદા. આ મુખ્યત્વે છે
# પ્રક્રિયાઓ પકડવા અને મારવાનો હેતુ છે કે તેઓ ખાય તે પહેલાં મેમરીને લીક કરે છે
# બધું.
# ડિફ ault લ્ટ_વીઝ_લિમિટ = 256 એમ
# લ login ગિન વપરાશકર્તાનો ઉપયોગ લ login ગિન પ્રક્રિયાઓ દ્વારા આંતરિક રીતે થાય છે. આ સૌથી અવિશ્વસનીય છે
# ડોવકોટ સિસ્ટમમાં વપરાશકર્તા. તેમાં કંઈપણની .ક્સેસ હોવી જોઈએ નહીં.
# Default_login_user = dovenul
# આંતરિક વપરાશકર્તાનો ઉપયોગ અનપ્રાઇવિલેડ પ્રક્રિયાઓ દ્વારા થાય છે. તે અલગ હોવું જોઈએ
# લ login ગિન વપરાશકર્તા, જેથી લ login ગિન પ્રક્રિયાઓ અન્ય પ્રક્રિયાઓને ખલેલ પહોંચાડી શકે નહીં.
# Default_internal_user = dovecot
# બંદર = 143
# બંદર = 993
# SSL = હા
# નવી પ્રક્રિયા શરૂ કરતા પહેલા હેન્ડલ કરવા માટે જોડાણોની સંખ્યા. ખાસ કરીને
# એકમાત્ર ઉપયોગી મૂલ્યો 0 (અમર્યાદિત) અથવા 1. 1 વધુ સુરક્ષિત છે, પરંતુ 0
# ઝડપી છે. <doc/viki/loginprocess.txt>
# સેવા_કાઉન્ટ = 1
# વધુ જોડાણોની રાહ જોતા રહેવાની પ્રક્રિયાઓની સંખ્યા.
# પ્રક્રિયા_મિન_વાઇલ = 0
# જો તમે સર્વિસ_કાઉન્ટ = 0 સેટ કરો છો, તો તમારે કદાચ આ વધવાની જરૂર છે.
# vsz_limit = $ default_vsz_limit
# બંદર = 110
# બંદર = 995
# SSL = હા
# બંદર = 587
# જો તમે ઉપરોક્ત યુનિક્સ સોકેટનો ઉપયોગ ન કરી શકો તો જ INET શ્રોતા બનાવો
# inet_listener lmtp {
# સમગ્ર ઇન્ટરનેટ માટે એલએમટીપીને દૃશ્યમાન બનાવવાનું ટાળો
# સંબોધન =
બંદર =.
મોટાભાગની મેમરી એમએમએપી () ઇંગ ફાઇલો પર જાય છે. તમારે આ વધારવાની જરૂર પડી શકે છેજો તમારી પાસે વિશાળ મેઇલબોક્સ છે તો મર્યાદા.
vsz_limit = $ default_vsz_limitમહત્તમ. આઇએમએપી પ્રક્રિયાઓની સંખ્યા (જોડાણો)
પ્રક્રિયા_લિમિટ = 1024મહત્તમ. પીઓપી 3 પ્રક્રિયાઓની સંખ્યા (જોડાણો)
પ્રક્રિયા_લિમિટ = 1024મહત્તમ. એસ.એમ.ટી.પી. સબમિશન પ્રક્રિયાઓની સંખ્યા (જોડાણો)
પ્રક્રિયા_લિમિટ = 1024Auth_sket_path ડિફ default લ્ટ રૂપે આ યુઝરડીબી સોકેટ તરફ નિર્દેશ કરે છે. તે સામાન્ય રીતે છે
ડોવકોટ-એલડીએ, ડોવેડમ, સંભવત im આઇએમએપી પ્રક્રિયા, વગેરે દ્વારા ઉપયોગમાં લેવાય છે.આ સોકેટની સંપૂર્ણ પરવાનગી બધા વપરાશકર્તાનામોની સૂચિ મેળવવા માટે સક્ષમ છે અને
દરેકના યુઝરડીબી લુકઅપ્સના પરિણામો મેળવો.ડિફ default લ્ટ 0666 મોડ કોઈપણને સોકેટથી કનેક્ટ કરવાની મંજૂરી આપે છે, પરંતુ
# યુઝરડીબી લુકઅપ્સ ફક્ત ત્યારે જ સફળ થશે જો યુઝરડીબી "યુઆઈડી" ફીલ્ડ આપે છે
# ક ler લર પ્રક્રિયાની યુઆઈડી સાથે મેળ ખાય છે. જો ક ler લરની યુઆઈડી અથવા જીઆઈડી સાથે મેળ ખાય છે તો પણ
# સોકેટની યુઆઈડી અથવા જીઆઈડી લુકઅપ સફળ થાય છે. બીજું કંઈપણ નિષ્ફળતાનું કારણ બને છે.
#
# બધા વપરાશકર્તાઓને લુકઅપ કરવા માટે ક ler લરને સંપૂર્ણ પરવાનગી આપવા માટે, મોડને સેટ કરો
# 0666 અને ડોવકોટ કરતાં બીજું કંઈક કર્નલને લાગુ કરવા દે છે
# પરવાનગી (દા.ત. 0777 દરેકને સંપૂર્ણ પરવાનગી આપે છે).
# ઓથ વર્કર પ્રક્રિયા મૂળભૂત રૂપે મૂળ તરીકે ચલાવવામાં આવે છે, જેથી તે .ક્સેસ કરી શકે
# /વગેરે/શેડો. જો આ જરૂરી નથી, તો વપરાશકર્તાને બદલવો જોઈએ
# $ ડિફ ault લ્ટ_ઇંટરનલ_યુઝર.
# વપરાશકર્તા = મૂળ
# જો ડિક પ્રોક્સીનો ઉપયોગ કરવામાં આવે છે, તો મેઇલ પ્રક્રિયાઓમાં તેના સોકેટની .ક્સેસ હોવી જોઈએ.
# ઉદાહરણ તરીકે: મોડ = 0660, જૂથ = vmail અને વૈશ્વિક મેઇલ_એક્સેસ_ગ્રુપ્સ = vmail
# સ્થિતિ = 0600
# વપરાશકર્તા =
# જૂથ =
# ફરી એકવાર, તમે પસંદ કરેલા ડોમેનથી આ બધી ફાઇલો, ફેમ્મેબેબે ડોટ કોમમાં ડોમેનને બદલવાની ખાતરી કરો. આગલી ફાઇલ, ડોવકોટનું રૂપરેખા, સંપાદિત કરો,
# નેનો રૂપરેખા/etc_dovecot_dovecot
# અને આ રેખાઓ ઉમેરો
# ## ડોવેકોટ ગોઠવણી ફાઇલ
# જો તમે ઉતાવળમાં છો, તો http://wiki2.dovecot.org/quickconfigure જુઓ
# "ડોવેકોનફ -એન" આદેશ બદલાયેલી સેટિંગ્સનું સ્વચ્છ આઉટપુટ આપે છે. તેનો ઉપયોગ કરવો
# તેના બદલે ક copy પિ અને પેસ્ટિંગ; ડોવકોટ મેઇલિંગ સૂચિમાં પોસ્ટ કરતી વખતે ફાઇલો.
# '#' પાત્ર અને તે પછીની ટિપ્પણી તરીકે ગણવામાં આવે છે. વધારાની જગ્યાઓ
# અને ટ s બ્સને અવગણવામાં આવે છે. જો તમે આમાંથી કોઈ પણ સ્પષ્ટ રીતે વાપરવા માંગતા હો, તો મૂકો
# ક્વોટ્સ ઇન વેલ્યુ, દા.ત.: કી = "# ચાર અને ટ્રાયલિંગ વ્હાઇટ સ્પેસ"
# મોટાભાગની (પરંતુ બધા નહીં) સેટિંગ્સને વિવિધ પ્રોટોકોલ અને/અથવા દ્વારા ઓવરરાઇડ કરી શકાય છે
# સ્રોત/ગંતવ્ય આઇપીએસ વિભાગોની અંદર મૂકીને, ઉદાહરણ તરીકે:
# પ્રોટોકોલ imap {}, સ્થાનિક 127.0.0.1 {}, રિમોટ 10.0.0.0/8 {}
# ડિફોલ્ટ મૂલ્યો દરેક સેટિંગ માટે બતાવવામાં આવે છે, તે અસામાન્ય માટે જરૂરી નથી
# તે. આ જોકે અપવાદો છે: કોઈ વિભાગો (દા.ત. નેમસ્પેસ {})
# અથવા પ્લગઇન સેટિંગ્સ ડિફ default લ્ટ રૂપે ઉમેરવામાં આવે છે, તે ફક્ત ઉદાહરણો તરીકે સૂચિબદ્ધ છે.
# પાથો ફક્ત વાસ્તવિક ડિફોલ્ટ્સ ગોઠવણી પર આધારિત હોવાના ઉદાહરણો છે
# વિકલ્પો. અહીં સૂચિબદ્ધ પાથો - -પ્રેફિક્સ =/યુએસઆર રૂપરેખાંકિત કરવા માટે છે
# - -sysconfdir =/etc -localstatedir =/var
# ઇન્સ્ટોલ કરેલા પ્રોટોકોલ્સને સક્ષમ કરો
! શામેલ કરો/usr/share/dovecot/protocols.d/*.protocol
# એક અલ્પવિરામથી આઇપીએસ અથવા હોસ્ટની સૂચિ જ્યાં જોડાણો માટે સાંભળવી.
# "*" બધા આઇપીવી 4 ઇન્ટરફેસોમાં સાંભળે છે, "::" બધા આઇપીવી 6 ઇન્ટરફેસોમાં સાંભળે છે.
# જો તમે નોન-ડિફ ault લ્ટ બંદરો અથવા વધુ જટિલ કંઈપણનો ઉલ્લેખ કરવા માંગતા હો, તો
# Conf.d/માસ્ટર.કોનફને સંપાદિત કરો.
#લિસ્ટેન = *, ::
# બેઝ ડિરેક્ટરી જ્યાં રનટાઇમ ડેટા સ્ટોર કરવો.
#base_dir =/var/run/dovecot/
# આ દાખલાનું નામ. મલ્ટિ-ઇન્સ્ટન્સ સેટઅપ ડોવેડમ અને અન્ય આદેશોમાં
# કયા દાખલાનો ઉપયોગ થાય છે તે પસંદ કરવા માટે -હું ઉપયોગ કરી શકું છું (વિકલ્પ
# થી -સી). દાખલા નામ ડોવકોટ પ્રક્રિયાઓમાં પણ ઉમેરવામાં આવે છે
# પીએસ આઉટપુટમાં.
#instance_name = dovecot
ગ્રાહકો માટે શુભેચ્છા સંદેશ.
#login_greeting = dovecot તૈયાર.
# વિશ્વસનીય નેટવર્ક રેન્જની જગ્યા અલગ સૂચિ. આમાંથી જોડાણો
# આઇપીને તેમના આઇપી સરનામાંઓ અને બંદરોને ઓવરરાઇડ કરવાની મંજૂરી છે (લ ging ગિંગ માટે અને
# પ્રમાણીકરણ ચકાસણી માટે). અક્ષમ_પ્લેન્ટેક્સ્ટ_આથને પણ અવગણવામાં આવે છે
# આ નેટવર્ક. ખાસ કરીને તમે તમારા IMAP પ્રોક્સી સર્વર્સને અહીં સ્પષ્ટ કરશો.
#login_trusted_networks =
# સ્પેસ અલગ લ login ગિન એક્સેસની સૂચિ ચેક સોકેટ્સ (દા.ત. TCPWRAP)
#login_access_sokets =
# પ્રોક્સી_મેબે સાથે = હા જો પ્રોક્સી ગંતવ્ય આમાંથી કોઈપણ આઇપીએસ સાથે મેળ ખાય છે, તો ન કરો
# પ્રોક્સીંગ. આ સામાન્ય રીતે જરૂરી નથી, પરંતુ જો લક્ષ્યસ્થાન જો ઉપયોગી થઈ શકે
# આઈપી દા.ત. લોડ બેલેન્સરનો આઈપી.
#auth_proxy_slelf =
# વધુ વર્બોઝ પ્રક્રિયા ટાઇટલ બતાવો (પીએસમાં). હાલમાં વપરાશકર્તા નામ બતાવે છે અને
# આઈપી સરનામું. ખરેખર IMAP પ્રક્રિયાઓનો ઉપયોગ કોણ કરી રહ્યો છે તે જોવા માટે ઉપયોગી
# (દા.ત. શેર કરેલા મેઇલબોક્સ અથવા જો તે જ યુઆઈડીનો ઉપયોગ બહુવિધ એકાઉન્ટ્સ માટે થાય છે).
#વર્બોઝ_પ્રોક્ટિટલ = ના
# ડોવકોટ માસ્ટર પ્રક્રિયા બંધ થાય ત્યારે બધી પ્રક્રિયાઓ મારવા જોઈએ.
# આને "ના" પર સેટ કરવું એનો અર્થ એ છે કે ડોવકોટ વિના અપગ્રેડ કરી શકાય છે
# હાલના ક્લાયંટ કનેક્શન્સને બંધ કરવા દબાણ કરવું (જોકે તે પણ હોઈ શકે
# એક સમસ્યા જો અપગ્રેડ હોય તો દા.ત. સુરક્ષા ફિક્સને કારણે).
#shutdown_clients = હા
# જો નોન-શૂન્ય હોય, તો આ ઘણા કનેક્શન્સ દ્વારા ડોવેડએમ સર્વર પર મેઇલ આદેશો ચલાવો,
# તે જ પ્રક્રિયામાં સીધા ચલાવવાને બદલે.
#doveadm_worker_count = 0
# યુનિક્સ સોકેટ અથવા હોસ્ટ: ડોવેડએમ સર્વરથી કનેક્ટ કરવા માટે બંદરનો ઉપયોગ થાય છે
#doveadm_socket_path = doveadm-server
ડોવકોટ પર સચવાયેલા પર્યાવરણ ચલોની જગ્યા અલગ સૂચિ
# સ્ટાર્ટઅપ અને તેની બધી બાળ પ્રક્રિયાઓ પર પસાર થઈ. તમે પણ આપી શકો છો
હંમેશાં ચોક્કસ સેટિંગ્સ સેટ કરવા માટે # કી = મૂલ્ય જોડી.
#Import_environment = tz
##
## શબ્દકોશ સર્વર સેટિંગ્સ
##
# શબ્દકોશનો ઉપયોગ કી = મૂલ્ય સૂચિઓ સંગ્રહિત કરવા માટે થઈ શકે છે. આનો ઉપયોગ ઘણા લોકો દ્વારા કરવામાં આવે છે
# પ્લગઇન્સ. શબ્દકોશ સીધા અથવા છતાં access ક્સેસ કરી શકાય છે
# શબ્દકોશ સર્વર. નીચે આપેલા ડિક્ટ બ્લોક ડિક્શનરી નામો યુઆરઆઈને નકશા કરે છે
# જ્યારે સર્વરનો ઉપયોગ થાય છે. આ પછી ફોર્મેટમાં યુઆરઆઈનો ઉપયોગ કરીને સંદર્ભ આપી શકાય છે
# "પ્રોક્સી ::".
ડિક્ટ {
#quota = mysql: /etc/dovecot/dovecot-dict-sql.conf.ext
.
# મોટાભાગની વાસ્તવિક ગોઠવણી નીચે શામેલ થાય છે. ફાઇલનામો છે
# પ્રથમ તેમના ASCII મૂલ્ય દ્વારા સ orted ર્ટ અને તે ક્રમમાં વિશ્લેષણ કર્યું. 00-ઉપસર્ગ
# ફાઇલનામોમાં ing ર્ડરિંગને સમજવાનું સરળ બનાવવાનો હેતુ છે.
Conf.d/*શામેલ કરો.
# રૂપરેખા ફાઇલ પણ ભૂલ આપ્યા વિના શામેલ કરવાનો પ્રયાસ કરી શકે છે જો
# તે મળ્યું નથી:
શામેલ કરો_ટ્રી લોકલ.કોનફ
પાસ્ડબી {
ડ્રાઇવર = પાસવ્ડ-ફાઇલ
આર્ગ્સ =/વગેરે/ડોવકોટ/પાસડ
.
USERDB {
ડ્રાઇવર = પાસવ્ડ
.
પ્રોટોકોલ્સ = imap pop3
#બધા ઇનપુટ કનેક્શન્સ સાંભળવા માટે ડોવકોટને એલોઝ કરો (આઇપીવી 4 / આઇપીવી 6)
સાંભળો = *, ::
ડોવકોટ ગોઠવણી ફાઇલજો તમે ઉતાવળમાં છો, તો http://wiki2.dovecot.org/quickconfigure જુઓ
"ડોવેકોનફ -એન" આદેશ બદલાયેલી સેટિંગ્સનું સ્વચ્છ આઉટપુટ આપે છે. તેનો ઉપયોગ કરવોping femmebabe.com # ડોવકોટ મેઇલિંગ સૂચિમાં પોસ્ટ કરતી વખતે ફાઇલોની ક copy પિ અને પેસ્ટ કરવાને બદલે.
'પાત્ર અને બધું તે પછી ટિપ્પણીઓ તરીકે ગણવામાં આવે છે. વધારાની જગ્યાઓઅને ટ s બ્સને અવગણવામાં આવે છે. જો તમે આમાંથી કોઈ પણ સ્પષ્ટ રીતે વાપરવા માંગતા હો, તો મૂકો
ચાર અને પાછળના સફેદ સ્થાન "મોટાભાગની (પરંતુ બધા નહીં) સેટિંગ્સને વિવિધ પ્રોટોકોલ અને/અથવા દ્વારા ઓવરરાઇડ કરી શકાય છે
વિભાગોની અંદર સેટિંગ્સ મૂકીને સ્રોત/ગંતવ્ય આઇપીએસ, ઉદાહરણ તરીકે:પ્રોટોકોલ imap {}, સ્થાનિક 127.0.0.1 {}, રિમોટ 10.0.0.0/8 {}}
ડિફોલ્ટ મૂલ્યો દરેક સેટિંગ માટે બતાવવામાં આવે છે, તે અસામાન્ય માટે જરૂરી નથીsudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com
તે. આ જોકે અપવાદો છે: કોઈ વિભાગો (દા.ત. નેમસ્પેસ {})અથવા પ્લગઇન સેટિંગ્સ ડિફ default લ્ટ રૂપે ઉમેરવામાં આવે છે, તે ફક્ત ઉદાહરણો તરીકે સૂચિબદ્ધ છે.
પાથ ફક્ત વાસ્તવિક ડિફોલ્ટ્સ ગોઠવણી પર આધારિત હોવાના ઉદાહરણો પણ છેnano yourproject/settings.py
વિકલ્પો. અહીં સૂચિબદ્ધ પાથો - -પ્રેફિક્સ =/યુએસઆર રૂપરેખાંકિત કરવા માટે છે-sysconfdir =/etc--localstatedir =/var
ઇન્સ્ટોલ કરેલા પ્રોટોકોલ્સને સક્ષમ કરો# આઇપીએસ અથવા યજમાનોની અલ્પવિરામની સૂચિ જ્યાં જોડાણો માટે સાંભળવી.
"*" બધા આઇપીવી 4 ઇન્ટરફેસોમાં સાંભળે છે, "::" બધા આઇપીવી 6 ઇન્ટરફેસોમાં સાંભળે છે.જો તમે નોન-ડિફ ault લ્ટ બંદરો અથવા વધુ જટિલ કંઈપણનો ઉલ્લેખ કરવા માંગતા હો, તો
Conf.d/માસ્ટર.કોનફને સંપાદિત કરો.sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf
સાંભળો = *, ::બેઝ ડિરેક્ટરી જ્યાં રનટાઇમ ડેટા સ્ટોર કરવો.
આધાર_ડિર =/var/run/dovecot/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>
આ દાખલાનું નામ. મલ્ટિ-ઇન્સ્ટન્સ સેટઅપ ડોવેડમ અને અન્ય આદેશોમાંકયા દાખલાનો ઉપયોગ થાય છે તે પસંદ કરવા માટે -i <stance_name> નો ઉપયોગ કરી શકે છે (એક વિકલ્પ
to -c <config_path>). દાખલા નામ ડોવકોટ પ્રક્રિયાઓમાં પણ ઉમેરવામાં આવે છેsudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl
પીએસ આઉટપુટમાં.દાખલો_નામ = ડોવકોટ
ગ્રાહકો માટે શુભેચ્છા સંદેશ.sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2
લ Login ગિન_ગ્રેટીંગ = ડોવકોટ તૈયાર છે.વિશ્વસનીય નેટવર્ક રેન્જની જગ્યા અલગ સૂચિ. આમાંથી જોડાણો
આઇપીને તેમના આઇપી સરનામાંઓ અને બંદરોને ઓવરરાઇડ કરવાની મંજૂરી છે (લ ging ગિંગ માટે અનેcd projectname
source venv/bin/activate
python manage.py check
પ્રમાણીકરણ ચકાસણી માટે). અક્ષમ_પ્લેન્ટેક્સ્ટ_આથને પણ અવગણવામાં આવે છેઆ નેટવર્ક. ખાસ કરીને તમે તમારા IMAP પ્રોક્સી સર્વર્સને અહીં સ્પષ્ટ કરશો.
લ Login ગિન_ટ્રસ્ટેડ_નેટવર્ક્સ =nano venv/lib/python3.12/site-packages/django/apps/registry.py
લ login ગિન એક્સેસની જગ્યા અલગ સૂચિ ચેક સોકેટ્સ (દા.ત. TCPWRAP)લ Login ગિન_એક્સેસ_સોકેટ્સ =
પ્રોક્સી_મેબે = હા સાથે જો પ્રોક્સી ગંતવ્ય આમાંથી કોઈપણ આઇપી સાથે મેળ ખાય છે, તો ન કરો # પ્રોક્સીંગ. આ સામાન્ય રીતે જરૂરી નથી, પરંતુ જો લક્ષ્યસ્થાન જો ઉપયોગી થઈ શકે
# આઇપી દા.ત. લોડ બેલેન્સરનો આઈપી.
# auth_proxy_slefter =
વધુ વર્બોઝ પ્રક્રિયા ટાઇટલ બતાવો (પીએસમાં). હાલમાં વપરાશકર્તા નામ બતાવે છે અનેઆઇપી સરનામું. ખરેખર IMAP પ્રક્રિયાઓનો ઉપયોગ કોણ કરી રહ્યો છે તે જોવા માટે ઉપયોગી
(દા.ત. શેર કરેલા મેઇલબોક્સ અથવા જો તે જ યુઆઈડીનો ઉપયોગ બહુવિધ એકાઉન્ટ્સ માટે થાય છે).python manage.py check
વર્બોઝ_પ્રોક્ટિટલ = નાજ્યારે ડોવેકોટ માસ્ટર પ્રક્રિયા બંધ થાય ત્યારે બધી પ્રક્રિયાઓ મારવા જોઈએ.
આને "ના" પર સેટ કરવાનો અર્થ એ છે કે ડોવકોટ વિના અપગ્રેડ કરી શકાય છે # હાલના ક્લાયંટ કનેક્શન્સને બંધ કરવા દબાણ કરવું (જોકે તે પણ હોઈ શકે
# જો અપગ્રેડ હોય તો સમસ્યા દા.ત. સુરક્ષા ફિક્સને કારણે).
# શટડાઉન_ક્લિએન્ટ્સ = હા
જો નોન-શૂન્ય હોય, તો આ ઘણા જોડાણો દ્વારા ડોવેડએમ સર્વર પર મેઇલ આદેશો ચલાવો,તે જ પ્રક્રિયામાં સીધા ચલાવવાને બદલે.
doveadm_worker_count = 0sudo systemctl reload apache2
યુનિક્સ સોકેટ અથવા હોસ્ટ: ડોવેડએમ સર્વરથી કનેક્ટ થવા માટે બંદરનો ઉપયોગ થાય છેdoveadm_socket_path = doveadm-સર્વર
ડોવકોટ પર સચવાયેલા પર્યાવરણ ચલોની જગ્યા અલગ સૂચિસ્ટાર્ટઅપ અને તેની બધી બાળ પ્રક્રિયાઓ પર પસાર થઈ. તમે પણ આપી શકો છો
કી = હંમેશાં ચોક્કસ સેટિંગ્સ સેટ કરવા માટે મૂલ્ય જોડી.આયાત_એનવાયરમેન્ટ = ટીઝેડ
ip -6 addr
શબ્દકોશ સર્વર સેટિંગ્સશબ્દકોશનો ઉપયોગ કી = મૂલ્ય સૂચિઓ સંગ્રહિત કરવા માટે થઈ શકે છે. આનો ઉપયોગ ઘણા લોકો દ્વારા કરવામાં આવે છે
પ્લગઇન્સ. શબ્દકોશ સીધા અથવા છતાં access ક્સેસ કરી શકાય છે
શબ્દકોશ સર્વર. નીચે આપેલા ડિક્ટ બ્લોક ડિક્શનરી નામો યુઆરઆઈને નકશા કરે છેજ્યારે સર્વરનો ઉપયોગ થાય છે. આ પછી ફોર્મેટમાં યુઆરઆઈનો ઉપયોગ કરીને સંદર્ભ આપી શકાય છે
"પ્રોક્સી :: <નામ>".ક્વોટા = mysql: /etc/dovecot/dovecot-dict-sql.conf.ext
મોટાભાગની વાસ્તવિક ગોઠવણી નીચે શામેલ થાય છે. ફાઇલનામો છેપ્રથમ તેમના ASCII મૂલ્ય દ્વારા સ orted ર્ટ અને તે ક્રમમાં વિશ્લેષણ કર્યું. 00-ઉપસર્ગ
ફાઇલનામોમાં ing ર્ડરિંગને સમજવાનું સરળ બનાવવાનો હેતુ છે.રૂપરેખા ફાઇલ પણ ભૂલ આપ્યા વિના શામેલ કરવાનો પ્રયાસ કરી શકે છે જો
તે મળ્યું નથી:ડોવકોટને બધા ઇનપુટ કનેક્શન્સ સાંભળવાની મંજૂરી આપે છે (આઇપીવી 4 / આઇપીવી 6)
ડોવકોટ વપરાશકર્તા માટે પાસવર્ડ ઉમેરો:નેનો રૂપરેખા/etc_dovecot_passwd
ટીમ: {સાદો} તમારો પાસવર્ડ
આગળ, opendkim રૂપરેખાnano config/etc_postfix_main.cf
નેનો રૂપરેખા/etc_opendkim.confઅને આ રેખાઓ ઉમેરો:
# સહી અને ચકાસણી માટે આ એક મૂળભૂત ગોઠવણી છે. તે સરળતાથી હોઈ શકે છે # મૂળભૂત ઇન્સ્ટોલેશનને અનુરૂપ અનુકૂળ. Opendkim.conf (5) અને જુઓ # /usr/share/doc/opendkim/examples/opendkim.conf.sample સંપૂર્ણ માટે # ઉપલબ્ધ રૂપરેખાંકન પરિમાણોનું દસ્તાવેજીકરણ. સિસ્લોગ હા Syslogsuccess હા #Loghy નં # સામાન્ય સહી અને ચકાસણી પરિમાણો. ડેબિયનમાં, "થી" હેડર છે # ઓવરઇન્ડ, કારણ કે તે ઘણીવાર પ્રતિષ્ઠા પ્રણાલીઓ દ્વારા ઉપયોગમાં લેવામાં આવતી ઓળખ કી છે # અને આ રીતે કંઈક સુરક્ષા સંવેદનશીલ. કેનોનિકલલાઇઝેશન હળવા/સરળ પદ્ધતિ સબડોમેન્સ નં માંથી વધારે # સાઇન ઇન ડોમેન, પસંદગીકાર અને કી (આવશ્યક). ઉદાહરણ તરીકે, સહી કરો # પસંદગીકાર "2020" (2020._Domainkey.example.com) સાથે ડોમેન "ઉદાહરણ.કોમ" માટે, # /etc/dkimkeys/example.private માં સંગ્રહિત ખાનગી કીનો ઉપયોગ. વધુ દાણાદાર # સેટઅપ વિકલ્પો /usr/share/doc/opendkim/readme.opendkim માં મળી શકે છે. #ડોડોઇન ઉદાહરણ.કોમ #સિલેક્ટર 2020 #કીફાઇલ /etc/dkimkeys/example.private # ડેબિયનમાં, ઓપનડકીમ વપરાશકર્તા "ઓપનડકીમ" તરીકે ચાલે છે. જ્યારે 007 નો ઉમાસ્ક જરૂરી છે # એમટીએ સાથે સ્થાનિક સોકેટનો ઉપયોગ કરીને જે સોકેટને બિન-ખાનગી તરીકે access ક્સેસ કરે છે # વપરાશકર્તા (ઉદાહરણ તરીકે, પોસ્ટફિક્સ). તમારે જૂથમાં વપરાશકર્તાને "પોસ્ટફિક્સ" ઉમેરવાની જરૂર પડી શકે છે # તે કિસ્સામાં "ઓપનડકીમ". Userid opendkim Umask 007 એમટીએ કનેક્શન (જરૂરી) માટે # સોકેટ. જો એમટીએ ક્રોટ જેલની અંદર હોય, # તે સુનિશ્ચિત કરવું આવશ્યક છે કે સોકેટ સુલભ છે. ડેબિયનમાં, પોસ્ટફિક્સ ચાલે છે #/var/સ્પૂલ/પોસ્ટફિક્સમાં એક ક્રોટ, તેથી યુનિક્સ સોકેટ હોવું જોઈએ # નીચેની છેલ્લી લાઇન પર બતાવ્યા પ્રમાણે ગોઠવેલ. #સોકેટ લોકલ:/રેન/એપેન્ડકિમ/ઓપનડકિમ.સોક #સોકેટ INET: 8891@લોકલહોસ્ટ #સોકેટ INET: 8891 સોકેટ લોકલ: /var/spool/postfix/opendkim/opendkim.sock Pidfile/run/opendkim/opendkim.pid # યજમાનો કે જેના માટે ચકાસવાને બદલે સહી કરવી, ડિફોલ્ટ 127.0.0.1 છે. જુઓ વધુ માહિતી માટે ope પરેશનકિમ (8) નો ઓપરેશન વિભાગ. #ઇન્ટર્નલહોસ્ટ્સ 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 # ટ્રસ્ટ એન્કર DNSSEC ને સક્ષમ કરે છે. ડેબિયનમાં, ટ્રસ્ટ એન્કર ફાઇલ પ્રદાન કરવામાં આવી છે # પેકેજ દ્વારા DNS-મૂળ-ડેટા. Trustnancorfile/usr/share/dns/root.keykey #નામોર્વર્સ 127.0.0.1 સંદેશાઓ પર હસ્તાક્ષર કરવા માટે ઉપયોગમાં લેવાતા સરનામાંઓથી માંડીને નકશા ડોમેન્સ કીટેબલ રિફાઇલ: /etc/opendkim/key.table સહીટેબલ રિફાઇલ: /etc/opendkim/signing.table # આંતરિક યજમાનોનો સમૂહ, જેના મેઇલ પર હસ્તાક્ષર થવું જોઈએ આંતરિક હોસ્ટ્સ /etc/opendkim/trusted.hosts# આ સહી અને ચકાસણી માટે મૂળભૂત ગોઠવણી છે. તે સરળતાથી હોઈ શકે છે
# મૂળભૂત ઇન્સ્ટોલેશનને અનુરૂપ સ્વીકાર્યું. Opendkim.conf (5) અને જુઓ
# /usr/share/doc/opendkim/examples/opendkim.conf.sample સંપૂર્ણ માટે
# ઉપલબ્ધ રૂપરેખાંકન પરિમાણોનું દસ્તાવેજીકરણ.
# લોગ નહીં
# સામાન્ય સહી અને ચકાસણી પરિમાણો. ડેબિયનમાં, "થી" હેડર છે
# મોટા પ્રમાણમાં, કારણ કે તે ઘણીવાર પ્રતિષ્ઠા પ્રણાલીઓ દ્વારા ઉપયોગમાં લેવામાં આવતી ઓળખ કી હોય છે
# અને આમ કંઈક અંશે સુરક્ષા સંવેદનશીલ.
# ડોમેન, પસંદગીકાર અને કી (આવશ્યક) પર હસ્તાક્ષર કરવા. ઉદાહરણ તરીકે, સહી કરો
# સિલેક્ટર "2020" (2020._Domainkey.example.com) સાથે ડોમેન "ઉદાહરણ.કોમ" માટે,
# /etc/dkimkeys/example.private માં સંગ્રહિત ખાનગી કીનો ઉપયોગ. વધુ દાણાદાર
# સેટઅપ વિકલ્પો /usr/share/doc/opendkim/readme.opendkim માં મળી શકે છે.
ડોમેન ઉદાહરણ.કોમપસંદગીકાર 2020
કીફાઇલ /etc/dkimkeys/example.privatenano config/etc_postfix_master.cf
ડેબિયનમાં, ઓપનડકીમ વપરાશકર્તા "ઓપનડકીમ" તરીકે ચાલે છે. જ્યારે 007 નો ઉમાસ્ક જરૂરી છેએમટીએ સાથે સ્થાનિક સોકેટનો ઉપયોગ કરવો જે સોકેટને બિન-આધિન તરીકે access ક્સેસ કરે છે
વપરાશકર્તા (ઉદાહરણ તરીકે, પોસ્ટફિક્સ). તમારે જૂથમાં વપરાશકર્તાને "પોસ્ટફિક્સ" ઉમેરવાની જરૂર પડી શકે છે# તે કિસ્સામાં "ઓપેન્ડકીમ".
# એમટીએ કનેક્શન (જરૂરી) માટે સોકેટ. જો એમટીએ ક્રોટ જેલની અંદર હોય,
# તે સુનિશ્ચિત કરવું આવશ્યક છે કે સોકેટ સુલભ છે. ડેબિયનમાં, પોસ્ટફિક્સ ચાલે છે
# /var/સ્પૂલ/પોસ્ટફિક્સમાં એક ક્રોટ, તેથી યુનિક્સ સોકેટ હોવું જોઈએ
# નીચેની છેલ્લી લાઇન પર બતાવ્યા પ્રમાણે ગોઠવેલ.
# સોકેટ લોકલ:/રેન/ઓપન્ડકિમ
# સોકેટ INET: 8891@લોકલહોસ્ટ
# સોકેટ INET: 8891
# યજમાનો કે જેના માટે ચકાસવાને બદલે સહી કરવી, ડિફોલ્ટ 127.0.0.1 છે. જુઓ
# વધુ માહિતી માટે ઓપનડકીમનો ઓપરેશન વિભાગ (8).
# આંતરિક હોસ્ટ્સ 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
# ટ્રસ્ટ એન્કર DNSSEC ને સક્ષમ કરે છે. ડેબિયનમાં, ટ્રસ્ટ એન્કર ફાઇલ પ્રદાન કરવામાં આવી છે
# પેકેજ દ્વારા DNS-મૂળ-ડેટા.
# નામસર્વર્સ 127.0.0.1
# સંદેશાઓ પર હસ્તાક્ષર કરવા માટે ઉપયોગમાં લેવાતા સરનામાંથી ડોમેન્સનો નકશો
# આંતરિક યજમાનોનો સમૂહ, જેના મેઇલ પર હસ્તાક્ષર થવું જોઈએ
# નેનો રૂપરેખા/etc_default_opendkim
# અને આ રેખાઓ ઉમેરો
# # નોંધ: આ એક વારસો ગોઠવણી ફાઇલ છે. તેનો ઉપયોગ opendkim દ્વારા કરવામાં આવતો નથી
# સિસ્ટમ ડી સેવા. કૃપા કરીને અનુરૂપ ગોઠવણી પરિમાણોનો ઉપયોગ કરો
તેના બદલે # /etc/opendkim.conf.
#
# પહેલાં, કોઈ અહીં ડિફ default લ્ટ સેટિંગ્સને સંપાદિત કરશે અને પછી ચલાવશે
# /lib/opendkim/opendkim.service.genate પર સિસ્ટમ ઓવરરાઇડ ફાઇલો જનરેટ કરવા માટે
# /etc/systemd/system/opendkim.service.d/override.conf અને
# /etc/tmpfiles.d/opendkim.conf. જ્યારે આ હજી પણ શક્ય છે, તે હવે છે
# સેટિંગ્સને સીધા /etc/opendkim.conf માં સમાયોજિત કરવાની ભલામણ કરી.
#
#ડિમન_ઓપ્ટ્સ = ""
# યુનિક્સ સોકેટનો ઉપયોગ કરવા માટે/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપનડકીમ પર બદલો
# એક ક્રોટમાં પોસ્ટફિક્સ:
#Rundir =/var/સ્પૂલ/પોસ્ટફિક્સ/રન/opendkim
Rundir =/રન/opendkim
#
વૈકલ્પિક સોકેટનો ઉલ્લેખ કરવા માટે # અસામાન્ય
# નોંધ લો કે આ સેટ કરવાથી opendkim.conf માં કોઈપણ સોકેટ મૂલ્યને ઓવરરાઇડ કરશે
# ડિફોલ્ટ:
સોકેટ = "સ્થાનિક: /var/spool/postfix/opendkim/opendkim.sock"
# બંદર 54321 પર બધા ઇન્ટરફેસો પર સાંભળો:
#સોકેટ = inet: 54321
# પોર્ટ 12345 પર લૂપબેક સાંભળો:
#સોકેટ = inet: 12345@લોકલહોસ્ટ
# બંદર 12345 પર 192.0.2.1 પર સાંભળો:
#સોકેટ = inet: 12345@192.0.2.1
વપરાશકર્તા = opendkim
જૂથ = opendkim
Pidfile = $ rundir/$ નામ.પીડ
એક્સ્ટ્રાફ્ટર =
# નોંધ: આ એક વારસો ગોઠવણી ફાઇલ છે. તેનો ઉપયોગ opendkim દ્વારા કરવામાં આવતો નથી
# સિસ્ટમ સેવા. કૃપા કરીને અનુરૂપ ગોઠવણી પરિમાણોનો ઉપયોગ કરો
# તેના બદલે /etc/opendkim.conf.
#
# પહેલાં, કોઈ અહીં ડિફ default લ્ટ સેટિંગ્સને સંપાદિત કરશે અને પછી એક્ઝેક્યુટ કરશે
# /lib/opendkim/opendkim.service.genate પર સિસ્ટમ ઓવરરાઇડ ફાઇલો જનરેટ કરવા માટે
# /etc/systemd/system/opendkim.service.d/override.conf અને
# /etc/tmpfiles.d/opendkim.conf. જ્યારે આ હજી પણ શક્ય છે, તે હવે છે
# સીધા /etc/opendkim.conf માં સેટિંગ્સને સમાયોજિત કરવાની ભલામણ કરી.
#
# ડિમન_ઓપ્ટ્સ = ""
# યુનિક્સ સોકેટનો ઉપયોગ કરવા માટે/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપેન્ડકીમ પર બદલો
# એક ક્રોટમાં પોસ્ટફિક્સ:
# Rundir =/var/સ્પૂલ/પોસ્ટફિક્સ/રન/ઓપેન્ડકિમ
#
# વૈકલ્પિક સોકેટનો ઉલ્લેખ કરવા માટે અસામાન્ય
# નોંધ લો કે આ સેટ કરવાથી opendkim.conf માં કોઈપણ સોકેટ મૂલ્યને ઓવરરાઇડ કરશે
# ડિફોલ્ટ:
# બંદર 54321 પર બધા ઇન્ટરફેસો પર સાંભળો:
# સોકેટ = inet: 54321
# 12345 પોર્ટ પર લૂપબેક સાંભળો:
# સોકેટ = inet: 12345@લોકલહોસ્ટ
# 12345 પોર્ટ પર 192.0.2.1 પર સાંભળો:
# સોકેટ = inet: 12345@192.0.2.1
# જ્યારે અમે અમારું પોસ્ટફિક્સ સર્વર સેટ કરવા માટે તૈયાર હોઈએ છીએ, ત્યારે અમે યોગ્ય ડોમેન નામ એમ્બેડ સાથે, નીચેનો કોડ ચલાવીશું. સ્ક્રિપ્ટ બનાવીને પ્રારંભ કરો
# ટચ સ્ક્રિપ્ટો/પોસ્ટફિક્સસેટઅપ
સુડો ચમોડ એ+એક્સ સ્ક્રિપ્ટ્સ/પોસ્ટફિક્સસેટઅપ
નેનો સ્ક્રિપ્ટો/પોસ્ટફિક્સસેટઅપ
# હવે, નેનોમાં, ટેક્સ્ટ સંપાદક, આ ફાઇલને સંપાદિત કરો જેથી તેમાં ફેમ્મેબેબે ડોટ કોમના બદલે તમારું ડોમેન નામ શામેલ છે.
# #!/બિન/બાશ
# સેટઅપ પોસ્ટફિક્સ
સીડી $ ડીર
ઇકો "મેઇલ સર્વિસીસ કન્ફિગરેશન"
SUDO CP /etc/postfix/main.cf /etc/postfix/main.cf.backup
SUDO CP રૂપરેખા/etc_postfix_main.cf /etc/postfix/main.cf
SUDO CP રૂપરેખા/etc_postfix_master.cf /etc/postfix/master.cf
SUDO CP રૂપ
સુડો સી.પી. રૂપરેખા/etc_dovecot_conf.d_10-auth.conf /etc/dovecot/conf.d/10-auth.conf
સુડો સી.પી. રૂપરેખા/etc_dovecot_conf.d_10-master.conf /etc/dovecot/conf.d/10-master.conf
સુડો સીપી રૂપરેખા/etc_dovecot_dovecot.conf /etc/dovecot/dovecot.conf
SUDO CP રૂપરેખા/etc_dovecot_passwd/etc/dovecot/passwd
સુડો સીપી રૂપરેખા/etc_opendkim.conf /etc/opendkim.conf
SUDO CP રૂપ
સુડો એડ્યુઝર પોસ્ટફિક્સ opendkim
સુડો એમકેડીર /વગેરે /opendkim
સુડો એમકેડીર/વગેરે/opendkim/કીઓ
સુડો એમકેડીર /etc/opendkim/keys/femmebabe.com
સુડો એમકેડીર/વાર/સ્પૂલ/પોસ્ટફિક્સ/ઓપનડકિમ
સુડો ઇકો "*@femmebabe.com sendonly._domainkey.femmebabe.com" | સુડો ટી -એ /etc/opendkim/signing.table
સુડો ઇકો "Sendonly._domainkey.femmebabe.com fimmebabe.com: sendonly:/etc/opendkim/keys/femmebabe.com/sendonly.private" | સુડો ટી -એ /etc/opendkim/key.table
સુડો ઇકો "127.0.0.1" | સુડો ટી -એ /etc/opendkim/trusted.hosts
સુડો ઇકો "લોકલહોસ્ટ" | સુડો ટી -એ /etc/opendkim/trusted.hosts
સુડો ઇકો "" | સુડો ટી -એ /etc/opendkim/trusted.hosts
સુડો ઇકો "*.femmebabe.com" | સુડો ટી -એ /etc/opendkim/trusted.hosts
સુડો ચ own ન -આર ઓપેન્ડકીમ: ઓપનડકીમ /વગેરે /opendkim
સુડો ઓપેન્ડકીમ -ગન્કી -બી 2048 -d fimmebabe.com -d /etc/opendkim/keys/femmebabe.com -s સેન્ડનલી -વી
સુડો ચ્મોદ GO-RW/etc/opendkim/કીઓ
સુડો ચાવન ઓપેન્ડકીમ: opendkim /etc/opendkim/keys/femmebabe.com/sendonly.private
સુડો ચાવન ઓપેન્ડકીમ: પોસ્ટફિક્સ/var/સ્પૂલ/પોસ્ટફિક્સ/opendkim
સીડી $ ડીર
સુડો સીપી મેઇલબોક્સ/*/var/મેઇલ/
સુડો ચાવન: વપરાશકર્તાઓ/var/મેઇલ/*
સુડો chmod -r a+rwx/var/મેઇલ/*
SUDO સિસ્ટમસીટીએલ ફરીથી પ્રારંભ ઓપનકીમ પોસ્ટફિક્સ ડોવકોટ
સુડો કેટ /etc/opendkim/keys/femmebabe.com/sendonly.txt | tr -d '\ n' | સેડ 'એસ/\ એસ // જી' | સેડ 'એસ/"" // જી' | awk -f '[) (]' '{પ્રિન્ટ $ 2}'
# !/બિન/બાશ
# પોસ્ટ ફિક્સ
# હવે, પોસ્ટફિક્સ, ઓપનડકીમ અને ડોવકોટને ગોઠવવા માટે પૂર્ણ સ્ક્રિપ્ટ ચલાવો.
# ./scripts/postFixsetup
# એકવાર આ સ્ક્રિપ્ટ ચાલે છે, તે છેલ્લી લાઇનને તે છાપે છે અને તેને તમારા DNS રૂપરેખાંકનમાં પેસ્ટ કરો. સુરક્ષિત મેઇલ મોકલતી વખતે તમારા ડોમેનને ઓળખવા માટે આ ઓપેન્ડકીમ કી છે.
# અદ્ભુત! થોડા દિવસોમાં, તમારે સર્વરથી મેઇલ મોકલવા માટે સમર્થ હોવા જોઈએ જો બધું યોગ્ય રીતે ગોઠવેલ હોય.
# જો તમે ફક્ત તમારા મેઇલ સર્વર માટે DNS ને ગોઠવ્યો છે, તો રેકોર્ડ્સને અપડેટ કરવામાં 72 કલાકથી ઓછા સમયનો સમય લેવો જોઈએ. તે સામાન્ય રીતે ખૂબ ઝડપી હોય છે. તમે ચકાસી શકો છો કે તમારો સર્વર આ આદેશનો ઉપયોગ કરીને કામ કરી રહ્યો છે, તમારું ઇમેઇલ પૂરું પાડ્યું છે:
# ઇકો "ટેસ્ટ" | મેઇલ -s "પરીક્ષણ ઇમેઇલ" youremail@gmail.com
# જો બધું યોગ્ય રીતે કાર્યરત હોય તેવું લાગે છે, તો તમારે તમારા સર્વર સાથે ઇમેઇલ મોકલવા માટે સમર્થ હોવા જોઈએ. જો તે કામ કરી રહ્યું નથી, તો ભૂલ શું હોઈ શકે છે તે જોવા માટે લ s ગ્સ જોવાનો પ્રયાસ કરો.
# પૂંછડી –લાઇન્સ 150 /var/log/mail.log
# આ મેઇલ વિશે વર્બોઝ માહિતી પ્રદાન કરશે જે સર્વર દ્વારા મોકલવામાં આવી રહી છે અને તે યોગ્ય રીતે કાર્ય કરે છે કે કેમ. તમારે તમારા ઇનબોક્સમાં ઇમેઇલ પણ જોવા માટે સમર્થ હોવા જોઈએ, જો તે ત્યાં ન હોય તો, તમારું સ્પામ ફોલ્ડર તપાસો.
# તમારે તમારી સેટિંગ્સને તમારી સેટિંગ્સ.પી.માં પણ ગોઠવવાની જરૂર રહેશે જેથી તમારું ઇમેઇલ સર્વર તમારી જાંગો એપ્લિકેશન, પ્રોજેક્ટ સાથે વાત કરી શકે. તમારી સેટિંગ્સમાં આ રેખાઓ ઉમેરો અથવા બદલો
# ઇમેઇલ_હોસ્ટ = ડોમેન
ઇમેઇલ_પોર્ટ = 587
ઇમેઇલ_યુઝ_ટલ્સ = સાચું
ઇમેઇલ_એડ્રેસ = 'ટીમ@femmebabe.com'
ઇમેઇલ_હોસ્ટ_યુઝર = 'ટીમ' #'love@mamashen.com '
ઇમેઇલ_હોસ્ટ_પ ass સવર્ડ = રૂપરેખા ['ઇમેઇલ_હોસ્ટ_ પાસવર્ડ']
ડિફ ault લ્ટ_ફ્રોમ_મેઇલ = '{} <{}>'. ફોર્મેટ (સાઇટ_નામ, ઇમેઇલ_હોસ્ટ_યુઝર)
# 'Love@mamashen.com'
# નોંધ લો કે અમે પાસવર્ડ મેળવવા માટે રૂપરેખા ફાઇલનો ઉપયોગ કરી રહ્યા છીએ. ચાલો આ ફાઇલને ફાઇલની ખૂબ જ શરૂઆતમાં સેટિંગ્સમાં લોડ કરીએ.:
# આયપ
આયાત જે.એસ.એન.
# ખોલો અને લોડ રૂપરેખા
ઓપન ('/etc/config.json') સાથે રૂપરેખા_ફાઇલ તરીકે:
રૂપરેખા = json.load (config_file)
# ખોલો અને લોડ રૂપરેખા
# ચાલો આ ફાઇલ બનાવીએ અને તેમાં એક ગુપ્ત કી, તેમજ મેઇલ પાસવર્ડ ઉમેરીએ. ગુપ્ત કી ઉત્પન્ન કરવા માટે, આ આદેશનો ઉપયોગ કરો, તમને ગમે તેટલી લંબાઈ સાથે:
# ઓપનએસએસએલ રેન્ડ -બેઝ 64 64
# હવે, તે ટેક્સ્ટની ક copy પિ કરો જે જનરેટ કરે છે અને /etc/config.json સંપાદિત કરે છે
# સુડો નેનો /etc/config.json
# તમારી ફાઇલમાં નીચેની લાઇનો ઉમેરો, કી સાથે જે ગુપ્ત કી તરીકે જનરેટ કરે છે.
# -
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"ઇમેઇલ_હોસ્ટ_ પાસવર્ડ": "તમારો પાસવર્ડ"
.
# જેએસઓન ફોર્મેટ સરળ અને ઉપયોગમાં સરળ છે, અમે અમારા પ્રોજેક્ટમાં પણ આ રીતે ઉપયોગ કરવા માંગીએ છીએ તે અન્ય કીઓ જાહેર કરી શકીએ છીએ, અને તેમને અમારી પ્રોજેક્ટ ડિરેક્ટરીથી અલગ રાખી શકીએ છીએ જેથી અન્ય વપરાશકર્તાઓ તેમને લખી શકતા નથી અને તેથી તેઓ એકલા અમારી પ્રોજેક્ટ ડિરેક્ટરીમાંથી વાંચી શકાતા નથી. એપીઆઈ કીઓ માટે આ પ્રેક્ટિસની ભલામણ કરવામાં આવે છે, જેમાંથી આપણે અહીં થોડા કરતા વધારે ઉપયોગ કરીશું.
# બધું સાચવવામાં આવ્યું છે તેની ખાતરી કરવા માટે તમે તમારા પ્રોજેક્ટને બેકઅપ લેવા પણ ઇચ્છો છો અને જો તમે હવે સર્વર ભાડે લેવાની ઇચ્છા રાખશો નહીં તો પણ તમે તમારા કાર્યને પછીથી પુન recover પ્રાપ્ત કરી શકશો.
# સુડો બેકઅપ
# હવે, વેબ સર્વરથી એચટીએમએલ ઇમેઇલ મોકલવાનો પ્રયાસ કરો, જો કે કમાન્ડ લાઇનમાંથી એક મોકલવાનું કામ કરી રહ્યું છે. શેલમાં તમારા વપરાશકર્તા દાખલાની ક્વેરી કરો અને તે વપરાશકર્તાને jango દ્વારા HTML ઇમેઇલ મોકલો. મારું નામ કોડમાં, ચાર્લોટ, તમારા વપરાશકર્તા નામ પર બદલો.
# પાયથોન મેનેજ.પી શેલ
jango.contrib.auth.models આયાત વપરાશકર્તા તરફથી
u = user.objects.get (વપરાશકર્તા નામ = 'ચાર્લોટ')
વપરાશકર્તાઓ તરફથી.
SEND_WELCOME_EMAL (u)
બહાર નીકળો
# જો પ્રથમ આદેશ કામ કરતું નથી, તો ઉપયોગ કરવાની ખાતરી કરો
# સોર્સ વેન્વ/ડબ્બા/સક્રિય
# પૂરી પાડવામાં આવેલ બધું યોગ્ય રીતે સેટ કરેલું છે, હવે તમને તમારી વેબ એપ્લિકેશન દ્વારા મોકલેલા તમારા મેઇલબોક્સમાં સ્વાગત ઇમેઇલ મળશે. સારી નોકરી! તમે ખૂબ જ આગળ આવ્યા છો.
# હું ઉમેરવા માંગતો હતો, જો તમે આના જેવા પ્રોજેક્ટ પર કામ કરતી વખતે કોઈ પણ ભૂલો સાથે સંઘર્ષ કરી રહ્યાં છો, તો જવાબો શોધવામાં અચકાવું નહીં અને મદદ માટે પૂછશો નહીં. ગૂગલ, અન્ય સર્ચ એન્જિન વચ્ચે, પ્રોગ્રામિંગ સહાયની શોધ માટે શ્રેષ્ઠ સંસાધનો છે. ફક્ત તમને જે ભૂલ થઈ રહી છે તેની શોધ કરો, અને તમે તે જોવા માટે સમર્થ હશો કે અન્ય લોકો સમસ્યાને કેવી રીતે હલ કરે છે. ઉપરાંત, તમે, તમારા શિક્ષકો (શિક્ષકો, પ્રોફેસરો, ટ્યુટર્સ), ઇન્ટરનેટ પરના કોઈપણ સાથીઓ કે જે પ્રોગ્રામિંગ સહાય માટે ઉપલબ્ધ છે, અથવા તમે અનુભવી રહ્યા છો તે મુદ્દાઓના ઉકેલો શોધવા માટે ફરીથી અથવા અન્ય સંસાધનોની સલાહ લેવા માટે આપનું સ્વાગત છે. હું સમજું છું કે આ સરળ નથી, પરંતુ જો તમે આ સુધી વાંચ્યું છે અને કોઈ કોડ લખી રહ્યા નથી, તો પણ તમે શરૂઆતથી વેબ એપ્લિકેશન બનાવવા વિશે ઘણું શીખી રહ્યાં છો. તમારી જાતને પીઠ પર પેટ કરો, તમે એક સરસ કામ કરી રહ્યા છો.
# આ ત્રીજી આવૃત્તિ વેબ વિકાસ માર્ગદર્શિકા વાંચવા માટે સમય કા for વા બદલ આભાર. ભવિષ્યની આવૃત્તિઓમાં, હું દસ્તાવેજની શરૂઆતમાં ચર્ચા કરેલા વધુ મહત્વપૂર્ણ ઉદાહરણોનો સમાવેશ કરીશ અને અમે સ software ફ્ટવેર અને હાર્ડવેર વિકાસની દુનિયામાં વધુ .ંડા ડાઇવ કરીશું. શું આવવાનું છે તેના માટે સંપર્કમાં રહો, અને હું તમને અવિશ્વસનીય સ software ફ્ટવેર કેવી રીતે બનાવવું તે શીખવવાની રાહ જોઉં છું. આગલી આવૃત્તિમાં મળીશું!
# આ લિંકની મુલાકાત લો (તે તમને લોટ્ટે હાર્પરની બહાર લઈ જશે)
nano config/etc_default_opendkim
nano config/etc_dovecot_conf.d_10-master.conf
nano config/etc_dovecot_dovecot
nano config/etc_dovecot_passwd
team:{plain}yourpassword
nano config/etc_opendkim.conf
nano config/etc_default_opendkim
touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup
./scripts/postfixsetup
echo "test" | mail -s "Test Email" youremail@gmail.com
tail –lines 150 /var/log/mail.log
openssl rand -base64 64
sudo nano /etc/config.json
{
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"EMAIL_HOST_PASSWORD": "yourpassword"
}
sudo backup
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()
source venv/bin/activate
https://glamgirlx.com/he/practical-web-based-deep-learning-and
https://glamgirlx.com/he/practical-web-based-deep-learning-and -
השאירו לי טיפ בביטקוין באמצעות כתובת זו: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE