ተግባራዊ የድር ላይ የተመሠረተ ጥልቅ ትምህርት እና ደህንነት በ ሦስተኛው እትም ቻርሎት ሃር per ር ጁላይ 3, 2024 የዘመነ / የተሻሻለው ሰኔ 3, 2025
መቅድም: -
የደህንነት ማገጃዎች በድር ጣቢያ ውስጥ ሶፍትዌሮችን በመገንባት ረገድ የማንኛውም ድር የገንቢ ዕቅድ እና ግድያ አስፈላጊ ነው, ምህንድስና በሚያንቀሳቅሱበት ጊዜ ምህንድስና እና ለተግባራዊ ዓላማዎች ጠቃሚ ነው. የ HTML, ጃቫስክሪፕት, እና ተግባራዊነት የሚገልጹ በርካታ በርካታ ፕሮጄክቶች, ትህትናን እና ባህላዊዎችን በመተግበር, ትህትናን እና ባህላዊዎችን በመተግበር, ትህትናን እና ባህላዊዎችን በመተግበር, እና እንዲሁም እንዲሁም ሁሉንም የአጠቃቀም እና አስፈላጊ አገልግሎቶችን ለመፍጠር, እና እንዲሁም እንዲሁም እንዲሁም እንዲሁም እንዲሁም የአጠቃቀም እና አስፈላጊ አገልግሎቶችን በመፍጠር, መጨረሻው ተጠቃሚ ጊዜን ለመግደል ወይም በበይነመረብ ላይ የሚከናወን አንድ ነገር ማግኘት, አብዛኛውን ጊዜ በኪስኪን ማያ ገጽ ስማርትፎን መሣሪያ ላይ. ብዙ ሰዎች ከቧንቧዎች ድር ጣቢያ ለመገንባት በሚፈልጉበት ጊዜ የትም ሊጀምረም እና ለሶፍትዌር ምዝገባዎች, በተለይም ፈጠራዎች የሚጠቀሙበት ማንኛውንም የቅርብ ጊዜ መሳሪያዎችን በመገንባት, በተለይም ፈጠራዎች ጥቅም ላይ እንዲውሉ የሚፈልገውን ገንዘብ ለመገንባት, በተለይም ፈጠራዎች የተገደበው ነገር ቢኖር, እና ተለዋዋጭነት. በዚህ መጽሐፍ ውስጥ ለማንበብ ጥቂት ደቂቃዎች ካሉዎት እና ግቦችዎን ለመፃፍ እና ለራስዎ ሶፍትዌሮች ውስጥ አንድ ተጨማሪ መመሪያ ለማግኘት እና የአድማጮችዎን በትክክል ለማሟላት የሚረዱ እና የሚቀጥለውን ተፅእኖ ለማግኘት የተወሰነ ጊዜ እንዲወስዱ ለማድረግ የተወሰነ ጊዜ እንዲወስዱ ለማድረግ የተወሰነ ጊዜ እንዲወስዱ ለማድረግ የተወሰነ ጊዜ መድፈር.
ስለ እኔ: - እኔ በ C / C ++, ጃቫ, ፓይሆን, ኤችቲኤምኤል, CSS እና ጃቫስክሪፕት ውስጥ ሰፊ ተሞክሮ ያለው እጅግ በጣም ብዙ የንግድ ገንቢ ነኝ. ሰዎች ለመጠቀም, ለመጎብኘት, ለመጎብኘት, ለማዝናናት እና ለመግደል የሚፈልጉትን ሱሰኛዎች ሱሰኛዎችን እፀዳለሁ, እና አልፎ ተርፎም ከሁሉም በላይ, ሶፍትዌሮችን እሸጣለሁ. አንድ ድርጣቢያ እንዲመስሉ እና ሥራዎ እንዴት እንደሚፈልጉ ሀሳብ ካለዎት, የራስዎን ፍላጎት ለማሟላት ወጪዎችን ለመሸፈን ፈቃደኛ ነዎት, እናም የሚቀጥለውን የ YouTube, Tiktok, ትዊተር, ጉግል አልፎ ተርፎም, የከፍተኛ ቴክኖሎጅ መተግበሪያን እሠራለሁ. ጊዜዬን ለመሸጥ ከመሞከር ይልቅ የራስዎን ለመግዛት ከመሞከር ይልቅ እኔ በሚፈልጉት መስክ ውስጥ ስኬታማ የሥራ መስክን የሚመራ መተግበሪያ (ድርጣቢያ) እና ገለልተኛ የሶፍትዌር ገንቢ መሆን እንደሚኖርብዎት ማውራት እፈልጋለሁ. እና እኔ ግልጽ እንድሆን, የምሰጥዎትን ትምህርት መደበኛ ያልሆነ ትሆናላችሁ. ወደ ትምህርት ቤት መሄድ እና ይህንን ሁሉ በመደበኛ ትምህርት, የተሰጡ ስራዎችዎን ያጠናቅቁ, እናም ከዲሞክራቶችዎ ውስጥ ብዙ ስልጣንዎን አልሰጡም እናም ስራዎችን አጠናቅቀዎት. እኔ ፕሮፌሰር አይደለሁም, በእራስዎ የግል ስኬት ወደሚተነዳዎት የሙያ መስክ ሊመራዎት እንደሚፈልግ ጓደኛዬ ማሰብ ትችላላችሁ. እና እኔ ስኬት አልሸሽምም, ከጊዜ ወደ ጊዜዎ መግዛት ያስፈልግዎታል. ኮድ መማሪያ የተማራ ትምህርት የመማር ኩርባ አለው, በጭራሽ ቀላል አልነበረም, ወይም በጭራሽ መሆን የለበትም. መተግበሪያዎችን እራስዎ ለመማር እና ለመገንባት በሚያስደንቁበት ጊዜም ቢሆን መሞከርዎን እና መሞከርዎን እና መሞከርዎን በተቻለዎት መጠን እንደገና መሥራት ያስፈልግዎታል. ይህ በሕግ በተፈጥሮው ውስጥ ነው. ኮድ የፕሮግራም የስህተት መልዕክቶችን ለመስጠት በተቀናጀ ኮምፕዩተር ነው, እና እነዚህም ኮድዎን በቀላሉ ወደ የፍለጋ ሞተሩ ለመገልበጥ እና ሌሎች የሰዎችን ምሳሌ በማንበብ እንኳን ኮድ እንዴት እንደሚማሩ ያስተምራሉ. እና እኔ ማለት አለብኝ, በጣም ሀብታም, ብልህ, ስኬታማ, ወይም ሌላው ቀርቶ መተግበሪያን ለመገንባት የተደራጁ ወይም የተደራጁ መሆን አያስፈልግዎትም. ኮምፒተርው ያንን ድርጅቶች ለእርስዎ ይንከባከባል. በሙከራው እና በስህተት በኩል መጽናት ያስፈልግዎታል, ትኩረቱን ያተኩሩ እና በሚያደርጉት ነገር ጠንክረው መሥራት, እና እርስዎ በሚያደርጉት አጠቃላይ ውስጥ በጣም ስኬታማ የሥራ መስክ ይኖርዎታል.
ማን ነኝ የመጨረሻው ክፍል ስለ መማር የበለጠ ስለ መማር እና ከዚህ መጽሐፍ የመውሰድ መንገድ እንደወሰደ አውቃለሁ. እኔ በትክክል ማን ነኝ? ያ የተወሳሰበ ጥያቄ ነው. እኔ ይህንን መጽሐፍ እንኳ አልፎ ተርፎም ይህንን መጽሐፍ እንኳን ለማካሄድ ወይም ለማፅዳት አስቸጋሪ ሆኖብኛል. በአጭሩ, ይህንን መጽሐፍ እያነበቡ ከሆነ በእሱ ውስጥ ስለሽነቡ, እና ይህንን ሩቅ አድርገው ቢያስቡም, እርስዎ በሚሰጡት ነገር ሁሉ እርስዎ እንዲሳካዎት የሚፈልግ ሰው ነኝ. እኔ ራሴ, የሶፍትዌር ገንቢ እና ተማሪው እንደ አንድ ትልቅ እንቆቅልሽ እና ተማሪው እንደ አንድ ትልቅ, ትላልቅ, ትላልቅ, ትላልቅ, ትላልቅ, እና ስኬት እንዲያስከፍሉ ለሚፈልጉ ሌሎች ተማሪዎች ህይወታቸውን የሚጽፉ ናቸው. በአብዛኛው እኔ የማደርገው ይህ ነው-እራሴን እና ሌሎች ሰዎችን ለመርዳት መተግበሪያዎችን እገነባለሁ. ፖርትፎሊዮቼን ወደ ጠቃሚ ሰነድ ውስጥ ለማስቀመጥ እኔ የመጀመሪያ ልጄ ይህ ቢሆንም የእኔ የመጀመሪያ ህትመት ነው, እናም እኔ አርቲስትም ነኝ. ይህንን ለእርስዎ እቀበላለሁ, እንግዳ የሆነ ሰው ነው. እኔ ፍጹም አይደለሁም, እኔ ተጨማሪ ስኬት በመስጠት ለራሴ ስም ለመሞከር እና በስሜቴ ለመተው ሞክሬ እንድሄድ በሕግ አሂድሁ. እኔ በወሊድ ሴት ነኝ, ሜካፕ እለብሳለሁ, እኔ ራሴን ፎቶ እለብሳለሁ, አለባበሶች እና ሌሎች ሴቶች ልብስ እለብሳለሁ, እናም እኔ እራሴን እንደ ሴት ሴት በንቃት እቆያለሁ. ከዚህ በፊት ከሌሎች ሰዎች ጋር ችግሮች አጋጥመውኛል, እና ሠረገላዎችን ለመገንባት እና በመገንባት ይህንን መጽሐፍ በእጆችዎ ማለፍ እንደቻልኩ ይቅርታ እጠይቃለሁ. የእኔን እና እንደ እኔ ያሉ ስራዎችን ማንበብ እና በተሻለ ሁኔታ የሚመስሉ ኮድን ማነፃፀር እና የተሻለ እንደምሰራው ማውጣት ይፈልጋሉ, ምክንያቱም እንደ እኔ መጽሐፍን ለመፈፀም, በሕይወትዎ ውስጥ ገንዘብዎን ከመጠየቅ ይልቅ ይህንን መጽሐፍ ለመግዛት ይችላሉ, በሕይወትዎ ውስጥ ስኬታማ ለመሆን የሚያስፈልጉዎት ሀብቶች አሉዎት. ከቤተሰብ እያደገ የመጣ, የጤና ሁኔታዎች, ሐኪሞች, ሐኪሞች, ሐኪሞች, እና ህጉ ያሉ ሁሉም ዓይነት ችግሮች አጋጥሞኛል, እና ኮዱ በተከፋፈለ እና በተበሳጨ ዓለም ውስጥ የሴት ተፈጥሮን እና የሴት ተፈጥሮን በጥልቅ ያንፀባርቃል. ሆኖም ይህ መጽሐፍ በጥልቅ የሚንከባከበው ነገር ነው, ልጄ, ፖርትፎሊዮ እና የኑሮ መተዳደሪያዬ ነው, ስለሆነም ጽሑፉን ወደ ቤት ሲወስዱ እና ከእኔ ለመማር በጥንቃቄ እንዲሰሩኝ አደንቃለሁ. እባክዎን ፍጹም አይደለሁም, ይህ መጽሐፍ ስህተቶች, ክለሳዎች እና አዲስ እትሞች ይኖሩዎታል, እናም ከጽሑፉ ጋር የተሳካ ተሞክሮ እንዲኖራችሁ ከሚችሉት ምክንያታዊ አንጎልዎ ጋር ማሰብ ይኖርብዎታል. እንዲሁም ሲጽፉ ምንም እንኳን ተፈታታኝ ሁኔታዎች ቢያጋጥሙዎትም እንኳን ደህና እንደሆንኩ እረዳለሁ. እንደዚህ ያለ ነገር አስብ: - በዲጂታል ቦታ ውስጥ ማንኛውንም ነገር እንዲያስቡ, የሚገቧቸውትን መረጃዎች ሁሉ ማስገባት, መተንተን እና ያደራጁት, እርስዎ በሚገቧቸው እና በሚተገቡት መረጃዎች ውስጥ ችግሮች ያጋጥሙዎታል. እኔ እነግራችኋለሁ, እኔ ተመሳሳይ ችግሮች ስላጋጠሙኝ ነው. በአስተማማኝ ሁኔታ ውስጥ ሶፍትዌሮችን ለመገንባት ወይም በሚሳካላቸውበት ጊዜ ይህንን ጽሑፍ በግለሰብ ደረጃ የሚሳተፉበት, እና ይህንን ጽሑፍ በግለሰባዊ ሁኔታ ላይ, እና ለምን እንደምናደርግ, እና, በይነመረብ. በጥቂቶች ጥቂት ቃላት ብቻ እንደሆንኩ አበረታታው, ግን እንዲያነቡዎት አበረታታዎ ይሆናል, ግን ሥራዎን ለማጠናቀቅ የራስዎን ፕሮጄክቶችዎ በሚገነቡበት ጊዜ ማንበብና ማንበቤን እና እሱን እንደሚይዙ እኔን ትገነዘባላችሁ. ፕሮፌሰሮችዎ ወይም አስተማሪዎችዎ ምንም ካልሰጡዎት, ግን እንዳነበብክ, ነገር ግን የተማሩትን ያህል የፕሮጀክቶች ፖርትፎሊዮን እንዲገነቡ እበረታታዎ ይሆናል, እንዲሁም የተማሩትን እንዴት ተግባራዊ እንደሚያደርጉ, እንዴት እንደሚጠቀሙበት. እኔ ካፕቶኒኬቲን መርሃግብሩ ከቀድሞዎቹ ፕሮጄክቶቼ, ደውዴዎች ውስጥ ሙሉ በሙሉ የሚታየውን እና እንደ ታዋቂው መተግበሪያ በሚያንጸባርቅበት ቦታ ላይ ለማሽከርከር እና የተማሩትን በጣም ብዙ ሀሳቦችን እና ምክሮችን ለመፃፍ የሚያስችሏቸውን አብዛኞቻዎች መሠረት ነው.
ይህ መጽሐፍ ምን ማለት ነው- ይህ መጽሐፍ የመማሪያ አጋዥ ነው. ኮድን, ኮድንዎን ለማስተካከል እና ስህተቶችዎን ለማስተካከል, ለማሰማራት, ለማሰማራት, ለማሰማራት, የአስተማማኝ ሁኔታዎችን ማሰማት, የአስተማማኝ ሁኔታዎን የሚያረጋግጡ መመሪያዎች, ይህ አስፈላጊነት, እና የኩባንያዎ ምስል, እና ሶፍትዌሩዎን እንዴት እንደሚመለከቱ ማሰማራት ይችላሉ, እና እንደ ሶፍትዌርዎ እንዴት እንደሚያስችል, እስከ መጨረሻው ተጠቃሚዎችዎ, የድር ጣቢያዎችዎ ጎብ vesitors ዎችዎ በተቻለ መጠን በጣም ቆንጆ ለመሆን ፍጹም በሆነ መልኩ ይገንቡ. በዚህ መጽሐፍ ውስጥ እንደ መድረክ እንዲሁም ደህንነት በድር ላይ በማተኮር በርካታ የሶፍትዌሮች ዲዛይን አሳይኳቸው. የዩኒክስ shell ልን በመጠቀም, የመጠባበቂያ ቅጂ እና ስክሪፕት ባህሪያትን በመጠቀም መሠረታዊ ፕሮጀክት በመገንባት የመማሪያ ተሞክሮ እንጀምራለን. ከዚያ አንድ መሠረታዊ የብሎግ ድር ጣቢያዎችን እንመረምራለን, የእኛን ብሉግ እና የቪድዮ ጽሑፎችን በማሻሻል, ነፃ ሶፍትዌሮችን በመጠቀም የእኛን ባህሪዎች ይጠቀሙ, እና የተገደበ ላልተገየፈ የማረጋገጫ ሞዱል (ፓም (ፓም) በመጠቀም አገልጋያችንን ደህንነት ይጠብቁ. ከዚያ የፋይል አያያዝን እና ማቀነባበሪያ, ቪዲዮ አርት editing ት, የድምፅ ማካካሻ, የባህሪ ልገሳ, የባሕርኮድ ቅኝት እና የኦፕቲካል ባህርይ እውቅናዎችን እንገመግማለን. በመንገድ ላይ ሶፍትዌራችን ከድነት የበለጠ ጠቃሚ እና ደህንነታችንን የበለጠ ጠቃሚ እና ደህንነቱ የተጠበቀ ለማድረግ የሚረዱንን ኤ.ፒ.አይ.ዎችን እንመረምራለን. በመንገድ ላይ, ሶፍትዌሮቻችንን ለመጠበቅ እና ራስን መከላከል እና የመቋቋም ችሎታን ጨምሮ ያሉ የጦር መሳሪያዎችን እና ማምረቻዎችን ማምረቻዎችን እና ሌሎች ርዕሰ መምህራን ያሉ ሌሎች ርዕሰ መስተዳድሮችን እና ሌሎች ርዕሰ መምህራን ያሉ ሌሎች ርዕሰ መስተዳደሮችን እንመረምራለን. እኛ ጨዋታዎችን, 2 ዲ እና 3 ዲ እና 3 ዲ የማረፊያ ሞተሮችን ለመገንባት መንገዱን እንቆጥረዋለን, እና የመሠረታዊ ደረጃ አሰጣጥ ሶፍትዌር ምሳሌዎች እና ኤሌክትሮኒክ የጅምላ ጭንቀት በቅደም ተከተል. እኛ በሚጓዙበት መንገድ እኛ ሶፍትዌሩን በተሻለ ሁኔታ ለመጠበቅ የሚያስችል የማሽን ትምህርት መፍትሄዎችን ቀድሞውኑ እንጠቀማለን. እኛ ደግሞ ሂደቱን ለመገልበጥ እና ደህንነታቸውን ለማቃለል ለድር የአክሲዮን መሳሪያዎች እንጠቀማለን. ይህ መጽሐፍ የድር መተግበሪያን ለመገንባት እና ከድካኒኬሽን ንግድ ጋር በማዋሃድ እና በዲኬኒካል ስርዓቶች ውስጥ ለማዋሃድ እና በአጠቃላይ የጀርባ ዕውቀት ወይም የቀደመ ልምድን ለማካካሻ ሶፍትዌርን ለማካተት እና በአጠቃላይ መመሪያ ነው.
ይህ መጽሐፍ ምን ማለት አይደለም አንድ ድር ጣቢያ ለማግኘት ከፈለጉ ቀላል ሱቅ ማዋቀር እና የሚፈልጉትን መሸጥ, ብሎግ, ፖስታዎች ወይም ቪዲዮዎችን ይለጥፉ ወይም በሌላ መንገድ አንድ ኮድ ሳይጽፉ ማድረግ ይችላሉ. ይህ መጽሐፍ እንደዚህ አይደለም. ይህ መጽሐፍ ቀድሞውኑ የፕሮስቶ orypes ችን የሚያገኙ የቅርብ ጊዜ ሶፍትዌሮችን ስለሚሠራ የበለጠ ጠቃሚ, የተሟላ, ተግባራዊ እና ደህንነቱ የተጠበቀ ሶፍትዌሮችን እንዴት እንደሚገነቡ ያስተምራችኋል, እናም ወደ ኋላ የሚካፈሉ, የተጠበቁ ኩባንያዎች ምንም ለሚያደርጉ ሰዎች ገንዘብ ያዘጋጁ ይሆናል. ይህንን መጽሐፍ በቅርብ ከተከተሉ ኮድ, የምርምር ኮድ, የራስዎን መተግበሪያዎች መገንባት, እና ከሚያደርጉት ገንዘብ ገንዘብ ያገኛሉ. ቀደም ሲል ሰዎችም እንኳ ገንዘብን በተመለከተ ገንዘብ እከፍላለሁ, ምክንያቱም ሰዎች የሚፈለጉ መረጃዎችን ስለያዘ እና ማንበብ ይፈልጋል, እና የእኔን መተግበሪያዎች ሲገዙ ወይም ሲጠቀሙ ቀድሞውኑ ይገዛሉ. ይህ መጽሐፍ ለእርስዎ መተግበሪያ መተግበሪያን አይገነባችሁም, ግን እርስዎ እና ደጋፊዎችዎን, እንግዶችዎ, ለጎብኝዎች, ለጎብኝዎች, ለጎብኝዎች እና በበይነመረብ ህዝቦች ሊጠቀሙበት ከሚፈልጉት መሳሪያዎች ጋር ወደ አንድ ምሳሌ መፃፍ ይኖርብዎታል, እና ወደ ኢንተርኔት ሊጠቀሙበት ይገባል.
ምን ትማራለህ? ይህ መጽሐፍ ሶፍትዌሮችን, በእውነቱ ተግባራዊ ሶፍትዌሮች, እንደገና ተግባራዊ እና ፎቶዎች እንዴት እንደሚሠሩ, ማሽን ማቃጠል, የደኅንነት አቆጣጠር, እና እንደ ብሉቱዝ እና አከባቢዎች ያሉ መልዕክቶችን (NFC) መግባባት ይወዳሉ. የተለወጠውን ቧንቧዎች, የ COSSE atsocks ን ለማካተት, የ COSS ን ቅጥያ የሚጠቀሙባቸውን የ COSS ቅጠሎች, የ CSOS ቅጥያዎችን እንዴት እንደሚገነቡ እና በጀልባ መሣሪያዎች አማካኝነት የ CYGHON ኮድን ለመገንባት, የተጠቃሚ ቧንቧዎችን በመቆጣጠር, የተጠቃሚ ዥረት እና በይነገጽ የ Cythoiens ን በመጠቀም, የተጠቃሚ ሎጂስቶች እና በይነተገናኝ መሣሪያዎች አማካኝነት የ COSTATITITIONE MASS እና በይነገጽ አንቃ, በይነተገናኝ ሚዲያዎች እና በራስ-ሰር የመገናኛ ብዙኃን መገናኛዎች እና በይነተገናኝ ሚዲያዎች እና በይነተገናኝ ሚዲያዎች እና በይነተገናኝ ሚዲያዎች እና በራስ-ሰር የመገናኛ ብዙኃን መገናኛዎች እና በይነተገናኝ ሚዲያዎች እና በራስ-ሰር የመገናኛ ብዙኃን መገናኛዎች እና አውታረ መረብን ያንቁ ለማረጋገጫ ወይም ለሌላ ዓላማዎች, የመድኃኒት ቅኝት, የምስል እና የቪድዮ መጠነኛ, የክፍያ ሂደት, የምርጫ ማቀነባበሪያ, የሚዘዋዋሪ የንግድ ሥራ እና ሌሎችም እንዲቀጥሉ ለማድረግ እንደ የጽሑፍ መልዕክቶች. ባትሪዎች, ካሜራዎች, ማይክሮ ሬኮርኔሎች, ወረዳዎች, ሞተሮች እና ዳሳሾች ያሉ የራስዎን የብሉቱዝ መሳሪያዎች እንዴት መገንባት እንደሚችሉ ይማራሉ, ሽቦ እና 3 ዲ እንዲሁም የፍትህ ቁሳቁሶች የታተሙ ናቸው. ለተጨማሪ ማኑፋክሪንግ እና መሣሪያ ላይ የሚተገበሩ 3 ዲ ንድፍ ርጅነቶችን አሳፋለሁ, ስለሆነም የራስዎን የተካተቱ ባትሪዎች, ካትሪኮች, በኤሌክትሮኒክ መሣሪያዎች, እና ተግባራዊ ወረዳዎች ማምረት ይችላሉ. እና በብሉቱዝ እና በድር አውታረመረቦች. በተለይም, ሁለት የጉዳይ ጥናቶችን, የሁለትዮሽ ጥናቶችን እና የሁለተኛ ደረጃ የጦር መሳሪያዎችን እንመረምራለን, ይህም እንደ ግራፊክ በይነገጽ የሚገኙ እና ለፍርድ ውጤቶች በድር ውስጥ ሊዋሃድ ይችላል. ከዚህ በፊት ያለ ቅድመ-ልምድ የሌለበት ድር ጣቢያውን ከመውደቅ እና ማሰማራት, ተግባራዊ, ቆንጆ, ጠቃሚ እና በጣም አስፈላጊ ተግባራዊ ማድረግ እንደሚችሉ ይማራሉ. እርስዎ የሚሰጥዎትን ጠቃሚ መረጃዎች ለማካፈል, ለማስተካከል እና ከድር ጣቢያዎችዎ ጋር ለመመዝገብ የማሽን ትምህርት እና የኮምፒተር እይታን እንዴት እንደሚጠቀሙ, ሙዚቃዎን እና ሞዱዲዮዎን እንዴት እንደሚጠቀሙ, እና ይበልጥ አስፈላጊ የሆኑ ሰዎችን ወደ ሶፍትዌርዎ እና ንግድዎ ይዘው ይመጣሉ. ይህ መጽሐፍ ትክክለኛ ተጠቃሚዎችን, የደህንነት እና የማሽን ትምህርት ላይ በጣም የተካተተውን ጠቃሚ ሶፍትዌሮችን በመሳተፍ የተሳሳቱ ተጠቃሚዎችን በማስተላለፍ እና በተሳሳተ መንገድ እና በተሳሳተ መንገድ በመሳተፍ ጠቃሚ የሆኑ ዋና ዋና ሶፍትዌሮችን እና ሌሎችንም አውቶማቲክ እና ጠንካራ በሆነ መንገድ እንዲሳተፉ የሚረዱ ዋና ዋና ዋና አካላት ናቸው. ይህ መጽሐፍ ዩኒክስ, በተለይም ዲቢቢያን (ኡቡንቱ), የሠረገላ shell ል, Python, HTML, CSS, ጃቫስክሪፕት እንዲሁም እንደ GYTHON እና FFMEG ያሉ በርካታ ጠቃሚ የሶፍትዌር ፓኬጆች. በተጨማሪም Cryptocuffercentrent ን በራስ-ሰር እንዴት እንደሚገፉ እናም ሆኑ ከመደበኛ ዴቢት ካርዶች ጎብ visitors ዎችዎን ለመምረጥ ከከፈሉ በ Critpocurecuperprency ወይም ከመደበኛ ዴቢት ካርዶች ውስጥ ክፍያዎችን መውሰድ እና መገባደጃዎችን መውሰድ ይችላሉ. በማስታወቂያ አማካኝነት ከድር ጣቢያዎ ገንዘብ እንዴት ማግኘት እንደሚችሉ, ደንበኞችዎ እርስዎን ለማግኘት እና በተቻለ መጠን ብዙ የተለመዱ ፍለጋዎችን እንደሚቀበሉ ለማስተናገድ እንዴት ገንዘብ ማግኘት እንደሚችሉ አስተምራችኋለሁ. ሶፍትዌሮችዎን እንዴት እንደሚሸጡ አስተምራችኋለሁ, ያስተዋውቁ, አገልግሎቶቻችሁን ለሚሹ ደንበኞች ይግባኝ, እና ቀድሞውንም በሚኖሩበት መንገድ በበይነመረብ ላይ ለራስዎ ስም ይስሩ, እና ቀደም ሲል በሚኖሩበት መንገድ ለራስዎ ስም ለራስዎ ስም ይስሩ, ርካሽ ናቸው, እና በጥሩ ሁኔታ ይሰራሉ. ለእርስዎ በሚሰጡት እና የሚፈልጓቸውን (ተጠቃሚዎች) የሚጠቀሙበት ነገርዎን የሚያቆሙበት ድር ጣቢያዎን ለማስቀመጥ, እና የእርስዎ ተጠቃሚዎች ወደ ድር ጣቢያዎ ለማምጣት እና ለመገጣጠም እንዴት እንደሚችሉ አስተምራለሁ. ይህ መጽሐፍ በጽሑፍ ወደ ኦዲዮ የሚገኙ ሚዲያዎችን ወደ ኦዲዮ በሚተገበሩበት ጊዜ እና ድህረ-ነጋዴዎችን ለመፍጠር, እርስዎ እና እርስዎ ብቻ የሚሆን አንድ መተግበሪያን በመሸጥ ላይ ያተኩራል, እና እርስዎም, ሶፍትዌሮችዎ እና ኩባንያዎ በተሻለ መንገድ በሚችሉት መንገድ ጥሩ በሆነ መንገድ ይሸጣሉ. እንዲሁም ከድግድ ምክሮች ውስጥ, እርስዎ የሚገኙትን ሁሉንም መሳሪያዎች, ከድግድዎ ጋር የሚገኙትን መሳሪያዎች እና ለጉዳዩዎ በጣም አስፈላጊ በሆነው የመሣሪያ ስርዓቶች ውስጥ የሚገኙትን መስመሮች ሁሉ እና የፎቶግራፍ ፍጥረታት, ሞዴሊንግ እና መርሃግብሮች, ሞዴሊንግ እና ፎቶግራፍ, ሞዴሊንግ እና መርሃግብሮች, ሞዴሊንግ እና የፎቶግራፍ ስራ, ሞዴሊንግ እና ፎቶግራፍ, እና አስፈላጊ በሆነው የፎቶግራፍ ጥራት, እና አስፈላጊ ነው. ይህ መጽሐፍ "ተግባራዊ" ተብሎ ይጠራልበጽሁፉ ውስጥ ለተዘረዘሩትን ተግባራዊ ዓላማዎች የሚያገለግሉ የሥራ እይታን, የፊት እውቅና እና የቪዲዮ ማሻሻያ, የምስል ማጎልበቻን, የምስል ማጎልበቻን የሚያስተካክለው, በተለይም ለድር ላይ ትኩረት የሚሰጥ ነው. የዚህ ጽሑፍ የመማሪያ አካል, የምስል ማጎልበቻ, የምስል መግለጫ ማግለጫ, እና ሌሎችንም የሚያተኩር ነው. እንደ ትክክለኛ, በኮምፒተር የተላለፈ ምስል, ወይም የኦፕቲካል ተላልፈ ፎቶ (ፎቶዎ) የመሳሰሉት ተግባራት ተግባራት ተግባራት ሊፈጠር ይችላል. ይህ በተለምዶ የተጠቃሚ ስም እና የይለፍ ቃል እንዲሰጥዎ የሚጠይቅዎት, ምናልባትም ለእያንዳንዱ አዲስ የመግቢያ ወይም ለአዲስ አይፒ አድራሻ የሚገነቡዎት, ግን እንደ ኢሜል አገልግሎት ወይም የጽሑፍ መልእክት አገልግሎት የሚካፈሉ ከሆነ ሶፍትዌሮችዎን ለሌላ ሰው ሶፍትዌሮች ወይም ለማንም ሰው (የሚጠቀሙበት ማንኛውም ጣቢያ) በጣም ቅርብ ሊሆን ይችላል. የማያቋርጥ ሶፍትዌር የሚገነባ ማንኛውም ሰው ይህ የሚያመለክተው አንድ የተወሰነ ስሜት አለው. ሶፍትዌሩ ለመድረስ የምንጠቀምባቸው መሳሪያዎች እና መለያዎች ሁል ጊዜ አይደለንም ምክንያቱም እኛ ለሶፍትዌሩ የታመሙ የማንኛውም ሰው እጅ ውስጥ ሊሆኑ ይችላሉ ስለሆነም ለሶፍትዌሩ ራሱ አደጋ ሊያስከትሉ ይችላሉ. ይህ የዚህ መጽሐፍ ትኩረት የሆነ ነገር ነው. አንድ የተጣራ ኮምፒተር በተባለበት, ተብሎ በሚጠራው እና ደህንነቱ በተጠበቀ የ Shel ል ምልክት የተደረገ ሲሆን የድር አገልጋዩ በአገልጋዩ ላይ የሚሮጡ የኪነጥበብ ደህንነት መሳሪያዎች እንዲሁም በድር አገልጋይ የተረጋገጠ ነው. የድር አገልጋዩ የተጠቃሚው ድር አሳሽ የሚገኝበት የተጠቃሚው መሣሪያ በጣም ኃይለኛ ክፍል ነው, ምክንያቱም ተጠቃሚው የተከራዩበት ቦታ ነው. ይህ የመሳሪያ ስብስብ ጽሑፍን ሊቀለበስ ይችላል, እና ምስሎችን, ኦዲዮ እና ቪዲዮ (እንደ አንድ የፊት ገጽታ (እንደ አንድ የክልል መታወቂያ) እና ሊጽፉ ይችላሉ, እና ከድር ጣቢያው ጋር በተያያዘ በድር አገልጋይ ሊነበብ እና ሊነበብ እና ሊታወቁ ይችላሉ. ደህንነቱ የተጠበቀ ሁሉንም መሳሪያዎች በመጠቀም, በዚህ መጽሐፍ ደህንነቱ የተጠበቀ ድር ጣቢያ ለመገንባት በእውቀት እራስዎን ያዘጋጃሉ, እና በአጠቃላይ ለእርስዎ የሚሰራ ደህንነቱ የተጠበቀ አውታረመረብ ስርዓት, ጨረታዎ እና የሚሰማዎት እና ይሰማዎታል
የት እንደሚጀመር: ከዚህ መጽሐፍ ጋር, ወይም በማንኛውም ክፍል, በተለይም ከላይ በተጠቀሱት መሳሪያዎች ወይም ከእነሱ ጋር በተያያዘ በዚህ መጽሐፍ ውስጥ ከደረሱበት ጊዜ እና በመጽሐፉ ውስጥ በዝርዝር በመግለጽ እና ተግባራዊ ምሳሌዎችን በመመዝገብ እገባለሁ. በጽሁፍ ኮድ ውስጥ ተሞክሮ ከሌለዎት ይህንን ሁሉ መጽሐፍ እንዲያነቡ በጣም እመክራለሁ, እናም ይህ መጽሐፍ ለእርስዎ ትክክል መሆኑን ለማረጋገጥ በተለይ የቀደሙ ክፍሎችን እንዲያነቡዎት እና ያደርጉዎታል. ይህ መጽሐፍ ለእናንተ ትክክል ካልሆነ እራሳቸውን ስለ ድር ልማት ለመማር ፍላጎት ላለው ጓደኛ ወይም ዘመድ, አልፎ ተርፎም እንዳሳለፍኩባቸው የትራንስፖርት ክፍተቶችን ለመሙላት ያስቡበት ወይም ሌሎች አስተማሪዎች ከፊቴ እንዲሞሉ ያስቡ. እርስዎ በሚፈልጉበት ቦታ ይጀምሩ, ጠቃሚ መተግበሪያን ለመገንባት ከፈለጉ, በጣም ጥሩው መተግበሪያዎች ከግዴታ ተጠቃሚ ጋር የተገነቡ እንደሆኑ ያስቡ, ደንበኛዎን ይወቁ. አሁን ያውቁኛል, ይህንን መጽሐፍ ታውቃላችሁ, ለመጀመር ዝግጁ ናችሁ. ለመጀመር, ኮምፒተርን ይያዙ (ከቦክስ ሱቅ, ከአማዞን, ከአማዞን, ወይም ከአሮጌው የዴስክቶፕ ሥራዎች ውስጥ በጣም ርካሽ ላፕቶፕ እንኳን ሳይቀር, እና ለእርስዎ በሚሰራ መንገድ ያዋቅሩት.
ይህንን መጽሐፍ እንዴት እንዳነበቡ ጽሑፉ በአስተማማኝ ሁኔታ የተጎበኘ, ጽሑፉ በትእዛዝ ጥያቄ ውስጥ ያለው, የሚሮጡበትን ኮድ ይጽፋሉ. የትእዛዝ ጥያቄ በጣም ጥሩ ቁልፍ ሰሌዳ ያተኮረ እና የስራ ፍሰትዎን ለማፋጠን እና ነገሮችን ለማድረስ ጥቂት ለማድረግ እምብዛም አይጠይቅም.
እንደ መጀመር፥ እንሂድ. በአካባቢያዊ ማሽን ላይ የግንባታ ኮድ እንጀምራለን እናም ከበይነመረቡ ጋር የተገናኘ ድር ጣቢያውን ሳይገነቡ እንጀምራለን. ይህ ከመጀመር የበለጠ ደህና ነው, ምንም አያስከፍልም, እና ለእርስዎ ቀላል ነው. በአሠራርዎ ስርዓት ላይ በመመርኮዝ ወደ ባሽ ሲስተውሉ ውስጥ በመገጣጠም በጣም ትንሽ የተለየ ይሆናል. ለማክ ኦፕሬስ ከእንጨት ባልሆኑ ማሽን ጋር ተኳሃኝነት ሲያገኙ በዚህ ነጥብ ላይ ምናባዊ ማሽን እንዲጭኑ እመክራለሁ. እንደ ምናባዊ ፓስክ ሳጥኖች እና ፓይሌዎች ያሉ የተለያዩ አገልግሎት ሰጭዎች እርስዎ ፈጣን, ዥረት የተዘበራረቀ ልምድን ለመፍጠር የሚመከርበት የአገሬው አካባቢን ለመጠቀም ቢመርጡ. እኔ የምመክረው ሊኑክስ ወይም መስኮቶችን የሚጠቀሙ ከሆነ ፕሮጀክት ለመፍጠር በጣም ቀላል መሆን አለበት. ተርሚናልዎን ይክፈቱ, የሚገጣጠሙትን ሲያዩ በመቀየሪያ ያስተካክሉ እና ደረጃ 2 ን መከተል ይጀምሩ. ዊንዶውስ የሚጠቀሙ ከሆነ እባክዎን ደረጃ 1 ይከተሉ.
ደረጃ 1 - ዊንዶውስ ተጠቃሚዎች ብቻ በዊንዶውስ ውስጥ, ክፍት ትዕዛዝ ፈጣን እንደ አስተዳዳሪ እና ዓይነት WSL -installall
ደረጃ 2 - እዚህ ቀጥ ይበሉ, ወይም ዊንዶውስ ካልጠቀሙበት ወደዚህ ይዝጉ ወይም ይለፉ በክፍት ተርሚናል ውስጥ (በ <OS ላይ በመመርኮዝ በ <OS ላይ በመመርኮዝ, በማክ ወይም በሊቡል ወይም ተመሳሳይ ስም ላይ በመመርኮዝ, ፕሮጀክት በመፍጠር ይጀምሩ. ይህንን የምናደርገው በማውጫ የሚፈጥር ከ MKDir ትዕዛዝ ጋር እናደርጋለን. ፕሮጀክትዎን ለማከማቸት ከፈለጉ (ፕሮጄክትዎን) ለማከማቸት ከፈለጉ, የሚመከር, ወደ ማውጫው ለመለወጥ የ CD ትዕዛዙን ይጠቀሙ እና እና እና
ሲዲ / ዱካ / ማውጫ / ማውጫ - ዱካው ከመድረሻ ማውጫዎ የሚመዝኑ አቃፊዎች (ፋይሎች) ነባሪ ዱካዎ (የተጠቃሚ ስምዎ የእርስዎ የተጠቃሚ ስም ነው). ወደ ነባሪ ማውጫ ለመቀየር ሲዲ ወይም ሲዲን ይተይቡ mkdir ምሳሌ - በምርጫው ስም "ምሳሌ" ምሳሌ "ይተኩ
አሁን ለፕሮጄክትዎ የሥራ ማውጫ አለዎት. ወደ ተለያይተሩ ወደ ተለየ ማሽን ለመቀየር ወይም የሚጽፉትን ኮድ ለማሰማራት በጣም አስፈላጊ ሆኖ እንዲገኝ ለማድረግ ለድር ዝግጁ ነው, በሚቀጥሉት ጥቂት ደረጃዎች ውስጥ ማውጫዎን ለማዳን ቃል እንገነባለን. ነገር ግን ስክሪፕት መገንባት ትንሽ ኮድ ይወስዳል, እና ኮድ በተቻለ መጠን ጠቃሚ ሆኖ እንዲቆይ ይፈልጋል. ስለዚህ በመጀመሪያ እስክሪፕቶችን የመገንባት ስክሪፕትን እንገንባ. እስክሪፕቱን በመፍጠር እና በሥራ ላይ ማዋል እንጀምር. እኛ ሱዶን, ቾዶዎን እንጠቀማለን እና ለዚህ እንጠቀማለን, እና ስክሪፕቱን "ፅጂክስ" ይደውሉ.
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
አሁን ስክሪፕቱን ፈጥረናል, ተሳስቷል, እና ለማርትዕ ዝግጁ ነን. ናኖ ጽሑፍን ጠቅ ሲያደርጉ የሚያርትዑት, ይህም ግራፊክ ተጠቃሚ በይነገጽ ከመጠቀም የበለጠ ቀላል ነው. ከናኖ ጋር ፋይልን ለማርትዕ, ናኖን እና ከዚያ ወደ ፋይል መንገዱን ይጠቀሙ. አንድ ስክሪፕት የሚያደርገው ስክሪፕት ለማድረግ ስክሪፕቱን በመጀመሪያ ደረጃ መስጠቱ ተገቢ ነው. የ "ስክሪፕት" የሚለውን ስም ከክርክሪት መለኪያው ጋር በመተካት, "ፅሁፉ" የሚለውን ስም በመተካት, $ 1. ይህ እኛን በመተየብ ወደ ስክሪፕት እንጠራጠራለን, በዚህ ነጥብ ላይ በስክሪፕትዎ ስም "የእጅ ጽሑፍ ጽሑፍ" በመተካት በየትኛው አዲስ ቃል መፍጠር እንችላለን. በናኖ ውስጥ ያለው ኮድ ሊመስል ይገባል
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
እና ናኖን ለመዝጋት የቁጥጥር ቁልፍን መያዝ እና ኤክስ ን ይጫኑ, ከዚያ ፋይሉን ለማዳን እና ተመጣጣኝን መምታት እንችላለን. እስክሪፕትን ለማርትዕ እነዚህን ሦስት ትእዛዛት ከመፃፍ ይልቅ, የሱዶ ፅንጂ ጽሑፍ ቅጂውን እንደገና ለማርትዕ እንለውጣለን. ይህ ይሰራል! እና ማንኛውም አዲስ ስክሪፕት በ she ል ውስጥ በመደወል በቀላሉ በቀላሉ ሊሄድ ይችላል. ስራችንን አሁን እንዳንገባ አዲሱን ስክሪፕታችንን ለማዳን እና ከዚያ በፕሮጀክታችን ማውጫ ውስጥ ወደ መጠባበቂያ ቅጂ ስክሪፕት (ስክሪፕቱን) ለማዳን እንጽፍለን.
sudo ascript backup
አሁን በናኖ
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
ከ mkdir ከፈጠሩ ፕሮጀክት ጋር የት / ዱካ / ማውጫው መንገድ ነው. በኋላ ላይ እኛ እንደ ኋላ እና ከዝርዝር ጋር ተመሳሳይ የሆኑ ዱካዎችን እንዴት እንደ መገልበጥ እንማራለን, ግን ለአሁን ቀለል ያለ ነገርን እንጠብቅ እና ጥቂት መስመሮችን እናድርግ. ይህንን ስክሪፕትዎን ለማካሄድ እና ኮድዎን ለመሰብሰብ እና ኮድዎን በመከታተል በ NANO ውስጥ ያለው ፋይል ከቁጥር ኤክስ, y እና መመለስ እና ከዚህ በታች ያለውን Shell ል ውስጥ ይተይቡ
backup
ይህንን መጽሐፍ በማንበብ እና በ She ል ውስጥ በሚከተሉበት ጊዜ እባክዎን የይለፍ ቃልዎን በትክክል ከተጠየቁ እባክዎን ትዕዛዙን እንደገና ለማስኬድ ከመፈለግዎ በፊት ሶስት ሙከራዎች እንዲኖርዎት ከማድረግዎ በፊት ሶስት ሙከራዎች ይኖሩዎታል. ወደ ላይ እና ወደታች ቀስቶችን ወደ REEROUN ትዕዛዞችን) መጠቀም እና እነሱን ማርትዕ ይችላሉ, ሁለት ጊዜ ማንኛውንም ነገር ማሄድ ከፈለጉ. ትዕዛዙን በትክክለኛው, የቀኝ ቦታን ከቀኝ, ግራ ቀሚሶች እና ቁልፍን እና ቁልፍን በመሰረዝ ትእዛዝ ከመምረጥዎ በፊት ቀላል እና ወደታች.
እንኳን ደስ አለዎት! በሥራ ስምሪትዎ ውስጥ ሁለት አስፈላጊ የ Shell ል ስክሪፕቶችን የሚደግፍ ግሩም የመጠባበቂያ ቅጂ ስክሪፕትን መፍጠር ችለዋል. ፕሮጀክቱ እየጨመረ ሲሄድ ኋለኞቹን እንያዝ ይሆናል, ግን ይህ ለአሁን ይሠራል. በደመናው ውስጥ ለመደገፍ እንሂድ (ለዚህ የመጠባበቂያ ቅጂዎች) እኛ ወደ አገልጋይዎ እንደምናውቅ ሁሉ እነሱ ተመሳሳይ ናቸው.) Git ለሶፍትዌርዎ የመቆጣጠሪያ ሶፍትዌሮች አሉ. ሶፍትዌርዎን ለማዳን አስፈላጊ ነው, በተለይም አንድ የአንዱ ኮድ አንድ መስመር አንድ መስመር በሚቋረጥበት ጊዜ ለሚሰበሩ የሊኑክስ ምሳሌዎች ወደ ደኅንጎ ማቋቋም ነው, እኛ በራስ-ሰር ለማዳመጥ እድል እንዳያገኙ ኮድዎ ሊደገፉ ካልቻሉ መተው.
በዚህ ነጥብ ላይ ኡቡን ubudu ምናባዊ ማሽን የማይጠቀሙ ከሆነ, በዚህ ነጥብ ላይ የ Ubuntu ምናባዊ ማሽን በመጠቀም, የሥራ ድር ጣቢያዎን ለመገንባት እና በኮምፒተርዎ ላይ ጥልቅ የመማር ሥራዎችን ለመገንባት አስፈላጊ ያደርገዋል. በቅርብ ጊዜ ውስጥ ኮዱን ወደ ድር አገልጋይ እንሄዳለን, ግን ይህንን ለማድረግ በርካታ የሊኑክስ ፓኬጆችን መጠቀም ከሚያገለግሉት ከድር አገልጋይ በስተጀርባ ቢያንስ ጥቂት የደህንነት ሽፋን እንዳለ ማረጋገጥ እንፈልጋለን. አሁንም Mac OS ን ለመጠቀም ከፈለጉ በመስመር ላይ አስፈላጊውን ፓኬጆች ለመፈለግ እና ለመጫን እንኳን ደህና መጡ, ግን ይህ መጽሐፍ ወይም ተከታታይ የሚሸፍኑ አማራጮች ሊሆኑ ይችላሉ.
ትዕዛዙን የሱዶ ፅሁፍ ምትኬን በማስኬድ ሥራችን ከጠባቡ ስክሪፕት ጋር ሥራችንን ለማከናወን ጥቂት ትዕዛዞችን እንጨምር.
# ...
እንደገና ለማዳን እንደገና ይቆጣጠሩ.
አሁን ለዚህ ፕሮጀክት አንድ የተወሰነ የጊዜ አወቃቀር ማድረግ አለብን. በቅርቡ የጌት ፕሮጀክት ይሆናል, ከ GIT ማከማቻዎች ባዘጋጃለን, ግን የማሰማራትን እስክሪፕቶች ሲጽፍ የዚህን ተንጠልጣይ እንሆናለን. ለመጀመር በትክክለኛው ማውጫ ውስጥ መሆናችንን እና የ GSAS ማከማቻችንን ማስጀመር እና የ SSH ቁልፎችን ያስገኛል.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Ssh-Keygen ከተለያየ በኋላ አዲሱ ቁልፍ በአቃፊው ውስጥ በተጠየቀው አቃፊ ውስጥ መቀመጥ አለበት. ይህ id_rsa. pub ይባላል. ይህንን ቁልፍ እናገኝ እና ይቅዱ. እሱን ለማየት,
cd ~
cat .ssh/id_rsa.pub
በመጨረሻው ትእዛዝ የተመለሰውን ጽሑፍ ይቅዱ እና በመለያዎ ላይ የ SSH ቁልፍን ከመጨመርዎ በፊት ከጂይት አቅራቢዎ ጋር (በተገቢው gitubub) መለያ ይፍጠሩ. አንዴ መለያ ካለዎት በኋላ የላይኛው ቀኝ ምናሌዎን ጠቅ ያድርጉ እና በቅንብሮች ውስጥ ጠቅ ያድርጉ, እና በምናሌው ውስጥ ተደራሽነትዎ ስር ከመድረሱ በፊት ቅንብሩን ጠቅ ያድርጉ. የ SSS ቁልፍን ይምረጡ እና በማዳን እና ለማጽደቅ እና ለዕርፊያ ከመግባትዎ በፊት አዲስ ማከማቻን ለመፍጠር ከግቡር ከመመለስዎ በፊት ርዕስ መስጠትን እና ርዕሱን በመስጠት የራስዎን ያክሉ. ይህ ለሌሎች የጂአይኤስ አቅራቢዎች ተመሳሳይ ነው, ሰነዶቻቸውን ማንበብ ያስፈልግዎታል. በአዲሱ የማጠራቀሚያ ውቅር ውቅር ውስጥ ማከማቻ ስምዎን ገላጭ ስም ይሰጡ እና ለማተም ከፈለጉ ይወስኑ, እና ለማካተት ምንም ፋይሎችን ማዋቀርዎን ያረጋግጡ. ማከማቻው አንዴ ከተፈጠረ በኋላ ክሎኑን በ SHS URL ጋር ይቅዱ እና ወደሚከተለው ትእዛዝ ይዝጉ.
git remote add git://… (your remote URL)
አሁን ይህን ታውቁታላችሁ ወደ ማከማቻዎ ወደ ማከማቻዎ መመለስ ይችላሉ. የመጠባበቂያ ቅጂ ስክሪፕትዎን አሁን ከጠባቂዎች ጋር ይሞክሩ
በጣም ጥሩ! አሁን በእውነቱ ኮድ ማግኘት እንችላለን. ቤንጎን እና ባሽ ላይ ጥሩ ተግቶል እንዳለን አሁን እንጫን. ዲጀንጎ ሶፍትዌራችንን በራስ-ሰር እንድንርቅ ያስችለናል, bash ይህንን ሊያደርገው ይችላል ግን ዲጀንጎ ቀለል ያለ ደህንነቱ የተጠበቀ ትግበራ ሊኖረው ይገባል (ሊሰናከል ይችላል እና የበለጠ በቀላሉ ያዋቅረው).
በኡቡንቱ ሶፍትዌርን ለመጫን, የሱዶቹን አሃድ- ትዕዛዝን እንጠቀማለን. በመጀመሪያ, አሁን ያለንን ሶፍትዌሮች ወቅታዊ እና አሻሽል. ይህ በሱዶ APT- ማዘመን ይችላል, ዝመና እና ሱዶ APTON ያግኙ. ቀጥሎም, የ Python እና ምናባዊያን ገዳችንን, የኮዱን ቤታችንን, የእኛን ትዕዛዝ: sudo APT- Gydo- python3 Pytho3- vyvo3
በኡቡቱቱ ምሳሌ ውስጥ ከሶፍትዌር ጭነቶች አንፃር ከ Django ጋር መሄድ ያለብዎት ይህ ነው. ለዊንዶውስ እና ሊኑክስ ቀጥተኛ መሆን አለበት, ግን የ Ubuntu አካባቢን ለማዋቀር ነፃ ወይም ከላይ የሚከፈልበት ምናባዊ አከባቢን በመጠቀም ምናባዊ ማሽን እና ሊኑክስን መጫን ይፈልጉ ይሆናል. Ubuntu በዚህ ረገድ ድር ጣቢያዎች የሚሮጡ ሶፍትዌሮች ስለሆነ እና ከላይ የተዘረዘሩትን ሁሉንም ሶፍትዌሮችን ለማስተናገድ ይረዳቸዋል.
ወደ ዲጃኖጎ እንቆጥር.
በማውጫዎ ውስጥ እንደገና, ከሲዲ ጋር
python -m venv venv # ኮድ የተቀመጠበትን ምናባዊ አካባቢን ይፈጥራል
source venv/bin/activate # ምናባዊ አካባቢን ያግብራል
django-admin startproject mysite . # ሚሚትስ ፕሮጀክት ያለውበት ቦታ አሁን አሁን አሁን እያወጣሁ ነው.
ዲጀንጎ እየጀመርን ነው, ምክንያቱም ዲጋንጎ የድር አገልጋዩን እያስተናግድ እና መሠረታዊ የአካባቢያዊ ድርጣቢያ እና የመሮጥ የሚያስፈልገንን ሁሉ እየሰራ ነው. አሁን Django እንዳለን, አሁን እኛ እንዴት እንደምንፈልግ ቅንብሮቹን በትንሹ ያርትዑ. በመጀመሪያ አዲስ መተግበሪያ ይፍጠር
python manage.py startapp feed
የመጀመሪያውን መተግበሪያ ምግብ ተብሎ የሚጠራው ያስተውላሉ. መተግበሪያው የሚወዱትን ሁሉ ተብለው መጠራት አለበት, እናም አዳዲስ መተግበሪያዎችን እንፈጥራለን, ግን መተግበሪያው በኮዱ ውስጥ በተጠቀሰው እያንዳንዱ መተግበሪያ ውስጥ ወጥነት ሊኖረው ይገባል. አዲስ መተግበሪያ ለማከል ሁል ጊዜ ቅንብሮችን ሁልጊዜ እናርትራትዎታለን, በሌላ ማውጫ ውስጥ ሁልጊዜ እናርትራት. ናኖን በመጠቀም,
nano app/settings.py
በቅንብሮች ውስጥ ተጭኗል_አድግ ፈልግ እና ወደ 3 መስመሮች ይለያሉ. በባዶ ማእከል መስመር ላይ አራት ቦታዎችን በመጠቀም 'ምግብን' ወይም የመተግበሪያዎን ስም ያክሉ. ይህ የቅንብሮች ክፍል. Toph ሊመስል ይገባል
INSTALLED_APPS = [
'feed',
]
ከመረሳችን በፊት ዲጀንጎ እየሰራ መሆኑን እንሞክረው. የትእዛዝ Python አደራጅ.
አሁን, አንዳንድ የ Python ኮድ ለመፃፍ እንቆፈር. ዲጀንጎ ሶስት ዋና ዋና ዋና ክፍሎች አሉት, ሁሉም ሙሉ በሙሉ በኮድ ይሮጣሉ. አካላት ሞዴሉ, ማየት እና አብነት ተጠርተዋል, እና እያንዳንዱ ድረ-ገፃችን ለተጠቃሚው ከመላክዎ በፊት በቅደም ተከተል ከፍ ያለ እና ዝቅተኛ ደረጃ ነው.
ሞዴሉ ለመምጣቱ, ለመደርደር እና ለአስተያየት በመረጃ ቋቱ ውስጥ መረጃን የሚያከማች ኮድ ነው.
አመለካከቱ ሞዴሉ እንዴት እንደተሰጠ, የሚገለፀ, እና እንደተሻሻለው ይወስናል, ሁሉም አመለካከት ሞዴልን በቀጥታ ይጠቀማል.
አብነቱ አንዳንድ ተጨማሪ ተጨማሪ ደወሎች እና ጩኸት ያለው የ HTML ኮድ ነው. አብነት በ Python ሕግ እና እንደ ሞዴሎች እና መረጃዎች (የ Usuall ሕብረቁምፊዎች እና መረጃዎች) ከእይታ ጋር በተሞላበት እይታ የሚሰራበት እይታ ነው.
ዲጀንጎ ሌሎች አካላት አሉት, ግን ምንም እንኳን ውስን አይደለም,
ከተወያየንበት ጊዜ መተግበሪያውን የሚያዋቅሩ ቅንብሮች.
ተጠቃሚው ተጠቃሚው የተከተለው የእርምጃዎች የተወሰኑ የድር ጣቢያውን ክፍሎች መዳረሻን የሚያገኝባቸው ፓራሎች ናቸው.
ወደ አገልጋዩ የተላከው መረጃ እና ለተጠቃሚው እንዲሠራ የሚገልፅ ቅር forms ችን የሚገልጽ እና ለተጠቃሚው እንዲሠራ ተደርጓል. እነዚህ በአገልጋዩ በኩል የማሰራጨት መረጃ መሠረት የኮምፒተር መደብሮች, በተለይም የጽሑፍ ሕብረቁምፊዎች, ቁጥሮች, ቁጥሮች እና እውነተኛ / ሐሰተኛ ቡሊዎች (ብዙውን ጊዜ አመልካች ቦርሳዎች) ናቸው.
የ HTML ኮድ እና አብነት ቋንቋ እና ኤችቲኤምኤስ የሆኑት አብነቶች, በአገልጋዩ አቅራቢያ በሚሆን የርቀት መሣሪያው ላይ የርዕሰፉ መረጃዎች በሩቅ መሣሪያ ላይ እና ለተለያዩ ዓላማዎች ድርጣቢያ በሚሆንበት ጊዜ ድር ጣቢያ ሊሰጥ ይችላል.
ብዙውን ጊዜ ጃቫስክሪፕት የሆኑት የማይንቀሳቀሱ ፋይሎች አገልጋዩ የሚያገለግለው እና ከአስተዋሉ ጋር የተቆራኘበት ቤተ መጻሕፍት ነው.
አገልጋዩ የሚያገለግለው ወይም በውጭ የሚስተናገደ ወይም ወደ ሌላ አገልጋይ ከተለጠፈ እና ለአገልጋዩ ለመፃፍ በአገልጋዩ የተጻፉ ወይም ለአገልጋዩ የተጻፉ.
መካከለኛ የመነባበቂያው, ይህም ለእያንዳንዱ አመለካከት በተመሳሳይ ጊዜ የሚሮጡ እና "የተካተቱት" በአመለካከት "የተካተቱ" ናቸው.
የአውደ-ጽሑፍ አሰባሰብዎች የእያንዳንዱን እይታ አውድ እና ተጨማሪ ዐውደትን ለማከል የሚያገለግሉ.
ምርመራዎች, ተጠቃሚው ወይም ጥያቄው የእይታ ከመሰጠቱ በፊት የተወሰኑ መስፈርቶችን እንደሚልፉ ይፈትሹ.
ለግንኙነት ማካካሻዎች እንዴት እንደሚጠቀሙበት እና ምላሽ እንደሚሰጡ ተጠቃሚዎች,
ሞዴሎችን ለመመዝገብ ጥቅም ላይ የሚውለው በመመዝገቢያው የዲኪንጎ አስተዳዳሪ ገጽ ውስጥ ዝርዝር ውስጥ እንዲተገበሩ የሚጠቀሙበት አስተዳዳሪ ነው.
የዲጄንጎ ኮድ የተባሉ ተግባሮችን የሚገልጽ የዲጄንጎስ ስራዎች ክፍሎችን ወዲያውኑ የሚቀጥለውን ሥራ ወይም የኮድ መስመር ከቀጠለ በኋላ ወዲያውኑ መሮጥ ይችላል.
ዲጀንጎ ብዙ ሌሎች አካላት ሊኖሩት ይችላል, ይህም በዝርዝር እንወያያለን. ዲጃካንጎን, ዥረት የተዘበራረቁ ዥረት ዲስኮችን, የተዘበራረቁ የተዛመዱ ሰርኮችን እና ዲጃናንጎዎችን ለማራመድ ብዙ ሌሎች በርካታ ሶፍትዌሮች አሉ, በተለይም ኮዱ የሚገደልበት. ተግባሮችን ይመልከቱ ቁልፍ ናቸው ምክንያቱም ብዙውን ጊዜ ለአንድ የተወሰነ የዩ አር ኤል ንድፍ ወይም ለአገልጋዩ ክፍል የተወሰኑ የሰዎች ስብስብ ያውጃሉ.
በመጀመሪያ, የእይታ ተግባሮችን እንዝርዝ. ተግባሮችን ይመልከቱ የሚጀምሩት በአመለካከት ጥቅም ላይ ከሚውለው አስመጪ ኮድ ጋር በሚገናኝ ኮድ ይጀምራል, እና መደበኛ የተግባር ፍቺዎችን ወይም ትምህርቶችን በመጠቀም ይገለጻል. በጣም ቀላሉ ዕይታዎች በተግባራዊ ፍቺ ይገለጻል, እና ኤችቲቲፒንስፖንን ከአንድ መሰረታዊ አብነት ይመልሳሉ. እስቲ ጽሑፉን "ጤና ይስጥልኝ" ለመመለስ መሰረታዊ እይታን በመግለጽ እንጀምር. እንደ ኢፍትሃዊነት,, ወዘተ, ለሥራዎ ማመልከት ለሚፈልጉት እያንዳንዱ አስገሪነት ለሚፈልጉት ትርጓሜዎች ሁሉ 4 ከተገለጹት መግለጫ በኋላ ኮዱን ሲጨምሩ ያስታውሱ. እያንዳንዳችን ማለት በቅርቡ ምን ማለት እንደሆነ እንገባለን.
ከጣቢያችን ማውጫ ውስጥ ኑኖ / ዕይኖቹን. Poice ፋይልን ያርትዑ እና የፋይሉ መጨረሻዎቹን እስከ ፋይሉ መጨረሻ ድረስ ያክሉ.
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
የ Djangoo የ ht hotpsponse የመክፈቻ እና የመዝጋት የተወገበ የጽሑፍ ሕብረቁምፊ ምላሽ ይሰጣል. እንደ ጥያቄ ወይም እንደ ሕብረ ሕዋሳት መረጃን በተመለከተ መረጃ በሚያልፉበት ጊዜ ሁሉ ወላጅነት መጠቀም ያስፈልግዎታል (, መክፈት እና መዘጋት).
የእኛን አመለካከት ገና ማየት ያለብን ይህ ሁሉ አይደለም. በእርግጥ, አመለካከቱ በትክክል የተነገረው አገልጋይ እኛ አሁንም የእርሷን መንገድ ማስተካከል ያለበትን መንገድ አሁንም አንነግርም. በመተግበሪያ / ዩአርኤል.ፒ. ውስጥ መሰረታዊ ዱካዎችን በመግለጽ እንጀምር, እናም በኋላ ወደ ጎዳና ቡድኖች እንገባለን.
በመተግበሪያ / ዩ.አር.ኤል..ፒ..ፒ.
from feed import views as feed_views
አሁን የእይታ ስርዓተ-ጥለትን እናጋል. ንድፍ ይመልከቱ በአገልጋዩ ውስጥ የሚተገበሩበትን አገልጋዩ (ዩ.አር.ኤል.) ለአገልጋዩ የሚተላለፍበት መንገድ, እና ለተጠቀሰው የአመለካከት አካል, በተለይም ለየት ያለ አመለካከት ሊለውጠው ነው. ነገሮችን በዚህ መንገድ ማድረጉ እና ተለዋዋጭ መሆን ትርጉም ያለው ነው, ምክንያቱም ዋጋዎ ዋጋ ያለው እና በቀላሉ ለመስራት ቀላል እና ቀላል እንዲሆን የሚፈልግ ሁል ጊዜ የሚለዋወጥ አካባቢ ስለሚሆን ነው. የእርስዎ አመለካከት እንደሚመስል እነሆ, ይህንን ወደ urlpatterners ማከል ይችላሉ = [የመተግበሪያ / ዩ.አር.ኤል.ፒ.ፒ. የእይታ ስርዓቱ ከላይ ከተገለጹት ከሦስቱ አካላት ጋር ይገለጻል, እና መንገድ ተብሎ የሚጠራ ተግባር ነው. የእርስዎ ዩአርኤል ቅጦች ዝርዝር ናቸው, ስለሆነም እያንዳንዱ እያንዳንዱን ሰው በኮማ ውስጥ ማቆምዎን ያረጋግጡ. እያንዳንዱ ንጥል በቅንብሮች ውስጥ እንደ መተግበሪያው ልክ እንደ አንድ ጊዜ ከአራት ቦታዎች ጋር እንደገና አዲስ መስመር ላይ መሄድ አለበት. በድር አገልጋዩ ስርጭቱ ላይ የሚደርሰውን እይታ ለመፍጠር ባዶ ሕብረቁምፊ ተግባርን ከ <ባዶ ሕብረቁምፊ ተግባር> እንገልፃለን. የእርስዎ ዩአርኤሎች አሁን እንደዚህ ይመስልዎታል-
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
ይህ ሙሉ በሙሉ የማይንቀሳቀስ ከዲጃንጎ ጋር ድር ጣቢያ ለመፍጠር የሚያስችል መሠረት ነው. እንደ ምስሎች, ቪዲዮ, ድምጽ እና ሌሎችም የመሳሰሉትን የመጫኛ መረጃ መጀመር የምንችልበት የበለጠ ተለዋዋጭ ድር ጣቢያ ለመስራት እኛ ቀጣይን የምንመረምበት ሞዴሎችን መጠቀም አለብን. ለአሁን, የእኛን ኮድ እንጭምር እና አገልጋዩን እናድርግ. ስህተቶች ስህተቶችን ለመፈተሽ, ሩጡ:
python manage.py check
ምንም የስህተት መልዕክቶች ካሉ, እርስዎ ያደረጉትን ለውጦች በጥንቃቄ መመርመር አለብዎት, ይህም እንደ ገለልተኛ ወይም ስለ መጎተት, ማንኛውም ተጨማሪ ገጸ-ባህሪ, ማንኛውም የተደመሰሰው ሕብረቁምፊ, ወይም ሌላ ማንኛውም ነገር. በስህተት መልዕክቱ በኩል ማንበብ (አንድ ካለዎት) በመስመር ላይ ከፈጠራቸው ወይም አርትዕ ለማድረግ ወደ አንድ ፋይል ዱካ ማየት መቻል አለብዎት, ስለዚህ ያንን ፋይል እና መስመር ይመልከቱ እና እዚያ ያለውን ማንኛውንም ነገር ማስተካከል ይችሉ እንደሆነ ይመልከቱ. ጉዳዩን ካስተካከሉ ከዚህ በላይ ያለውን ትእዛዝ እንደገና ያሂዱ. ሶፍትዌርዎ ለመሮጥ ዝግጁ እና እየሰራ እያለ ውጤቱን "የስርዓት ፍተሻ ምንም ችግር የለውም" ብለዋል. አሁን ለመሄድ ዝግጁ ነዎት. አገልጋዩን ያሂዱ:
python manage.py runserver 0.0.0.0:8000
አሁን የድር አሳሽ ይክፈቱ እና ወደ http: // አካባቢያዊ: - 8000. ጽሑፉ በተመለሰ ጊዜ ውስጥ በ <hotpsponse> ጥቅሶች ውስጥ ሲመለሱ ማየት አለብዎት. ይህ መሠረታዊ ምሳሌ ነው, ግን ይህን ሩቅ ካደረግህ, ሉዋክስ, ባሽ እና የ Djathon እና Djangon እና Django እና Django ሥራ ምን እንደሆነ መሰረታዊ ነገሮችን ይገነዘባሉ. ወደ አንዳንድ የመረጃ ቋት ሞዴሊንግ ውስጥ በጥልቀት እንቆጥረው እና መረጃን በማከማቸት የፒዮታን ክፍል ኃይልን ያስሱ. ከዚያ ጣቢያችን የጃቫስክሪፕት እና ማሽን ትምህርትን በመጠቀም ከጊዜ ወደ ኤችቲኤምኤል እና CSS ላይ መያዙን እንጀምራለን.
ትምህርቶች በመተግበሪያዎ ሞዴሎች ውስጥ ተከማችተዋል. ናኖን በመጠቀም, መተግበሪያ / ሞዴሎችን ማርትዕ እና አዲስ ክፍል ያክሉ. አንድ ክፍል ከክፍል ትርጓሜ ጋር ይገለጻል እናም በዚህ ሁኔታ ሞዴሎች ሞዴሎች የክፍሉ ስም ከክፍሉ ትርጓሜ በኋላ, እና ከክፍሉ ትርጓሜ በኋላ ከክፍል ትርጓሜው በኋላ: - (ኮሎን) ውሳኔዎች ከዚህ በታች የተያዙ ባህሪዎች ከዚህ በታች ይወክላሉ. ትምህርታችን ሰርስሮአችን ሰርስሮ ለመያዝ የምንጠቀምበት መታወቂያ ይፈልጋል, እናም የተወሰነ መረጃ ለማከማቸት የመጽሐፈ መስክ ይፈልጋል. በኋላ ላይ ሞዴሉ ውስጥ ምን ማድረግ እንዳለብዎ የሚረዱበት ጊዜ, ፋይሎች, ቡሌዎች, እውነታዎች, ቡሌዎች, እውነታዎች, አምሳያውን ለመገንዘብ ሊያገለግል ይችላል), ወደ አገልጋዩ ውስጥ ለመግባት የሚረዳበት ምሳሌ, እና ሌሎችንም. ከዚህ በታች ያለውን ኮድ እንርግረው
from django.db import models # ክፍሎቻችንን ለመግለጽ የሚያገለግል ነው, እና ባህሪያትን የሚያገለግል ማስመጣት
class Post(models.Model): # የክፍላችን ራሱ ትርጉም
id = models.AutoField(primary_key=True) # የእኛ አርአያ መታወቂያ አምሳያችንን እንድንጠይቅ, ልዩ እንድንሆን የሚያስችል በራስ-ሰር የመነጨ ቁልፍ, እና አንዴ ከተፈጠረ በኋላ ከአምሳያችን ጋር መስተጋብር በሚያስፈልግበት ጊዜ ጠቃሚ ነው.
text = models.TextField(default='') # የክፍል ሱቆችን, በዚህ ሁኔታ, በዚህ ጉዳይ, በተወሰነ ጽሑፍ, በባዶ ሕብረቁምፊ ውስጥ.
ከመጠናቀቁ በፊት እንደነበረው ፋይልን ይዝጉ እና ያስቀምጡ.
እኛ ይህንን ክፍል እንደ ተለውጦ እንደወጣ ይህንን ክፍል በምንዘራበት ጊዜ ብዙ ሌሎች መስኮች እና አማራጮች አሉ, ግን የተወሰነ ጽሑፍ ለመለጠፍ መተግበሪያ የመፍጠር መሰረታዊ አስፈላጊ ነገሮች ናቸው. ሆኖም, ይህ ሞዴል ብቻውን አይሰራም. ከዚህ በፊት እንደተገለፀው ይህንን ሞዴል ሥራ እንድንሠራ የብጁ እይታ እና ብጁ ዩ አር ኤል ንድፍ እንፈልጋለን, እናም አብነትም አንድ ቅፅ እንፈልጋለን. በመጀመሪያ ቅጹን እንመርምር.
ቅጹን ለመግለጽ, የመተግበሪያ / ቅጾችን ማርትዕ እና ከናኖ ጋር ያርትዑ እና የሚከተሉትን መስመሮች ያክሉ. ከአምሳያው ጋር የሚመሳሰል የመማሪያ ክፍል እና ሞዴሉን የሚያብራራ የክፍል አማካሪ የሚባል የመማሪያ ትርጉም, የመራቢያ አማካሪዎች, የመድኃኒት ትርጓሜዎች, እና ከሜዳው ጋር የመሰብሰብ ትርጉም (የመማሪያ) አማካሪ (አማካሪ) የመማሪያ ትርጉም ነው. ቅጹ በጥያቄ, ሞዴል ወይም በሌላ መንገድ መረጃን በመረጃ ላይ የተመሠረተ የመነሻ ተግባር ሊኖረው ይችላል.
የሞዴል ቅጾች ሞዴልን መፍጠር ወይም ሞዴልን ማረም ስለሚችሉ ለሁለቱም እንጠቀማቸዋል. አንዱን በቅደም ተከተል ከታች.
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',)
ይህ ቅጽ እና ሞዴል የሚመስለው መሰረታዊ ነገሮች ናቸው. ይህ የሞዴል ቅጽ ልኡክ ጽሁፉን ለማቀነባበር ወይም ለማረም ሊያገለግል ይችላል. የሚለውን ጽሑፍ ይለውጡ. ይህንን ቅጽ በሚቀጥለው እይታ ለማዋሃድ እንመለከታለን. በመጀመሪያ, ስደተኛዎችን እናድርግ እና የውሂብ ጎታውን እናድርግ ስለዚህ ኮዱ በሚሄድበት ጊዜ ከአምሳያው ጋር መስተጋብር እንዲችል. ይህንን ለማድረግ የሚከተሉትን ትዕዛዞች ያሂዱ
python manage.py makemigrations
python manage.py migrate
ይህ አንድ ደቂቃ ለመፈፀም አንድ ደቂቃ ይወስዳል, ግን አንዴ ከሆነ በአመለካከቶች, በአማካይ ሊወርድ ወይም በሶፍትዌሩ ውስጥ በየትኛውም ቦታ ውስጥ ያለውን ሞዴሉን እንዲደርሱዎት ያስችልዎታል. አርአያችንን ማየት የምንችልበት እይታ በመናገር እንቀጥል. አርትዕ የመመገቢያ / ዕይታዎች. አርትዕ እና ቀደም ሲል እንደተጠቀሰው የሚከተለውን ኮድ ያክሉ. ከ # ምልክቱ በኋላ ማንኛውንም ነገር ማከል አያስፈልግዎትም, ያ ኮድ ስለ ኮዱ መረጃን ለማመልከት የሚያገለግሉ አስተያየቶች ነው. የእኛን አርአያችንን በአመለካከት በማስመጣት እና በማሳየት እንደ ዝርዝር አብነት ውስጥ ልንሰጥ የምንችልበትን አውድ ውስጥ በማስመሰል እንጀምራለን. ቀጥሎም በአምሳያው ላይ የተመሠረተ አዲስ ነገር ለመፍጠር እና ከአገልጋዩ ላይ በመለጠፍ አዲስ ነገር ለመፍጠር ቅጹን እና ሞዴሉን አንድ አብነት እንጨምራለን. ይህ የተወሳሰበ ይመስላል, ስለዚህ እኛ በደረጃ እንውሰድ. አመለካከቱን ከመጨረስዎ በፊት ሞዴሉን የሚያስተላልፍ እና በ she ል ውስጥ አዲስ ልኡክ ጽሁፉን በመፍጠር እሱን ማየት እንደምንችል አንድ ንድፍ ይፍጠሩ. ያ አመለካከት ሊመለከት የሚገባው እዚህ አለ-
posts = Post.objects.all() # በመረጃ ቋቱ ውስጥ ሁሉም ልጥፎች
ወደ ታች እስከ ታች ድረስ ይህ ሁሉ ቀላል ይመስላል. አቤቱታውን ባለፈው ምሳሌ ውስጥ ካለው የኤች ቲ ቲ ፒ ምላሽ ይልቅ በተግባር የተመለሰው እሴት, አሁን አውድ ውስጥ ያለውን ዐውደ-ጽሑፍ የሚቀበለው እና አሁን በድርጊቱ ውስጥ የተገለፀውን አብነት ይመልሳል. አብነቱ የጄንጃ2 ተብሎ የሚጠራው የጄቲ je2 የጄቲን 2 ነው, ይህም የ Python መረጃን ወደ ኤችቲኤምኤል ጋር የሚገናኝ ነው.
አብነቶችን መፍጠር ለመጀመር ሁለት የምግብ አዘውትሮዎችን ያዘጋጁ.
mkdir feed/templates
mkdir feed/templates/feed
በመቀጠልም, ከዚህ በላይ ማውጫ ውስጥ አንድ ንድፍን, ይመገባሉ / አብነቶች / ምግብ / ኮዱን ያክሉ እና ኮዱን ያክሉ. ለዚህ ምሳሌ አብነት እንመልከት.
ይህ በጣም ቀላል አብነት ነው. የ HTML መለያዎች, የሰነድ መለያዎች, የሰነድ ዓይነት መለያ, የአበባ ማስነሻ መለያ, በማያ ገጹ ላይ አነስተኛ መስመር የሚያከብር, እና እያንዳንዱን ልኡክ ጽሁፍ ውስጥ እንደ አንድ ጊዜ ለእያንዳንዱ ልጥፎች በአብዛቴ ዝርዝር ውስጥ እንደሚተገበር ያብራራል. ልጥፎችን ለማቅረብ የሚወስደው ይህ ነው, ግን በመረጃ ቋቱ ውስጥ ምንም የለም. እንከን የለሽ በ she ል. Shell ል በ Shelly Cond.ypy ጋር መሮጥ እንችላለን
python manage.py shell
አሁን የእኛን የድህረ ሞዴልን እናስገባን
from feed.models import Post
ቀጥሎም አንድ ቀላል ልጥፍ ከህብረ ገመድ ጋር እንፈጥራለን እና ከዛፉ መውጣት እንፈጥራለን. ሕብረቁምፊው ትክክለኛ ጽሑፍ ከሆነ ምንም ነገር ሊሆን ይችላል.
Post.objects.create(text='hello world')
exit()
በመጨረሻም, ለምግብዎ የዩ አር ኤል ንድፍ ማከል አለብን. የመመገቢያ መተግበሪያችን ብዙ ዩአርኤሎችን ስለሚጠቀም እና ትንሽ የፋይል መጠኑን ማቆየት እንፈልጋለን.
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
እኛ ለመደወል የወሰንነው የዩ.አር.ኤል.ኤል.. APP / App.yp.y ን ያርትዑ እና የሚከተለው የዩ አር ኤል ስርዓተ-ጥለቶችን ያክሉ
from django.urls import include # ከላይ
# ... የቀደመ ኮድ እዚህ
አሁን አገልጋዩን ከ Pythondian's አደባባይ ጋር ስናከናውን, ሞዴሉ, እንመለከተዋለን እንዲሁም በመረጃ ቋቱ ውስጥ ካሉ ዕቃዎች ጋር እንዲሁም የ USL ንድፍ እና የዩ አር ኤል ንድፍ ስለሌለን እንመለከተዋለን. ቀጥሎም የፈጠርንን መልክ ተግባራዊ እናድርግ የራሳችንን ልጥፎች መፍጠር እንጀምራለን. ነገር ግን በጣም ብዙ ኮድ ከመፃፍዎ በፊት ቀደም ሲል የጻፍን ስክሪፕትን በመጠቀም ምትኬ እናድርግ. ይህንን ስክሪፕት ውስጥ አሂድ, ጥቂት ጊዜዎችን ይጠብቁ, እና ሁሉም ኮዱ እስከ የ GAT ማከማቻዎች ድረስ ምትኬ ይደግፋል.
backup
ቅጹን መተግበር በአንፃራዊነት ቀላል ነው. ቅጹን እናቀርባለን, የልጥፍ ጥያቄ ተቆጣጣሪን ወደ እይታ አንፃር እንጨምር እና ወደ ተመሳሳይ እይታ ከመመለስዎ በፊት በመረጃ ቋቱ ውስጥ ያስገቡ. ቀደም ሲል የመጣነው የአቅጣጫ ተግባርን እና የእይታ ንድፍ ዩአርኤል ዩአርኤል ለማግኘት ተከላካይ ተብሎ ተጠርቷል. ይህንን በገመድ 'ምግብ' እንጠይቃለን: - ምግብን 'ምግብን' የሚካተቱትን ንድፍ ስምምነቱ ምግብ ስለሆነ እና አመለካከቱም ምግብ ተብሎም ይጠራል.
posts = Post.objects.all() # በመረጃ ቋቱ ውስጥ ሁሉም ልጥፎች
if request.method == 'POST': # የፖስታ ጥያቄውን ይያዙ
form = PostForm(request.POST) # የቅጹን ምሳሌ ይፍጠሩ እና ውሂቡን ወደ እሱ ያስቀምጡ
if form.is_valid(): # ቅጹን ያረጋግጡ
form.save() # አዲሱን ነገር ያስቀምጡ
return redirect(reverse('feed:feed')) # ወደ ተመሳሳይ ዩ.አር.ኤል. / Rovelie / ጥያቄ / ጥያቄ / ጥያቄ)
'form': PostForm(), # ቅጹን በጥቅሱ ውስጥ ማለፍዎን ያረጋግጡ ስለዚህ እኛ ልንከፍለው እንችላለን.
አሁን, ለአዲሱ ቅጽ ያለበትን አብነት ማዘመን አለብን. ይህንን በመጠቀም ይህንን ማድረግ እንችላለን
ይህንን እንሰብረው. አዲስ ቅጽ ክፍል, የምስጋና ምልክት, ቅጹ ራሱ እና የአስተዳዳሪ ቁልፍ አለ. በጣም ቀላል, ግን እሱን ስንመለከት እኛ የተሻለ እንዲመስል እንፈልጋለን. ይሰራል, አዳዲስ ልጥፎችን ከቅጹ ጋር መለጠፍ እንችላለን እናም አሁን በመረጃ ቋቱ ውስጥ ተቀምጠዋል. እዚህ የሚሄዱ ጥቂት ነገሮች አሉ. ሰነዱ የ HTML ሰነድ መሆኑን ለማወጅ የ HTML መለያዎች እንጠቀማለን, ቅጹን ለማስተካከል ለቅቀኝነት እና ለሌላ, ለሌላው እና ለሌላ, ለሌላ, ለሌላው እና ለሌላ, ለሌላው እና ለሌላ, ለሌላው እና ለሌላ, ለሌላ, ለሌላው እና ለሌላ, ለሌላ, ለሌላው እና ለሌላ, ለሌላ, ለሌላ, ለሌላ እና ለሌላ, ለሌላ እና ለሌላው ለማቅረብ እንጠቀማለን ({% ...%}) እንጠቀማለን. እንዲሁም የማገጃ መለያዎችን በመጠቀም ጽሑፉን እና የአብነት መለያውን በመጠቀም ጽሑፉን ለማቀናጀት oop አለን. የአብባበል ክፍሎች ከእነሱ ጋር እንዴት እንደተሰየመን መግለፅ ስለቻልን, እና አብያተ-አብነቶች ተለዋዋጮችን ወደ ኮዴል ውስጥ እንዳስቀመጡበት መንገድ ናቸው.
አሁን የእኛን መተግበሪያ የተሻለ እንድናደርግ ማድረግ አለብን, ምክንያቱም አሁን በእውነቱ መሠረታዊ ይመስላል. ይህንን በ CSS, በመስመር ላይ, በመግቢያው ውስጥ, ወይም በሰነዱ ውስጥ ከእያንዳንዱ ነገር ጋር በተያያዘ በትምህርቶች በመጠቀም ይህንን ማድረግ እንችላለን. CSS በእውነቱ ጥሩ ነው ምክንያቱም በገጹ ላይ ምን እንደሚመስል, እና በጣም ጥሩ እንዲመስል ማድረግ ይችላል. ይህንን ማድረግ የሚችሉት ጥቂት ቤተ-መጻሕፍት አሉ, ግን የእኔ የግል እሄዳለሁ.
ቡትስታፕ ከድር ጣቢያቸው ማውረድ ይችላል,getbotstrap.com/. የመጫኛ ሰነዶዎችን ለማንበብ ቁልፉን ይጫኑ እና ከሲዲን ክፍል በኩል ኮዱን ያካተተውን ኮድ ይቅዱ. ራስዎን በ HTML ሰነድ አናት ላይ, ሀራ በሚባል መለያ ውስጥ ባለው የ HTML ሰነድ አናት ላይ ያስፈልግዎታል. ደግሞም, እኛ እንሂድ እነዚህን አገናኞች በእያንዳንዱ አብነት ውስጥ ማስገባት አያስፈልገንም.
አዲስ ማውጫ ከ MKDIR አብነቶች ጋር አብነቶች እንዲለዋወጡ ያዘጋጁ እና ከዚያ አብነቶችን / ቤቲ .HMLL ያርትዑ.
እንደዚህ ይመስላል
ለወደፊቱ ጣቢያችን የበለጠ ተግባራዊ ለማድረግ ጃቫስክሪፕትን, የ C CSS ን እና ጃቫስክሪፕትን, የ. ሴትን እና የ ..እ.እ.እ.እ.ፒ.ኤስ. ፋይሎችን መኮረጅዎን ያረጋግጡ.
አሁን ወደ bash shell Shell ል እንመለስ እና ፈጣን ትእዛዝ አሂድ. ያስታውሱ, ያስታውሱ, ምናባዊ አካባቢን መድረስ ከፈለግክ ምንጭ Invv / ቢን / አግብር ይህ ዲጋንጎ እነሱን እንዲዳርግ በሚያደርግ መንገድ በአከባቢው የ Python ፓኬጆችን እንዲጭኑ ይፈቅድልዎታል. ቅጾችን በዲጄናጎ bootraptrap ክፍሎች የመነጨ ቅፅዎን ለመስጠት, የቀዘቀዘ ቅጾችን የሚባል የፒዮቶን ጥቅል እንጠቀማለን. ይህንን ከሚከተለው ትእዛዝ ጋር ማውረድ እንችላለን
pip install django-crispy-forms
አንዴ ከተጫነ በኋላ ወደ ቅንብሮች ያክሉት
# ... የቀደመ ኮድ እዚህ
አሁን, በመመገቢያው አብነት ተመልሰን የተወሰኑ ነገሮችን ማስወገድ እንችላለን. የሰነዱን መጀመሪያ እና መጨረሻ እናስወግዳለን እና ከመሠረታዊው አብነት እና የማገጃ ትርጓሜውን በመጠቀም ከሠረላችን አብነት ርስት ይተካው. ደግሞም, ከጭነት ጋር በመጫን እና በአብነት ማጣሪያ ማጣሪያ ውስጥ እንጨምራለን. በመጨረሻ, በቅጹ ላይ እንደ አንድ ቁልፍ እንዲመስል በቅጹ ላይ ባለው ቅጽ ላይ የጀልባው ክፍልን እንጨምር. ይህ እንደዚህ ሊመስል ይገባል
ቆንጆ! ያ ቀድሞውኑ ትንሽ ኮድ ነው. ቀጥሎም እኛ መመርመር እና ሁሉም ነገር ጥሩ ይመስላል, እናም ሁሉም ነገር በትክክል እየሠራ መሆኑን ማረጋገጥ አለብን. አገልጋዩን በቀደሙት መመሪያዎች እንደ ቀዳሚው መመሪያ ያሂዱ እና ጣቢያው ጥሩ ይመስላል እና ስራው ትክክል መሆኑን ያረጋግጡ. ታላቅ ሥራ! እኛ ተመሳሳይ የዩ አር ኤሎች, ቅጾችን, ዕይታዎች, ዕይታዎች, ዕይታዎች እና አብነቶች በመጠቀም የተጠቃሚውን የመግቢያ ተግባር የምንጨምርበት ቀጣዩ ደረጃ ለመቀጠል ዝግጁ ነዎት. የመሠረታዊው አብነት አስፈላጊ ነው, እና እንደ አስፈላጊነቱ ለውጦችን ማቀነባበሪያ እናደርጋለን, እናም መተግበሪያዎን ደህንነቱ የተጠበቀ እና የራስዎ ሂሳብ ተደራሽ ለማድረግ የሚረዱ ተጨማሪ መረጃዎችን እናስቀምጥ.
ይህንን ለማድረግ ወደ ዲጃዛጎ የተገነባውን የተጠቃሚ ሞዴል መጠቀም አለብን. የተጠቃሚው ሞዴል ልክ እንደ ልጥናታችን, ተጠቃሚው ወደ ድር ጣቢያው ለመግባት ሊተላለፍ የሚችል የመረጃ ቋት ሞዴል ነው. ለወደፊቱ ጣቢያውን ወደ ኢንተርኔት ከማሰማራታችን በፊት ይህንን ሞዴል በእሱ ባሉት ሌሎች ሞዴሎች ላይ እናስፋፋለን, እናም ለማስገር ለሚረዱት ለመግባት ተጨማሪ የደህንነት እርምጃዎችን እንገነባለን. Django የሚሠራው በመግቢያ ቅጾች ውስጥ የተገነቡትን በመጠቀም እንጀምራለን. በመጀመሪያ, ለመምሳዊው የመግቢያ ገጽ አብነቶችን እና እይታዎችን ለማስተካከል የምንጠቀም አዲስ መተግበሪያ ይፍጠር. እንዲሁም የፒንኮድ, የፊት እውቅና ማወቂያን ጨምሮ, የመግቢያ ተግዳሮቶችን, የመግቢያ ተፈታታኝ ሁኔታዎችን ለመወከል, የመግቢያ ተፈታታኝ ሁኔታዎችን ለመወከል, የመግቢያ ተፈታታኝ ሁኔታዎችን ለመወከል, የመግቢያ ተፈታታኝ ሁኔታዎችን የሚወክሉ, የመግቢያ ተፈታታኝ ሁኔታዎችን እንፈጥራለን.
አንድ መተግበሪያ ስለ መጀመር ቀደም ሲል ተነጋገርን. በምርጫችን ውስጥ, በእውነተኛው አካባቢ ውስጥ, በእነዚህ ነጋሪ እሴቶች ያስተዳድሩ
python manage.py startapp users
አሁን ለአዲሱ መተግበሪያ ማውጫ ሊኖረን ይገባል. ከተጠቃሚው መግቢያ ጋር የሚዛመዱ በዚያ ማውጫ ውስጥ እይታ በመፍጠር እንጀምር. ዲጀንጎ ለተጠቃሚው ሎጂስቶች እይታ ውስጥ የተገነባ ሲሆን እነዚህ ለእኛ ጥሩ እይታ ስለሚያስፈልገው, ይህም ትርጓሜ ነው.
በዚህ እይታ ውስጥ ለድህረ ክፍያ ጥያቄን በመፈተሽ, የተጠቃሚውን መለያ በመግዛት የተጠቃሚውን መለያ ማረጋገጥ, የተጠቃሚውን መለያ ለማረጋገጥ እና ከመመገቢያ መተግበሪያዎ በፊት እነሱን ከማዞርዎ በፊት በተጠቃሚው ውስጥ ይግቡ.
በተጠቃሚዎች / ዕይታዎች ውስጥ የሚከተሉትን ኮድ ያክሉ
username = request.POST['username'] # የተጠቃሚ ስም እና የይለፍ ቃል ከፖስታ ጥያቄው ያግኙ
password = request.POST['password'] # ተጠቃሚውን ያረጋግጡ
ይህ ለመሠረታዊ የመግቢያ እይታ የሚፈልጉት ይህ ነው. አሁን, የመሠረታዊውን አብነት በመዘርጋት ለእውነታው ቅፅ ይፍጠር. በተጠቃሚዎች አቃፊ ውስጥ ላሉት አብነቶች አዲስ ማውጫ በመፍጠር እንጀምራለን.
mkdir users/templates
mkdir users/templates/users
አሁን ተጠቃሚዎችን / አብነቶች / ተጠቃሚዎችን / ተጠቃሚዎችን / የመግቢያ / ተጠቃሚዎችን ማርትዕ መቻል አለብን. እኛ በቦታው ሳለን ተጠቃሚው እንዲሁ እንዲመዘገብ የሚያስችል አንድ ንድፍ እንፈጥራለን.
nano users/templates/users/login.html
አሁን, በአብቤል ውስጥ,
ይህ የመግቢያ አብነት መሠረታዊ ነገሮች ናቸው. እሱ በእውነቱ ልክ እንደሌለው ሌላ ንድፍ ውስጥ ነው, ግን በሚተላለፍበት ጊዜ ትንሽ የተለየ ይመስላል. ይህንን ኮድ ለመገንባት ይህንን ኮድ ይመዝግቡ ይመዝገቡ የተመረቀውን ሌላ በጣም ተመሳሳይ የሆነ ተመሳሳይነት መመዘኛን ለመገንባት እና የምንገነባውን አዲስ ቅጽ የምንጠቀምበት ነው. አብራችሁ አብረን እንሁን. ተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / ተጠቃሚዎች / ይመዘግባሩ / ይመዘግባሩ እና የሚከተለውን ኮድ ያክሉ
አሁን, የተጠቃሚ ምዝገባችን እና ለተጠቃሚው ሎጂባችንን ከአቅራቢ ጋር ከማሻሻያችን በፊት ወደ እይታዎች እንገንባለን. ለወደፊቱ እንደ ስምምነቶች እና CAPCቻ ያሉ ተጨማሪ ዝርዝሮችን እና የደህንነት ባህሪያትን ለማካተት ይህንን ቅፅ እናስባለን. ቅጾቹን ከናኖ ተጠቃሚዎች / ቅጾች ጋር ያርትዑ, የሚከተሉትን ኮዶች ያክሉ.
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']
ስለዚህ በቀላሉ በትክክል በትክክል የሚሠራ እዚህ አንድ ዓይነት አለን. የተጠቃሚ ስም, ኢሜል እና በይለፍ ቃል እንዲሁም እንዲሁም በይለፍ ቃል መስክ አማካኝነት የተጠቃሚ ምዝገባ ቅጽ ነው. ይህ ቅጽ መደበኛ ቅጾችን እንዳያንፀባርቅ ልብ በል, እሱ የሚሠራው የሞዴል ቅፅ ነው ማለት ነው. አንድ መስክ አንድ ዓይነት ብቻ ነው የተገለፀው እና የክፍሉ ሜታ ሞዴሉን ለቅሪው ከተጻፈው መረጃዎች ጋር ይዛመዳል. አብዛኛዎቹ ይህ ቀደም ሲል በተገነባው ተጠቃሚዎች ውስጥ የተገነባው በአሁን ጊዜ ውስጥ ይገኛል, ስለሆነም ያንን እንደ ክፍሉ መሠረት (በቅንፍ ውስጥ አል passed ል).
ቀጥሎም, አንድ ተጠቃሚ እና አንድ አብነት አለን የሚለውን ተጠቃሚ ለመመዝገብ ያለውን አመለካከት እንመረምራለን. ይህ በአዲሱ የልብስ እይታ ውስጥ እንደነበረው ሁሉ ይህ ሞዴል ነው. ተጠቃሚዎችን / እይታዎችን / እይታዎችን ያርትዑ እና የሚከተለውን ኮድ ያክሉ
# ... አስመጣ
ተጠቃሚው የተመዘገበ ተጠቃሚ ነው, ግን የበለጠ መረጃ ሊኖረን ይገባል. ተጠቃሚው በተመረቀበት ጊዜ ውስጥ እንደየእለት ጊዜ, ስለ ባህላዊ, ሰንሰለት, ወዘተ, ለተጠቃሚ ሞዴል እና የባህሪ ልጥፎች ለእያንዳንዱ ተጠቃሚ ለይቶ ማወቅ እንፈልጋለን. ይህንን ለማድረግ ሁለቱን መተግበሪያዎች እናዘምነዋለን. እንጀምር የመመገቢያውን ሞዴል በማረም እንጀምር. አሁን እንደዚህ ሊመስል ይገባል
from django.db import models # ... አስመጣ
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name='posts') # በዚህ መስመር ውስጥ ያክሉ
ወደ ፋይል ለተጨመረው ሁለተኛው መስመር ትኩረት ይስጡ. ይህ ለእያንዳንዱ ልኡክ ጽሁፍ እያንዳንዱ የውጭ ቁልፍ ነው, ስለሆነም እያንዳንዱን ልኡክ ጽሁፍ ውስጥ በተጠቃሚው መሠረት ላይ ባሉ ተጠቃሚዎች ላይ ማዳን እናረጋግጣለን እንዲሁም ለተጠቃሚው ሳያገለግሉ መደረግ የለብንም. ይህንን የውጭ ቁልፉ ከክፍል ክፍል ጋር እንያንገልራለን, ልጥፎች አስፈላጊ እንደሆነ ማስወገድ እንደምንችል ለመከላከል, ባዶ እና ባዶ ነጋሪ እሴቶች መኖራቸውን ለማረጋገጥ, እና ለተጠቀሰው ልዩ ስም, ተጠቃሚው የተዛመደውን ነገር ለማጣራት ነው. የፖስታው ደራሲ ከፖስታ ጋር በተለየ መልኩ ይህ ተዛማጅ ስም ልጥፉን እራሱን እንዲለጠፍ ተጠቃሚ ይሰጠናል. አሁን እኛ አሁን በተንቀሳቃሽ ተጠቃሚው የተሠራው ተጠቃሚ ማግኘት እንችላለን.
አሁን, ዝግቦቻችን የበለጠ ለመቋቋም እናድርግ. እኛ ወደ ጣቢያው ለመግባት የምንፈቅድላቸውን ጊዜያት ብዛት በመገደብ ለማስመሰል ጣቢያችንን ለማስገር አቅማችን አስገርሞ ማድረግ እንችላለን, ይህ በጣም ቀላል ነው. እንዲሁም የእኛን መተግበሪያ ማጎልበት እንደቀጠለ ስለ እያንዳንዱ ተጠቃሚ የተወሰነ መረጃ ማከማቸት እንጀምር. ተጠቃሚዎችን / ሞዴሎችን.ፒ.ፒ.
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='')
ይህ ሞዴል ከድህረ ገጹዋ ጋር ተመሳሳይ ነው. በቀጣዩ ሰዓት ማሳዎች ላይ ነባሪዎች እንድናደርግ የሚያስችለን ተጨማሪ አስመጪ ሰራዊቶን አለን, እናም እንደ ፖስታዊ ገዥ እና መጽሔት አለን. እነዚህን ሁሉ ምንጊዜም መጠቀምን ጣቢያውን እንድንረዳ እና አጠቃቀምን እንድንረዳ ይረዳናል, እናም በድር ጣቢያው ላይ ስለ እያንዳንዱ ተጠቃሚ ወይም ደራሲ መረጃን እና ደራሲ መረጃን እናረጋግጣለን. የአቶቶኒቶኒልድ አውጪያው ብቸኛው አሳቢነት መሆን አለበት, እሱ በትክክል ከድንናኖች ጋር ተመሳሳይ ነው ነገር ግን በአንድ ቀጣይ ሞዴል አንድ ብቻ ነው. በዚህ መንገድ ተጠቃሚው ብዙ ልጥፎች ሊኖራቸው ቢችሉም ተጠቃሚው አንድ መገለጫ አለው.
አሁን, የመግቢያችንን በመለያው ውስጥ እንሻገር እና ዕይታዎች ለመገለጫው መረጃ እንመዘግዳለን. መጀመሪያ, ተጠቃሚዎችን / ዕይታዎች.ፒ.ፒ.
# ... አስመጣ
Profile.objects.create(user=user) # ለተጠቃሚው መገለጫ ለመፍጠር ይህንን መስመር ማከልዎን ያረጋግጡ
ይህ በቀላሉ ለተጠቃሚው መገለጫውን ይፈጥራል, ማንኛውንም መረጃ ሳይሞላ. አሁን የተጠቃሚው መለያ በጣም ብዙ ጊዜ ሊገባ እንደማይችል እና ቢያንስ ቢያንስ የይለፍ ቃሎች ብዙ ጊዜ ሊፈቱ አይችሉም, ስለሆነም የመግቢያ እይታውን እናዘምነዋል.
# ... አስመጣ
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) # ስለዚህ ለጥቂት ሰከንዶች እንደገና መግባት አይችሉም
ይህ የደህንነት መሠረታዊ መሠረታዊ ነው. ጣቢያው ለሌላ ሰው የተጋለጡ ወይም የሚቻሉትን የይለፍ ቃል ጥምረት ሁሉ ለመሞከር ወይም በተመሳሳይ ጊዜ ከእነሱ ውስጥ እንኳን ሳይቀር ለአንድ ሰው የተጋለጡ አለመሆኑን ያረጋግጡ. ይህ PASTEDED ን ለሚያውቁ ተራ ተጠቃሚው አያበሳጭም እናም በጥቂት መሳሪያዎች ውስጥ የሚገቡትን በመደበኛ መሳሪያዎች ውስጥ አይበሳጭም, ግን ብዙ አስጋሪ ሮቦቶችን ከመተግበሪያው ውጭ ያቆያል. በተለዋዋጭ, ካኖ_.ካፖሊንቲን የተገለጸውን መግለጫ ካገኘነው ተመሳሳይ የተጠቃሚ ስም በመጠቀም በእያንዳንዱ ያልተሳካ የመግቢያ በመለያ ማዘመን እንደምንጨመር ልብ ይበሉ. በዚህ መንገድ, ተንኮልታዊ ተጠቃሚው በፍጥነት በሚገኝበት ቦታ ይለፍ ቃል መገመት አይችልም. በቀን ሰዓት ውስጥ የሰከንዶች ብዛት. ከ 15 ለመጀመር እመክራለሁ.
ያስታውሱ ስራችንን ለማዳን የመጠባበቂያ ስክሪፕትን ገንብተናል, ስለሆነም እኛ አሁን የተቀመጠውን ሁሉ እንዳለን ለማረጋገጥ እኛ ወደፊት እንሂድ እና እንቀጥላለን. ትዕዛዙን አሂድ-
sudo backup
አንዴ እንደገና, ይህ ሥራዎን እስካሁን ድረስ ይቆያል. ሥራዎን ለማዳን በተደጋጋሚ የመጠባበቂያ ቅጂዎችን እንዲሮጡ እመክራለሁ, እናም የመጠባበቂያ ሥራን በራስ-ሰር ለማሄድ ይፈልጉ ይሆናል. ክሮን የተባለ ዩኒክስ መገልገያ በመጠቀም ይህንን ማድረግ ይችላሉ. ይህንን መገልገያ ለማንቃት የሚከተሉትን ትዕዛዛት ያሂዱ እና የይለፍ ቃልዎን ያስገቡ
sudo crontab -e
ቀደም ሲል ለናኖ ምርጫ ከሌለዎት, የቀን ቁልፎችን በመጠቀም የጽሑፍ አርታ edity ት, እና የቀስት ቁልፎችን በመጠቀም ወደ ፋይሉ ታች ወደ ታችኛው ክፍል ይሸብሉ. የሚከተለው መስመር ያክሉ
0 * * * * sudo backup
ክሮን ትዕዛዙን መቼ እንደሚሮጡ የሚያወክሩ ከሆነ አንድ * ወይም አንድ ቁጥር የሚወክልበትን የቃላት ደቂቃ, ሰዓት, የወር ቀን, የወር ቀን, የወር, የወር ቀን, የወር ቀን ይጠቀማል. ለተቀሩት አማራጮች ለ ደቂቃ እና * ውስጥ 0 ን በመጠቀም, በደቂቃው መጀመሪያ ላይ በእያንዳንዱ ሰዓት የመጀመሪያ ደቂቃ ላይ ትእዛዝ መስጠታችን እንችላለን. ይህ ኮዱን በራስ-ሰር እንድንመለስ ያስችልናል. ከሱዶ ጋር ሲገደል ሁሉም የ Crose ሥራዎች ሁሉ እንደ, ስለሆነም በየሰዓቱ የይለፍ ቃል ውስጥ መፃፍ አያስፈልገንም.
የይለፍ ቃል ሳይጠቀሙ ኮዱን ለማግኘት ቀላል ለማድረግ, የመጠባበቂያ ቅጂ መመሪያችን የይለፍ ቃል እናሰናከል. ይህንን ትእዛዝ በመፈፀም እና የይለፍ ቃል ለማስገባት ይህንን እናደርጋለን-
sudo visudo
አሁን, ወደ ፋይል ታችኛው ክፍል እንሽልል እና ሌላ መስመር ያክሉ
ALL ALL=NOPASSWD: /bin/backup
ይህ የይለፍ ቃል የሌለበት የትእዛዝ "ምትኬ" እንድንሰራ ያስችልናል. ለዚህው ቅርጸት "ሁሉንም መስመር" ቅድመ-ቅጥያ "ከሁሉም ሁሉም = NOPAPADDD /" ከትእዛዙ ጋር, ለምሳሌ / ቢን / ቢን / ቢን / ቢን / ቢን / ቢን / ቢን / ቢን / ቢን / "
አሁን, በኢሜል እንጀምር. ድር ጣቢያዎች የበለጠ ደህንነታቸው የተጠበቀ ኢሜል በጣም አስፈላጊ ነው, ምክንያቱም ድር ጣቢያዎች የበለጠ ደህንነታቸው የተጠበቀ ስለሆነ, ተጠቃሚዎች እውነተኛ ሰዎች እና የገቢያ ምርቶችን ወይም አገልግሎቶችን እንኳን ለደንበኞች የማረጋገጥ መንገድ ነው. በይነመረብን የሚደጋገሙ ብዙ ሰዎች ኢሜልዎን በየቀኑ የሚመለከቱት እና ሁሉንም ዓይነት የግብይት ኢሜል ስለአባባዮች እና አገልግሎቶች ኢሜልዎን በሚያስደንቅ ሁኔታ ይቀበሉ, እናም ለእርስዎ ጥሩ የሚሠራዎት ጥሩ አማራጮች አሉ.
በመጀመሪያ, ከጎራዎ ኢሜል ለመላክ እና አነስተኛ ኮድ እንዲፈልጉ የሚያስችልዎ የኢሜል አገልግሎት መክፈል ይችላሉ. እንደ ጉግል የስራ ቦታ, ላክልቢል, የመልእክት ቦውጅ እና ሌሎችም ያሉ ብዙ አገልግሎቶች አሉ.
ያለበለዚያ በራስዎ በአገልጋይዎ ውስጥ የራስዎን የኢሜል አገልግሎት ከመገንባትዎ ውጭ ነዎት. ምንም እንኳን የበለጠ ኮድ ቢያስፈልግም እና ልዩ አስተናጋጅ ቢያስፈልገው ይህንን አማራጭ እመክራለሁ. በደመናው ውስጥ አገልጋይ ከመጀመራችን በፊት እና በውስጣችን ውስጥ የራሳችንን የመልእክት አገልጋዩ ከመጀመራችን በፊት የመልእክት አገልጋይዎን መጀመር አይችሉም.
በመጀመሪያ, ቅንብሮችን ያርትዑ. ከሚከተለው ትእዛዝ ጋር
nano app/settings.py
መተግበሪያው ከጅምሩ ሲጀምሩ የመተግበሪያው ስም የት ነው.
የሚከተሉትን መስመሮች ያክሉ
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)
መተግበሪያዎን ለማሰማራት ዝግጁ በሚሆኑበት ጊዜ እነዚህን መለወጥ ያረጋግጡ, ይህንን በኋላ እንጎበኛለን. የኢሜል_አድግ ማቆያ ቅንጅት ለመላክ የሚፈልጉት ኢሜል መሆን አለበት, እና የይለፍ ቃል (ኢሜል_አስፈላጊ_አስተዋይ) ለአገልጋዩ ለሚያመሩት የይለፍ ቃል መዘጋጀት አለባቸው. ከዚህ በላይ በቅንብሮች ውስጥ ከዚህ መስመር በላይ ከሚጠቀሙት ኮዱ ውስጥ ለማስቀመጥ የይለፍ ቃሉን ከጨረር ጋር እጭናለሁ.
import os
import json
with open('/etc/config.json') as config_file:
config = json.load(config_file)
ከዛ, እንደ jessc/config.json በተካሄደው መሠረት jetc/config.json ን በመጠቀም የጄሰን ፋይል አዘጋጅቻለሁ.
ፋይሉን ለማረም:
sudo nano /etc/config.json
የሚከተሉትን መስመሮች ያክሉ
{
"EMAIL_HOST_PASSWORD": "<some password here>"
}
እኛ የውቅያውን ፋይል ማረም እና በመተግበሪያው ውስጥ የምንጠቀማቸውን ሁሉንም የይለፍ ቃሎች እና ቁልፎችን እና ቁልፎችን እና ቁልፎችን እናከብራለን. ለአሁን, Python ን በመጠቀም ኢሜል እንዴት እንደሚልክ በፍጥነት እንመረምራለን. በመጀመሪያ, ወደ ተጠቃሚዎቻችን መላክ የምንችልበት አብነት ይፍጠር, እና በተጠቃሚዎች አብነቶች ማውጫ ውስጥ ማስቀመጥ እንችላለን. ይህ አብነት በ HTML ውስጥ ይፃፋል.
nano users/templates/users/verification_email.html
ይህ ኢሜይል በትክክል ቀላል ነው. የተጠቃሚውን ኢሜል ለማረጋገጥ ለተጠቃሚው, የመሠረቱን ዩ አር ኤል አውድ እና የምስጋና የምስክር ወረቀት ይጠይቃል. አብነት እንዲሰጥዎ የተወሰነ የፒዮቶን ኮድ ከመፃፍዎ በፊት የመሠረቱን ዩ.አር.ኤል. በቅንጅቶች መግለፅዎን ያረጋግጡ. ወደፊት ይሂዱ እና ከመጀመሪያው አጠገብ በሚቀጥሉት መስመሮችን ወደ መተግበሪያ / ቅንብሮች ይሂዱ.
SITE_NAME = 'Django App'
PROTOCOL = 'https'
DOMAIN = 'example.com'
BASE_URL = PROTOCOL + '://' + DOMAIN
በመጨረሻ, ጣቢያዎ ለኢንተርኔት ዝግጁ ሲሆን እርስዎም ያንን ለማሰማራት ሲሉ የቦታው የሄኖን ስም የሚገዙት የጎራ ስምዎን ለመግለጽ ይፈልጋሉ. ጣቢያዎን ለመድረስ በ NAVBAR ውስጥ የሚተይቡት ስም ይህ ነው. ለአሁን, ጎራውን ባዶ ቦታ መውጣት ወይም የቤት ውስጥ ክፍያ መጠቀሙ ይችላሉ. እንዲሁም የጣቢያውን_ ስም (ስያሜዎ) ቦታዎን ሊሰጡዎት ለሚፈልጉት ስም መለወጥ ይፈልጋሉ.
ኢሜል ከመላክዎ በፊት የተስፋፋ ማነቃቂያ ማስነሳት የሌለበት የመለያ አግብር ማነቃቂያ እንዲኖረን ለማድረግ የተረጋገጠ የጄኔሬተር ይፍጠር. የሚከተሉትን የሚመስሉ የመለያ ማግበር ማነቃቃትን በመገንባት እና በማስመጣት ይህንን ማድረግ እንችላለን. ፋይሉን ያርትዑ
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()
ይህ መሠረታዊ ምልክት ጄኔሬተር ማስመሰያ ማስመሰያ ማመስገን የምንችልበትን ማመስገን እንችላለን እናም ተጠቃሚው ኢሜሎቻቸውን ለማረጋገጥ እና አካውንታቸውን ለማግበር ሊጠቀም ይችላል.
ቀጥሎ, ኢሜል እንዴት እንደሚልክ እንይ. ናኖን በመጠቀም ተጠቃሚዎችን / ኢሜልዎን ያርትዑ.
nano users/email.py
የማረጋገጫ ኤችቲኤምኤል ኢሜል መላክ እንደዚህ ይመስላል-
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)
ይህ በትክክል ቀላል ነው. አገልግሎቱን ለመላክ እና እኛ ኢሜሉን ለመላክ, ኢሜሉን በማስተካከል እና በቅንብሮቻችን ላይ ጠቅ እንዲያገኙ ኢሜሉን ያስመጣል, ከዚያ በኋላ ኢሜሉን በአብኙ ስም ኢሜልዎን እንለብሳለን እና ተግባርን በመጠቀም ወደ ተጠቃሚው ይላኩ. መልዕክቱን ለመላክ ተግባሩን እንዳላገለጹ ያስተውላሉ, ላክ_ ላክ_አሜትል_እርስዎ ከተጠቀሱት ኮድ / ኢሜል.
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()
ይህ ትንሽ የበለጠ የተወሳሰበ ነው, እናም ሁሉንም ኮድ ለመሮጥ ዝግጁ አይደለንም. ማስታወቂያ እኛ ያለማቋረጥ እንገልጻለን, አገናኙ ተጠቃሚው ከ EMAILES ምዝገባ ለመውጣት ሊጠቀም ይችላል. ይህ አስፈላጊ ነው ምክንያቱም ተጠቃሚዎች እነሱን ማየት ካልፈለጉ በስተቀር ከ EMALILES ውጭ መርጦ መውጣት መቻል አለባቸው. እኛ መልዕክቶቻችንን ለማግኘት የጽሑፍ አማራጭ እንጨምራለን, ይህም የኤችቲኤምኤል መለያዎች ነው. በመጨረሻም, የተላኩ ከሆነ እና ካልተላኩ እናረጋግጣለን, እና ካልተላባው ኢሜልዎ ትክክለኛ አለመሆኑ በተጠቃሚው መገለጫ ውስጥ ምልክት አድርገናል.
ይህንን ሁሉ ሥራ እናድርግ እንድንሆን ወደ ተጠቃሚ ሞዴሎች እንመለስ. ተጠቃሚው ከደንበኝነት ምዝገባ ለመውጣት አገናኝ ለመፍጠር አንድ ተግባር ማነፃፀር እና የተጠቃሚው ኢሜል ትክክለኛ አለመሆኑን ለማመልከት የቦሊያን መስክ ያብራሩ.
በመጀመሪያ, የሚከተሉትን አስመጪዎች ለተጠቃሚዎች / ሞዴሎች አናት ላይ ያክሉ
nano users/models.py
# ...
ቀጥሎም, ምልክት ለማድረግ እና ኢሜል ለማስኬድ የተጠቀመውን የምስክር ወረቀቱን ለማካሄድ እና ለተጠቃሚው አገልግሎት በተሳካ ሁኔታ እንዳይደርቅ ለማድረግ ሜካውን ለማዳን እንክለው. በተጠቃሚዎች / ሞዴሎች ውስጥ እንደገና, ወደ ሞዴሉ መጨረሻ (ኢታዲድ ኮድን) መጨረሻ ላይ የሚከተሉትን ኮድ ያክሉ
# ...
TimestampSigner().unsign(key, max_age=60 * 60 * 24 * 30) # ለ 30 ቀናት ይሠራል
ይህ ከተወሰነ ጊዜ በኋላ የሚያበቃበት የምስክር ወረቀት ለመፍጠር የሚያስችል አስቂኝ የመመስረት መሰረታዊ የስፕሪፕቶግራፊ መሣሪያ ነው, እናም ትክክለኛ መሆኑን ለማረጋገጥ ሌላ ተግባርን እንጠቀማለን. እኛ ኢሜልዎን ለማረጋገጥ አንድ ጊዜ, እና አንድ ጊዜ ከደንበኝነት ምዝገባ ለመውጣት አገናኝ አንድ ጊዜ እንጠቀማለን.
እነዚህ ነገሮች እንዳለን አሁን ማድረግ የሚያስፈልገን የመጨረሻው ሥራ በእይታዎች ውስጥ ነው. በተጠቃሚዎች / ዕይታዎች ውስጥ - የኢሜል አድራሻችንን ለማረጋገጥ እና ለደንበኝነት ምዝገባ ለማውጣት ዕይታዎች እንጨምር.
nano users/views.py
በመጀመሪያ የሚከተሉትን ማስመጣት ያክሉ. ከዚህ በኋላ ብዙ እቃዎችን እንደገና ማስመጣት የለብንም ስለዚህ በኋላ ላይ ተጨማሪ እቃዎችን እንደገና ማስመጣት የለብንም.
from .email import send_verification_email # የማረጋገጫ ኢሜል መላክ ተግባሩን ማስመጣት ያረጋግጡ
እርስዎ ቀድሞውኑ ከእነዚህ አስመጪዎች ውስጥ ሊኖርዎት ይችላል, ግን እነሱን በመድገም አይጎዳውም. የማረጋገጫ ኢሜል መላክ ተግባሩን, እንዲሁም የመለያ_አሳቤን (USEASE_ASED_OSKES) ከተጠቃሚዎች መካከል, ከሌሎች የማስመጪዎች መካከል.
አሁን, በፋይሉ ታችኛው ክፍል, የሚከተሉትን ኮድ ያክሉ
# ከደንበኝነት ይመዝግቡአቸው
# ያለበለዚያ ወደ መግቢያ ገጽ ያዙሩ
# ላክልሻልሜል (ጥያቄ, ተጠቃሚ)
ይህ ብዙ ኮድ ነው. እንሰብረው. የመጀመሪያው ተግባር, ንጹህ እና ቀላል, ተጠቃሚው ተጠቃሚው ከደረጃ ዝርዝር ውስጥ ከመልእክቱ ይመዝግባል. ሁለተኛው ተግባር ኢሜሎቻቸውን ያቆማል, እናም አስተያየት ሰጪ የተሠራውን ተግባር, ላክልሻልሜል እንዳከላል ያስተውላሉ. የአስተማማኝ ሁኔታ ኢሜል ለመላክ የኢሜል አብነት እና የተግባር ፍቺን ለመጠቀም እንኳን በደህና መጡ, ገና አላየሁም. የማግበር ኢሜሎች ጊዜው ሲያበቃ የመጨረሻውን ተግባር አስፈላጊ ነው. ስለዚህ, ለተወሰነ ጊዜ አግብር ኢሜል እንደገና ማካሄድ አለብን. ለዚህ መሠረታዊ ቅጽ መጠቀም እንችላለን, እና የማረጋገጫ ኢሜሉን ለመላክ ተግባሩን ይደውሉ. ይህንን ከማድረጋችን በፊት በመጀመሪያ ደረጃ ወደ የመመዝገቢያ እይታ ውስጥ የተግባር ጥሪ በማከል በመጀመሪያ ደረጃ እንደተላከ እናረጋግጣለን. በዚህ መስመር ላይ በመመዝገቢያ እይታው ውስጥ ከመቀየርዎ በፊት, በተጠቃሚዎች / ዕይታዎች ውስጥ ይግቡ.
nano users/views.py
# ... (ከኋለኛው) ላይ ምዝገባ (ጥያቄ):
# ... (በፊት) አቅጣጫ (
በዚያ የኮድ ጠቋሚው ውስጥ የመጀመሪያዎቹን እና የመጨረሻዎቹን መስመሮች ማከል አያስፈልግዎትም, የመመዝገቢያው እይታ የማረጋገጫ ኢሜል ወደ ተጠቃሚው እንዲልክ ያድርጉ. እንደዚህ ይመስላል
# ... አስመጣ
send_verification_email(user) # ይህንን መስመር ማከልዎን ያረጋግጡ!
አሁን, ማግበር ኢሜል ለመምራት አንድ ቅጽ ማከል አለብን. በተጠቃሚዎች / ቅጾች. Doy ውስጥ የሚከተሉትን ቅጽ ያክሉ
# ... (አስመጣዎች)
እንዲሁም ከዚህ ጋር የሚዛመዱ አንድ መበታተን እንፈልጋለን. እስቲ ይህንን አብነት ውስጥ እንጨምር. ፋይሉን ያርትዑ
nano users/templates/users/resend_activation.html
ቀጥሎም የሚከተሉትን ኮድ ወደ ፋይል ያክሉ.
Dwu, ያ ብዙ ነው! አሁን, ኮዱን ወደ አገልጋያችን ስናረጋግጥ, የኤችቲኤምኤል ኢሜል መላክ እና የተጠቃሚ መለያዎችን በኢሜል ውስጥ ለማስጀመር እንችል ነበር. እኛ ደግሞ ቀለል ያለ አቀባበል የተቀበሉ ኢሜል ለመላክ እንፈልግ ይሆናል, ስለሆነም እንዴት ማድረግ እንደምንችል እስቲ እንመልከት. በተጠቃሚዎች / በኢሜል.
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)
እንዲሁም ይህንን መረጃ ሁሉ ለማስተናገድ አንድ ንድፍ እንፈልጋለን. በድር ጣቢያዬ ላይ አብቅቷል ከዚህ በታች የተወደደ ይመስላል, ግን እርስዎ የሚወዱትን ያህል ወደቀ.
የ HTML ንዑስ ምዝገባን ስናከብር ይህንን የመዝጋት ወይም የኤችቲኤምኤል መለያዎች እንደሌለን ልብ ይበሉ. እነዚህ አስፈላጊ ናቸው, ግን እነሱን ሁለት ጊዜ መግለፅ አንፈልግም.
ስለዚህ ቀጥሎ ምንድነው? እኛ ረጅም መንገድ መጥተናል. በእርግጥ ጣቢያውን ወደ አገልጋይ ለማሰማራት ዝግጁ መሆን አለብን. @Loinin_requider ማህደቆችን ማከል እና የእኛን አስተማማኝ መረጃዎችን ደህንነቱ በተጠበቀ ሁኔታ ማከል, የተገቢው ኢሜይል እና የመሸጎጫ መረጃን ይልካሉ, ይህም ድርጣቢያ ተገቢ ሆኖ እንዲገኝ ማድረግ ያለበት ድር ጣቢያ ምን ማድረግ እንዳለበት ነው. ጥቂት ተጨማሪ ጠቃሚ ጠቃሚ ባህሪያትን እንጨምራለን, ከዚያ ደንበኞቻችንን የርቀት አገልጋይ, የጎራ ውቅር በማዋቀር የርዕስ አገልጋይ, የጎራ ውቅር እና ተገቢ ለማድረግ ማጣሪያዎችን ለማስቀረት የሚያስችል መሠረት ይገንቡ.
እኛ ደግሞ የይለፍ ቃል ዳግም ማስጀመሪያ እይታ እይታ እንፈልጋለን, ስለሆነም በፍጥነት በፍጥነት እንክለው. የ Django በይለፍ ቃል ዳግም ማስጀመር እይታ ውስጥ የተገነባው በአንዳንድ ተግባራት ተሰብሯል, ግን የራሳችንን አመለካከት, ኢሜል አብነት, ቅጾችን እና የዩ አር ኤል ስርዓቶችን እንመረምራለን. በተጠቃሚዎች / ዕይታዎች ውስጥ ያለው እይታ የሚመስለው እነሆ
# ... አስመጣ
ይህ ቅጽ የተገነባው ለ Django ውስጥ የተገነባ ሲሆን የይለፍ ቃሉን ዳግም ማስጀመር, ተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች ትክክለኛነት ለማረጋገጥ ንድፍ ያስፈልገናል
እኛ ደግሞ የይለፍ ቃል ዳግም ማስጀመሪያ ኢሜል, በተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች / በቀላል ቅጽ, በቀላል ቅጽ ለምሳሌ አንድ አብነት አለን
ኢሜል ራሱ በቀላሉ ቀላል ነው, በተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች ውስጥ የይለፍ ቃሉን ለማስጀመር አገናኝን የሚያመለክቱ መሰረታዊ የኤችቲኤምኤል ፋይል ነው. ዲጀንጎ ይህንን ፋይል በራስ-ሰር ይተረጉማል.
እኛ ደግሞ ሁለት ተጨማሪ አብነቶች እንፈልጋለን. የመጀመሪያው ኢሜሉ እንደተላከ ማረጋገጥ ነው. ለእነዚህ ለእነዚህ ያሉ እይታዎች ቀድሞውኑ በ Djangogo ውስጥ ናቸው, ስለሆነም እኛ በዩ.አር.ኤል.ኤል. ውስጥ እነሱን መፍታት አለብን. ይህ አብነት በተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች / ተጠቃሚዎች / ይለፍ ቃል / ይለፍ /ERTE_DOL.html ይገኛል
እና በመጨረሻም, የይለፍ ቃል ዳግም ማስጀመሪያው የተሟላ, ተጠቃሚዎች / አብነቶች / ተጠቃሚዎች / የይለፍ ቃል / የይለፍ ቃል / የይለፍ ቃል / ESESTE_CAME_COME_CLLE መሆኑን ለማረጋገጥ
አሁን ለእነዚህ አመለካከቶች የዩ አር ኤል ቅጦች እንፈልጋለን. በተጠቃሚዎች / ዩ.አር.ኤል. ውስጥ, የሚከተሉትን የዩ አር ኤል ቅጦች ያክሉ-
# ... የቀደሙ ዩ አር ኤልዎች እዚህ
አራት አብነቶች, ያ ብዙ ነው! አሁን ግን እኛ የምንፈልገውን በማንኛውም ጊዜ ዳግም ማስጀመር መቻላችንን ማረጋገጥ እንችላለን, ሁላችንም ከድር አሳሽ ውስጥ ሁላችንም.
ይህ በጣም ብዙ ኮድ እንደሆነ ተረድቻለሁ. ከጭንቅላቱ በላይ ትንሽ ቢመስለው ያ መልካም ነው. ይሻሻላሉ, የእርስዎ ግንዛቤ ይሻሻላል, እናም በኮድ በጣም ብቁ ይሆናሉ. ሙሉ በሙሉ ከጠፋብዎ ከጊዜ በኋላ በራስ-ሰር ወደ ኮድ ኮርስ ለመማር ከሠሩ በኋላ ወደዚህ ሶፍትዌር እንዲመለሱ እመክራለሁ. እነዚህ አብዛኛውን ጊዜ ለመጀመር ነፃ ናቸው, እናም ወደዚህ ፕሮጀክት ሲመለሱ ስኬታማ መሆን በሚያስፈልጓቸው ነገሮች ሁሉ በኩል ይመራዎታል. ለመቀጠል ዝግጁ እንደሆኑ የሚሰማዎት ከሆነ, ያንብቡ, በርቀት አገልጋይዎ ላይም ከርቀት አገልጋዩ ላይ ማሰማራት እና የሜይል አገልጋይዎን ለማስተካከል እና እንዲሁም በጥቂት ቀላል ትእዛዛት አማካኝነት አዲስ ፕሮጀክት ማዋቀር ይችላሉ.
እኛ ማድረግ ያለብን የመጨረሻው ነገር ወደ ሩቅ አገልጋይ ከማሰማራትዎ በፊት ጣቢያችን ትንሽ የበለጠ ደህንነቱ የተጠበቀ ያደርገዋል. የመግቢያ እይታ የተጠቃሚ ስም እና የይለፍ ቃል ብቻ ይወስዳል, እና አንድ ባለ ብዙ መረጃ ማረጋገጫ ወይም የአንድ ጊዜ ኮድ የለም. ይህ ቀላል ማስተካከያ ነው, እና በተመሳሳይ ኮድ ጣቢያችን የጽሑፍ መልዕክቶችን እንዲልክ እና ለአገልጋዩ ለተላኩ የጽሑፍ መልእክቶች ምላሽ ሰጡ. ለመጀመር, ወደ ተጠቃሚ ሞዴሎች እንመለስ እና እያንዳንዱን መግቢያ የሚወክለው የጊዜ ስቴስታፕ ፈራጅ እንጨምራለን. እንዲሁም በመግቢያችን ተጨማሪ ደህንነት ለማከል ጥቅም ላይ ከሚውለው የተጠቃሚ ሞዴል ጋር ደግሞ ልዩ, የተሽከረከር ሰው እንጨምራለን. የተጠቃሚውን ሞዴሎች, ተጠቃሚዎች / ሞዴሎች. Dip ን ማረም የሚከተሉትን ኮድ ያክሉ:
# UUUD ን ማስመጣትዎን ያረጋግጡ, የጊዜ ሰሌዳ ስርአት እና ዩ አር ኤል ጄኔሬተር (ተከላካይ)
# ይህንን ኮድ እዚህ ያክሉ
# እና ይህንን ተግባር ያክሉ
TimestampSigner().unsign(key, max_age=60 * settings.AUTH_VALID_MINUTES) # ለ 3 ደቂቃዎች ተቀባይነት ያለው
ተጠቃሚዎችዎ / ሞዴሎችዎ - ከአስተያየቶች በተጨማሪ ይህንን የሚመስሉ መሆናቸውን ያረጋግጡ (በኮሌኑ ላይ # ከ # ጋር). ይህንን መሰባበር ቀላል ነው. እኛ ጥቂቶች አሉን, አግባብነት ያለው አስተማማኝ ኮድ ሊፈጥር እና ማረጋገጥ የሚቻልበት ጊዜያዊ ፍጆታ እናረጋግጣለን, አንድ ጊዜ ብቻ ነው, ከተወሰኑ ከሰከንዶች ቁጥር ውስጥ ብቻ ሳይሆን ከዛ በላይ ሳይሆን. እኛ ደግሞ ተጠቃሚውን እንጠቀማለን, የእኛን ተጠቃሚም በተስፋፋው መፈረም እና ምልክት ለተጠቃሚው በሚላክበት ዩ.አር.ኤል. ዩ.አር.ኤል. ሁለት የመረጃ ማረጋገጫ ማረጋገጫ እይታን ለመገንባት ይህንን መሰረታዊ ምስኪኖች እንጠቀማለን. ሌላ ማንኛውንም ነገር ከማድረጋችን በፊት የተጠቃሚ ሞዴሎች እንዲዘመኑ ፍልሶቹን እንሂድ. ከማውጫው ጋር በማውጫው ውስጥ ስደተኛዎችን ለማድረግ እና ለማጠናቀቅ የሚከተሉትን ትዕዛዞች ያሂዱ.
source venv/bin/activate
python manage.py makemigrations && python manage.py migrate
ይህ አስፈላጊ ነው, ምክንያቱም በአምሳያዎቹ ላይ በተቀየርንበት ጊዜ, ጠረጴዛዎችን መፍጠር አለብን, እና ሞዴሎችን በትክክል ከመጠቀምዎ በፊት ነባሪዎች ጋር የመረጃ ቋቱን ማዘመን እና የመረጃ ቋቱን ማዘመን አለብን.
ቀጥሎ, ወደ ሁለተኛ ማረጋገጫ እይታ ለማዞር የመግቢያ እይታችንን እንሻር. በተጠቃሚዎች / ዕይታዎች ውስጥ - የመግቢያ ተግባሩን ያስወግዱ እና በተጠቃሚ ሞድ ውስጥ አሁን ከፈጠርነው ዩአርኤል ጋር ያዙሩ.
# ... አስመጣ
if user and user.profile.can_login < timezone.now(): # አሁን ተጠቃሚው መግባት ከቻለ አሁን እንመረምራለን
# እዚህ የነበረውን የ Auth_loogin ተግባርን ያስወግዱ
return redirect(user.profile.create_auth_url()) # እዚህ ወደ አዲስ ዩ.አር.ኤል.
else: # ተጠቃሚው ባለብዙ-መረጃ ማረጋገጫ ካልጠቀሰ, እነሱን ይመዝገቡ.
else: # መግቢያው ካልተሳካ,
user = User.objects.filter(username=username).first() # ተጠቃሚዎችን መገለጫ የምናዘግዝበት ክፍል ነው
profile.can_login = timezone.now() + datetime.timedelta(seconds=15) # ስለዚህ ለጥቂት ሰከንዶች እንደገና መግባት አይችሉም
ስለዚህ ይህ በጣም ቀላል ነው, አሁን ስንፈጠር ወደ ሁለቱ የግምገማ ማረጋገጫ እይታ ለማዞር መንገድ አለን. ተጠቃሚው ስልክ ቁጥር ባይጨመርም እንዲሁ የመመለሻነት አለን. የስልክ ቁጥርን ለማከል እና በቅርቡ በጽሑፍ መልእክት ውስጥ ለመግባት መሰረታዊ እይታ እንጨምራለን.
በመጀመሪያ, የጽሑፍ መልእክት ከድዳታችን ለመላክ ቀላል መንገድ እንፈልጋለን. ይህንን ለማድረግ ከበርካታ ኤ.ፒ.አይ.ዎች ልንመርጥ እንችላለን, ግን በአስተያየትዬ ውስጥ ያለው ቀላሉ ትዊዮ ነው. እንዲሁም ለአነስተኛ ፕሮጄክቶች እንዲሁም ለጅምላ ቅናሾች ጥሩ ዋጋ ይሰጣሉ. Twilio.com ላይ አንድ መለያ ይፍጠሩ, ስለ ፕሮጄክቲዎ አንዳንድ ዝርዝሮችን ይሙሉ, የስልክ ቁጥር ይግዙ እና የእርስዎን ኤፒአይ ቁልፎችዎን በቅንብሮችዎ ይቅዱ. ከዚያ, ይህንን ኮድ በአዲስ ፋይል, ተጠቃሚዎች / ኤስ.ኤም.ኤስ. ውስጥ ያክሉ.
nano users/sms.py
# ሁሉንም አስፈላጊ ጥቅሎች ያስመጡ
# ይህ ኮድ ጽሑፉን በትዊዮኒ ይልካል
# ብዙ አሃዞችን ያለው አንድ ቁጥር ለማግኘት ረዳት ተግባር
# ተጠቃሚውን ለማረጋገጥ ጽሑፉን ይላኩ
# ከዚህ ተግባር ጋር ማንኛውንም ጽሑፍ ይላኩ
# በዚህ ተግባር ኮዱን ያረጋግጡ
# ጊዜውን ያረጋግጡ
ቅንብሮችዎን በተገቢው ሁኔታ መለወጥዎን ያረጋግጡ, እነዚህን መስመሮች ጋር በመጨመርዎ ላይ ማከልዎን ያረጋግጡ.
# እነዚህን ከትዊሚዮ ዳሽቦርድዎ መገልበጥዎን ያረጋግጡ
AUTH_VALID_MINUTES = 3 # የ TFA ገጽ ቁጥር የቲፋ ገጹ ቁጥር አንድ ጊዜ የተካሄደ ነው
በመጀመሪያ ለሁለቱም የማረጋገጫ ማረጋገጫ አመለካከቶች ቅጾችን እንፈልጋለን. ተጠቃሚዎችን / ቅጾችን / ቅጾችን ማረም, የሚከተሉትን ኮድ ያክሉ.
# ... አስመጣ
# የስልክ ቁጥራችንን ለማስገባት አንድ ቅጽ
# ለማረጋገጥ አንድ ቅጽ
ቀጥሎም, በተጠቃሚዎች / ዕይታዎች ውስጥ ያሉትን አመለካከቶች እንፈጠር
# ... አስመጣ
ለሁለቱም አመለካከቶችም አብነቶች እንፈልጋለን. በመጀመሪያ የኤምኤፍ አብነት እንጨምር.
nano users/templates/users/mfa.html
ይህንን HTML ኮድ ወደ አብነት ያክሉ
ይህ በጣም ራስን ማገገም ነው. ቅጹ አንድ ኮድ ወይም ባዶ ኮድ ይልካል, እና ባዶ ኮድ ከተቀበልን ኮዱን በምንቀበልበት እይታ ውስጥ ያስተውላሉ. ከዚያ እኛ ሁለት የማስረከቢያ ቁልፎች አሉን, እናም በዚህ መንገድ ኮዱን በሁለቱም አዝራር አማካኝነት መላክ እንችላለን. ቀጥሎም የስልክ ቁጥርን ለማከል አንድ ቀላል ቅጽ እንጨምራለን.
nano users/templates/users/mfa_onboarding.html
የሚከተሉትን HTML ያክሉ
ይህ ቅጽ በጣም ቀለል ያለ ነው, እሱ የፈጠርነው የስልክ ቁጥር ቅጽን ያረጋግጣል እና ተጠቃሚው የስልክ ቁጥር እንዲያካክል ያስችለዋል.
ይህ በጣም ጥሩ ይመስላል! ሁሉም ነገር በትክክል በተዋቀረ ጊዜ, መልዕክቶችን መላክ እና ተጠቃሚውን የዩ.አር.ኤል. ንድፍ እንዳገኘነው በተንቀሳቃሽ ስልክ ቁጥራቸው ጋር በመለያ ይግቡ. ለማዋቀር የምንፈልግበት የመጨረሻው ነገር የመገለጫ እይታ ነው ስለሆነም ተጠቃሚው ሳይገባ የገለፃቸውን የስልክ ቁጥር መለወጥ እንደሚችል, ለወደፊቱ የጽሑፍ መልዕክቶችን ለማስቀረት "ማቆሚያ" ማከል እንፈልጋለን.
ለተጠቃሚዎች / ዕይታዎች. Topy የመገለጫ እይታን እንመልከት. ይህ አመለካከት የተጠቃሚውን ባዮ, ኢሜል, የተጠቃሚ ስም እና የስልክ ቁጥርን ይዘን ያዘምናል, እንዲሁም እኛን የሚገልጽ ማረጋገጫ ማረጋገጫ. በመጀመሪያ, በተጠቃሚዎች / ቅጾች ውስጥ ሁለት ተጨማሪ ቅጾችን እንፈልጋለን
# ... አስመጣ
ቀጥሎም ሁለቱንም እነዚህን ቅጾች ለመጠቀም እይታ መፍጠር እንችላለን. ተጠቃሚዎችን / እይታዎችን / እይታዎችን ያርትዑ እና በእይታ ውስጥ ይጨምሩ.
# እነዚህን ማስመጣት ያክሉ
እኛ ደግሞ ለዚህ አመለካከት አብነት እንፈልጋለን.
nano users/templates/users/profile.html
ይህንን ያስተውላሉ, በትክክል ቀላል ቅጽ ነው, ግን በቅጹ ላይ እንደተዘመኑ በራስ-ሰር የሚገልጹ አንዳንድ ጃቫስክሪፕት አለው. ይህ ጠቃሚ ነው, ስለዚህ እያንዳንዱን ጊዜ ማስገባት ሳይኖርብዎት አርት ed ቶችን ማድረግ ችለዋል.
ቀጥሎም, እነዚህን ሁሉ ዕይታዎች በተጠቃሚዎች የዩ አር ኤል ፓርቲዎች ውስጥ እነዚህን ሁሉ ዕይታዎች የሚወክሉ ኡልሎች እንፈልጋለን. ተጠቃሚዎችን / ዩ.አር.ኤል.ፒ.
# ... የቀደመ ኮድ, አስመጣ
# ከዚህ ቀደም የገባን የዩ አር ኤል ቅጦች የሚቀጥሉትን ሶስት መስመር ያክሉ
ፕሮጀክታችን ለመፈተን አሁን ጥሩ ጊዜ ነው. ግን በመጀመሪያ ሌላ ምትኬን እንሂድ.
backup
እና አገልጋዩን አሂድ. ወደ ሊኑክስ አገልጋይ ከማሰማራታችን በፊት, በመለያው ላይ ሁለት የግምገማ ማረጋገጫ ማረጋገጫ ማረጋገጫ ማረጋገጫ ማንቃት ጥሩ ሀሳብ ነው. ወደ የእኛ መገለጫ ዩ.አር.ኤል. / ተጠቃሚዎች / መገለጫችን / መገለጫችን / መገለጫችን / መገለጫችን / መገለጫችን / መገለጫዎ / መገለጫችን / መገለጫዎ / መገለጫችን / መገለጫችንን ከገባ በኋላ እና ቅጹን ከገባ በኋላ ቅጹን በማስገባት ሣጥኑን ለማጣራት እናሳያለን.
python manage.py runserver localhost:8000
ወደ የድር አሳሽዎ በመሄድ ድረ-ገጽን ይጎብኙ, Google Chrome በዚህ ምሳሌ ውስጥ እጠቀማለሁ, እና ወደ ዩ.አር.ኤል. ኤም.ቲ.ፒ.ፒ.ፒ.
አስፈላጊ ከሆነ በመለያ መግባት ይችላሉ እና ሁለት መረጃ ማረጋገጫ ማረጋገጥን.
ይህ ፕሮጀክት በትክክል እንዲሄድ የሚያደርገው አገልጋይ ይፈልጋል. በእውነቱ ደብዳቤ መላክ ይችላል. ግን በመጀመሪያ, ስህተቶችን ለማየት የሚያስችል መንገድ እንፈልጋለን. ከአገልጋዩ ሁኔታ ጋር በአመራር ሁኔታ ካካሄዱ በኋላ ከቅንጅቶች ጋር እኩል ከሆነ አገልጋዩ በራስ-ሰር ስህተቶችን ያሳያል. የማረም ሁኔታን ሳይጠቀሙ ስህተቶችን ለማሳየት, በማምረቻ አገልጋይ ላይ ደህንነቱ ያልተጠበቀ ነው, ለእሱ አንድ እይታ ማከል አለብን. ማስተናገድ የሚኖርባቸው በጣም አስፈላጊ ስህተቶች ናቸው-
500 - በኮድዎ ላይ ችግር ስህተት 404 - ያልተገኘ ገጽ (የተሰበረ ዩአርኤል) ስህተት 403 - የተከለከለ ስህተት
እነዚህን ስህተቶች የሚባሉ ስህተቶችን የሚባል አዲስ መተግበሪያን እንክለው.
python manage.py startapp errors
ከዚህ በፊት ይህንን ወደ ቅንብሮች ያክሉ. በተጫነ_አድሪፕት ውስጥ እንዳደረግነው መተግበሪያ መተግበሪያ / ዩ.አር.ኤል.ፒ.
handler404 = 'errors.views.handler404'
handler500 = 'errors.views.handler500'
handler403 = 'errors.views.handler403'
ከመልካም ዕይታዎች, አብነቶች እና ትንሽ መካከለኛ የመካከለኛ ፍትሃዊነት የበለጠ የሚያስፈልግዎት ይህ ሁሉ ይህ ነው. እንደዚያው ግለጽ
# እዚህ እይታዎን ይፍጠሩ.
ቀጥሎም በመካከላተኛ መሃንዲስን እነዚህን ስህተቶች ለማስተናገድ እንችል. እኛ በመነሻዊነትዎ ውስጥ በመነሻዊነት ቅንብሮች ውስጥ ወደ መካከለኛ ፍለጋ_ቆጥር_ቆሳዎች በመጨመር ይህንን እናደርጋለን.
# ... የቀደመ መካከለኛው መካከለኛ
ቀጥሎም, መካከለኛ ደረጃውን እንጨምር.
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.')
እኛ በኮድ ውስጥ ማንኛውንም ስህተቶች እንድንከታተል የአሁኑን የመለኪያውን ወቅታዊ ሁኔታ ለማግኘት አንድ ተግባር እንጨምራለን. አብነቶች አንፃር, እኛ ብቻ አንድ ብቻ ነው እኛ አንድ ብቻ ነው, ምክንያቱም እኛ ርዕሱን በትክክል እንገልፃለን. አብነቱ ርዕሱ ርዕሱን እና "ዱካ" እና "ዱካ" ከዐውደ-ጽሑፉ ውስጥ.
nano errors/templates/errors/error.html
ይህ የእኛ ቀላል ንድፍዎ ነው, ግን በፕሮጀክታችን ውስጥ ያሉትን ስህተቶች ማየት ምን ያህል ቀላል ነው. ቀጥሎም በቅንብሮች ውስጥ ማጉያ እንሰናከል.
nano app/settings.py
ወደ እውነት የተቀመጠበት ይህንን መስመር ይፈልጉ እና ወደ ሐሰት ይለውጡት
DEBUG = False
ሂድ እና መተግበሪያውን አሁን ምትኬን ያስገቡ. በርቀት ሊነክስ አገልጋይ አገልጋይ ለማሰማራት ዝግጁ ነን እናም ከዚህ ውጭ ባህሪያትን ማከልዎን ይቀጥላሉ.
sudo backup
ይህንን ኮድ ወደ አገልጋይ ከመላክዎ በፊት በኮዱ ውስጥ አንዳንድ ጉዳዮች ሊኖሩ እንደሚችሉ ከግምት ውስጥ ማስገባት አለብን. እንደ ጉዳዩ, ለተለጠፈ መረጃ የሚቀበሉ ጣቢያዎች ከተለወጠ ጋር የሚለጠፉ እና አይፈለጌ መልዕክቱን የማስወገድ ችግር አለባቸው. ይህ ወዲያውኑ መከሰት የለበትም, ነገር ግን እየተከሰተ ከሆነ በጣቢያው ላይ መካከለኛ በራስ-ሰር እንደምንችል እና እንደ የጣት አሻራ አሻራ ወይም የፊት እውቅና ጋር በተቃራኒው ቅኝት እንዴት እንደሚያስቀምጡ እንመረምራለን.
እኛ የምንመረምነው ባለብዙ መረጃ ማረጋገጫ ማረጋገጫ ምሳሌ, ነገሮች የተለያዩ ሊሆኑ ይችላሉ. ዝማሬዎችን እና የምስጋና የምስክር ወረቀቶችን በገደብ እንዴት እንደምንወጣ ልብ ይበሉ. ሮቦቶች አንድ ጣቢያ የሚጠቀሙ ከሆነ, ተጠቃሚው በተመሳሳይ ጊዜ ኮዶች እንዲገቡ ለማድረግ ሁለት መረጃ ማረጋገጫዎች የበለጠ ከባድ ሊሆን ይችላል. ይህንን ለመዋጋት በተጠቃሚዎች ሞዴሎች ውስጥ አንድ ሞዴል እንጠቀም. ከጣቢያው ጋር አንድ ሞዴል እንጠቀምበት, ከጣቢያው ጋር እንዴት እንደምንገናኝ እናገለግለን ከጣቢያው ጋር እንዴት እንደምንገናኝ እናገለግለን. እንዲሁም በኢሜል ለማረጋግጥ አማራጭ እንጨምራለን. የተጠቃሚ ሞዴሎችን ከናኖ ጋር በማርትዕ ይጀምሩ.
nano users/models.py
እኛ የምንጨምረው ሞዴሉ እንደዚህ ይመስላል. እኛ መታወቂያ, ተጠቃሚው, የጊዜ ሰሌዳ, ጊዜው የሚያድግ, ጊዜያቸውን, ማቀነባበሪያዎችን, ርዝመቱ እና ሙከራዎችን ለማከማቸት ምንም ዘዴዎች, ተለዋዋጮች እና በማንኛውም ባለብዙ መረጃዎች ውስጥ ወደ ስልክ ወይም ኢሜል ይላኩ).
# ወደ ድር ጣቢያው ለመግባት የሚያገለግል መሠረታዊ ምልክት
በተጨማሪም እኛ ለተጠቃሚው አንድ መብት እንጨምር, እናም በመጨረሻም ከፊት ለፊታችን አሁን እናስቀምጣለን, አሁን በራስ-ሰር ልዩ ልዩ ተጠቃሚዎችን እንዲመዘግብ ችለዋል. በተጠቃሚ ሞዴሎች ውስጥ ይህንን መስመር በመገለጫው ውስጥ ያክሉ-
vendor = models.BooleanField(default=False)
በመረጃ ቋቱ ላይ እንደማንኛውም ለውጦች, ፍልሰት መፍጠር እና የውሂብ ጎታውን ማዛወር እና በመረጃ ቋት ውስጥ በዲጃዛ ውስጥ ፋይልን ስናስተዳድሩ ለውዳታ ማቀናጀት አለብን. ያስታውሱ, ይህንን ለማድረግ መጀመሪያ የምንጠቀመው ይህንን ለማድረግ (ከተንቀሳቃሽ ተርሚናል ከተከፈተ) እና ከዚያ በኋላ ስደተኞች እና ስደተኞች እንዲሽከረከሩ ከተቀዘቀዙ.
cd project-directory-you-named # (አስፈላጊ ከሆነ)
አሁን, ጾምን በመጠቀም እነሱን እንደ ሻጮች የፈጠሩትን ማንኛውንም መለያዎች መጻፍ ይችላሉ.
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() # በዩ.አር.ኤል. (UUUD) ውስጥ በተላለፈው እሴት ውስጥ ምልክቱን ያጣሩ
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')) # ተጠቃሚውን ወደ ቀጣዩ ገጽ ያዙሩ
if not user.profile.mfa_enabled: # MFA ከነቃ ያረጋግጡ
if not check_verification_time(user, token): # ሰዓቱን ያረጋግጡ
user.profile.mfa_enabled = False # የስልክ ቁጥሩን ያፅዱ
user.profile.enable_two_factor_authentication = True # ኤምኤፍ አንቃ
user.profile.phone_number = '+1' # የስልክ ቁጥሩን ያሰናክሉ
user.profile.save() # መገለጫውን ይቆጥቡ
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # MFA ካልነቃ ተጠቃሚውን ያስገቡ
if request.method == 'POST' and not fraud_detect(request, True): # ጥያቄው የፖስታ ጥያቄ ከሆነ
form = TfaForm(request.POST) # ቅጹን ያራግፉ
code = str(form.data.get('code', None)) # ኮዱን ያግኙ
if code and code != '' and code != None: # ባዶ እንዳልሆነ ያረጋግጡ
token_validated = user.profile.check_auth_token(usertoken) # የአፍንጫን ማስመሰያ ያረጋግጡ
is_verified = check_verification_code(user, token, code) # ኮዱን ያረጋግጡ
if token_validated: # ሁሉም ነገር ከሆነ
if is_verified: # በቅደም ተከተል ነው
user.profile.mfa_enabled = True # ኤምኤፋን ያንቁ (ቀድሞውኑ ካልነቃ)
auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') # በተጠቃሚው ውስጥ ይግቡ
for key, value in request.GET.items(): # ለሚቀጥለው ልኬታማነት (ካለ) አንድ የመግቢያ ደረጃን ይገንቡ (ካለ)
return HttpResponseRedirect(next) # አቅጣጫ
elif not token_validated: # ምልክቱ ልክ ያልሆነ ከሆነ
if p.mfa_attempts > 3: # በጣም ብዙ ሙከራዎች ካሉ
if form.data.get('send_email', False): # ኢሜልዎን ይላኩ (ወይም ጽሑፍ)
# ቅጹን አቅርቡ (ጥያቄዎችን ለማግኘት)
በዚህ ኮድ ውስጥ ስናክለው ኢሜል ለመላክ ተግባሩን ማስመጣትዎን ያረጋግጡ. በፋይሉ አናት ላይ, የተጠቃሚው ዕይታዎች (ከሌሎች አስመጪዎች ጋር), ይጨምሩ
from .mfa import send_verification_email as send_mfa_verification_email
አሁን, ይህ ተግባር ከሚሠራበት በፊት ያንን ተግባር መፃፍ አለብን. የመላክ ኢሜል ተግባሮችን ማራዘም አለበት, እና በቀላሉ ለተጠቃሚው በቀላሉ በኢሜል ይላኩ.
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', { # ተጠቃሚዎችን አብነት ይመልሱ
ይህ ኮድ ፈተናን እንደሚጠቀም ልብ ይበሉ, ይህንን ፈተና በፈተናዎች ውስጥ ማስወጅ እና ማስገባት እና ማስገባት አለብን. ተጠቃሚዎችን / ፈተናዎችን ማስተናገድ, ፈተናውን ይፍጠር.
def is_superuser_or_vendor(user):
return user.profile.vendor or user.is_superuser
ይህ እንደዚህ ያለ ነገር ከሚመስለው ተጠቃሚዎች / ተጠቃሚዎች.html ያውጃል ጋር ይህ ነው.
አብነት ሌላ አብነት, ተጠቃሚዎች /ተጠቃሚ.html. ስብዕና የማይጠቀምበት አብብያን ሲጠቀሙ, ጎረቤርን ለማከል ጥሩ ሀሳብ () አብነቶችን ለመለየት ሲል ስልኩ ስም ከመዘርዘር በፊት.
ልብ ይበሉ ይህ ብዙ ጂጂ ja መሆኑን ልብ ይበሉ, እነዚህ ሁሉ ተለዋዋጮች ሊገለጹ ይችላሉ. ግን የእኔ ኮድ የሚመስለው ይህ ነው.
<small># {{UST.D}} </ ትንሽ>
እንዲሁም ሌላ ንዑስ-ተኮር እንፈልጋለን, ይቀያይሩ_አድግ. ይህ አብነት ተጠቃሚው ገባሪ መሆኑን ለመቀጠል የሚያስችለን ቅጽ መሆን አለበት.
እንዲሁም የተጠቃሚ እንቅስቃሴን እና አግባብ የሆኑ የዩ አር ኤል ስርዓተኞችን ለመቀየር አንድ እይታ ማከል ያስፈልገናል. እኛ በፈለግንበት ጊዜ እኛ ይህንን የሚፈልገውን ተጠቃሚ ለመሰረዝ አንድ እይታ እንጨምር.
# ያስመጣል
success_url = '/' # በስኬት ዩ.አር.ኤል.
def test_func(self): # ተጠቃሚው የበላይ ከሆነ እና ለመሰረዝ ፈቃድ ካለው ፈተና
አስፈላጊ ሆኖ ሲገኝ, አስፈላጊ ሆኖ ሲገኝ ተጠቃሚው አስፈላጊ ቢሆንም ብዙ ጊዜ አስፈላጊ መሆን የለበትም.
እኛ ብለን የምመስለው የዩ አር ኤል ቅጦች. ከናኖ ጋር ተጠቃሚዎችን / ዩ.አር.ኤል.ፒ.
nano users/urls.py
ከመጀመሪያው በፊት "[" ግን ከመጀመሪያው በኋላ "መስመሮቹ መጓዝ አለባቸው" ["ግን ከመጀመሪያው በኋላ" ["
# ...
# ...
አሁን ጣቢያውን ማውረድ እንዲችሉ ጣቢያውን ማውረድዎን ያረጋግጡ ስለዚህ እኛ መስራቱን እንቀጥላለን. ከትእዛዝ መስመር,
sudo backup
አሁን ጣቢያችን ተደግ is ል.
ስለዚህ አሁን ጥቂት ተጨማሪ ጠቃሚ ባህሪዎች አሉን. ግን እዚህ ያለው ትልቁ ሥዕል? ይህ ኮድ ከበይነመረቡ ውስጥ አሁንም ተደራሽ አይደለም, እናም የተሟላ የማረጋገጫ ሂደትን በተመለከተ, የተሟላ የማረጋገጫ ሂደትን እንዲሁም የጣቢያውን የማረጋገጫ አቀማመጥ እንዲሁም የጣቢያቸውን ተጠቃሚዎች ለማካካስ የሚያስችል ለስላሳ አቀማመጥ ለማካተት የሚረዱ እኛ መተግበሪያችን ማስፋት ያስፈልገናል.
ወደዚህ ሁሉ እንሄዳለን. አሁን በጣም አስፈላጊው ነገር በኡቡንቱ አገልጋይ ላይ ጥቂት የመጠጥ መስመሮችን ብቻ ማድረግ የምንችልበት ይህንን ኮድ በመስመር ላይ ብቻ ማግኘት እንችላለን. ምንም እንኳን በዚህ ምንም እንኳን ለአገልጋዩ መከራየት አያስፈልግዎትም, ወደቦች እና ወደቦች እንዲከፍቱ የሚያስችል የንግድ ሥራ የበይነመረብ ምዝገባ ከሌለዎት በስተቀር ለአገልጋይ መከራየት ይኖርብዎታል. በፓፓቴ ውስጥ በተጫነ ኤችፒ Z440 ላይ ድር ጣቢያዬን አሰብኩ, ነገር ግን ብዙውን ጊዜ ለመሠረታዊ ፍላጎቶች ምናባዊ የግል አገልጋይ (ቪፒኤስ) ለመከራየት ብዙውን ጊዜ በጣም ርካሽ ነው.
አሁን ያለንበት ኮድ በአንጻራዊ ሁኔታ ቀጭን መሆኑን ያስታውሱ, አንድ ምርት መገንባት ያለብንን ሥራ ለመጠቀም ዝግጁ ከመሆናችን በፊት መሻሻል እና መሻሻል ያስፈልጋል. በይነመረብ ውስጥ ምን እንደሚያደርጉ በጥንቃቄ መከታተልዎን ያረጋግጡ, ይህንን ጣቢያ በሊነክስ አገልጋይ ላይ ወደ ድር ወደ ድር ወደ ድር ወደ ድር ወደ ድር ይገቡ, አላስፈላጊ የሆኑ ግንኙነቶችን ከድር ጣቢያዎ ጋር ለማገድ ዕቅድ አለዎት. ይህ መጀመሪያ ላይ ችግር ሊሆን አይችልም, ነገር ግን ይህንን ማሽን መማር, ሰው ሰራሽ የማሰብ ችሎታ እና የኮምፒተር እይታን ጨምሮ ይህንን ለመዋጋት የተለያዩ መፍትሄዎችን እንመለከታለን. ችግር በሚሆንበት ጊዜ በዚህ ጽሑፍ ውስጥ መፍትሄ ለማግኘት በዚህ ጽሑፍ ውስጥ ይመልከቱ.
ከክፍያ የቤት ኪራይ ወይም ከኪራይ ውሎች, መሄድ የሚችሏቸው ብዙ ቦታዎች አሉ. ጉግል ደመና የ VPS, Kametera, የአማዞን ዝንብ, እና ተጨማሪ አቅራቢዎች ፍላጎቶቻችንን የሚስማማ የደመና የአገልጋይ መፍትሄዎችን ይሰጣሉ.
በቅደምዎቻቸውን ጠቅ ማድረግ ያስፈልግዎታል እና ለመጀመር እቅድ መምረጥ ያስፈልግዎታል. ከማንኛውም አቅራቢ ጋር ከመሠረታዊ እቅድ ጋር መጓዝ ይችላሉ, ግን አቅራቢዎ ኢሜል ለመላክ የአገልግሎት ሰብሳቢ መልእክት ወደቦች ወደቦች ለመላክ ከፈለጉ (ይህ ወደብ 587 እና ወደብ 25), አንዳንድ አቅራቢዎች እነዚህን ወደቦች ያግዳሉ. እስካሁን ድረስ በዮዮስ እና ካምታራ ምርጥ ተሞክሮ አግኝቻለሁ, ሁለቱም ያልተገደበ ኢሜል እንድልክ እና ዋጋቸው በጣም ርካሽ እንድሆን ይፈቅድልኛል.
ከአገልጋይዎ ጋር በተያያዘ ከአገልጋይዎ ጋር በተያያዘ ከግል ኮምፒተርዎ ጋር ርቀው ከሚያስደስት ኋላ በሚባል ፕሮቶኮል ወይም ደህንነቱ የተጠበቀ shell ል በተባለው ፕሮቶኮል ላይ ይገናኛሉ. አገልጋዩን ሲያዘጋጁ የአስተናጋጅ አቅራቢ አቅራቢው የኤስኤስኤስ ቁልፍ እንዲያክሉ ሊጠይቅዎት ይችላል, ወይም እነሱ የተጠቃሚ ስም እና የይለፍ ቃል ይሰጡዎታል. የ SSH ቁልፍ ኮዱን ለማርትዕ ከአገልጋዩ ጋር ወደ አገልጋዩ ለመግባት እንዴት እንደሚገቡ ነው. የ SSS ቁልፍን ለመፍጠር ከዚህ በታች ያለውን የ Ssh-Keynger አማራጮች ይጠቀሙ.
ssh-keygen
ፋይልዎን ያስቀምጡ እና እንደገና ይፃፉ ከሆነ እንደገና ቢቀሩ ቀድሞውኑ ከሌለዎት የ SSH ቁልፎችዎን ማሽከርከር ጥሩ ነው. አሁን, የ SSS ቁልፍዎን ለማየት የሚከተሉትን ትዕዛዞች መጠቀም ይችላሉ. ለማረጋገጥ እንዲጠቀሙበት እንዲጠቀሙበት ለርቀት አገልጋዩዎ ለመገልበጥ ይፈልጋሉ.
cat ~/.ssh/id_rsa.pub
ያእዛን ትእዛዝ ሲያንቀሳቅሱ (ከ "SSHS RSA የሚጀምሩ ረዥም ሕብረቁምፊዎች" (የበለጠ ደህንነታቸው እንዲጠቀሙበት ከቻሉ (የበለጠ ደህንነታቸው እንዲጠቀሙበት እመሰክራለሁ).
ssh-keygen -t rsa -b 4096
Ubuntu ሩጫዎን ይፍጠሩ, ሆኖም ይህንን ለማድረግ ያቀዱ ናቸው. በአቅራቢዎች ድርጣቢያ ላይ ያሉትን ቅጾች (Kametura.com, Iniono.com, Iniono.com) ቅጾችን ጠቅ በማድረግ ከፈጠሩ በኋላ ለመግባት ይፈልጋሉ. ይህንን ለማድረግ ከ IP አድራሻዎ (ACX.XX.XX.XX) ን ይጠቀሙ. እንዲሁም እኛ ለምሳሌ ለ Ubuntu በተፈጠረው አገልጋይ ላይ ለተጠቀሰው የተጠቃሚ ስም ደግሞ ጠንቃቃ መሆን ያስፈልግዎታል.
ssh ubuntu@XX.XX.XX.XX
የይለፍ ቃል እንዲኖርዎት ከተጠየቁ የይለፍ ቃል ከተጠየቁ, ነባሪውን የተጠቃሚ ስም አንጠቀምም, ስለዚህ አዲስ ተጠቃሚ በመፍጠር እና በመለያቸው ላይ የ SSH ቁልፍን በመጫን እንጀምር.
እስቲ አገልጋይዎን እንዴት መጠቀም እንደሚቻል የሚገልጽ አዲስ የ SSHD_CASFIG ፋይል በማከል እንጀምር.
nano sshd_config
# ይህ የ SSHD አገልጋይ ስርዓት-ሰፊ ውቅር ፋይል ነው. ተመልከት
# ለተጨማሪ መረጃ SSHD_Config (5).
# ይህ shShd ከመንገድ = / USR / አካባቢያዊ / አከባቢ / አከባቢ / አከባቢ / አከባቢ: / USR / BBIN: / BBIN: / Bins: / Bins
# በነባሪው SSHD_Config ውስጥ ላሉ አማራጮች ጥቅም ላይ የዋለው ስትራቴጂ
# ከፕሬስ ከነባሪ እሴት ጋር አማራጮችን መግለፅ ነው
# የሚቻል, ግን አስተያየት ሰጥተዋል. ያልተስተካከሉ አማራጮች ከ
# ነባሪ እሴት.
# ወደብ 22
# የአድራሻ
# SimADADERSERT 0.0.0.0
# SimADERESER ::
# አስተናጋጅ / ኢ.ሲ.ሲ / SSH / SSH_ Sssa_kera_kea_
# አስተናጋጅ / ኢ.ሲ.ሲ / SSH / SSH_ SHASST_KASA_KED
# አስተናጋጁ / ኢ.ሲ.ሲ / SSH / SSH_ Sss_5519_KEKE
# ጠንቋዮች እና ቁልፍ
# እንደገና ያነጋግሩ ነባሪው የለም
# ምዝገባ
# የመሳሰሉት
# ሎጂካዊ መረጃ
# ማረጋገጫ
# የመግቢያ ሰዓት 2M
# ፍቀድ ፍቀድን የይለፍ ቃል ይለፍ ቃል
# ጥፋቶች አዎ አዎ
# Maxauthtres 6
# መከለያዎች 10
# ለወደፊቱ በነባሪነት እንዲተዉ ይጠብቁ.
# ፉልተፊሻሊካልፊል ምንም የለም
# የተፈቀደላቸው አይነቶች
# የተፈቀደላቸው ሰዎች ማንም ሰው የለም
# ለዚህ ሥራ እንዲሠራዎት እርስዎም አስተናጋጅ ቁልፎች ያስፈልግዎታል / ወዘተ / Ssh_k_k_kins ያስፈልግዎታል
# የአስተናጋጁ ማረጋገጫ ማረጋገጫ የለም
# የማይታመኑ ከሆነ ~ / .sh / የታወቁ_ኪዎች
# የአስተናጋጁ ማረጋገጫ
# `` `
# የተጠቃሚውን ~ / .shsess እና ~ / .shs ፋይሎችን አያነቡ
# ቸልተኛ ሆሄዎች አዎ
# የተስተካከሉ ግልጽ የጽሑፍ የይለፍ ቃላትን ለማሰናከል, እዚህ ለውጥ ያድርጉ!
# Permitemptypswords አይ
# ተፈታታኝ ምላሽ-ምላሽ የይለፍ ቃላትን (ጥያቄዎችን ከ ጋር ለመቀየር
# አንዳንድ የፓም ሞዱሎች እና ክሮች)
# የ Kerberos አማራጮች
# ኬርቤሮሮፎርፌት አረጋግጥ
# Kerberosolocaldd አዎን
# ኬርቤሮሮስትኪክኪንግስ
# Kerberosfsfsestocke no
# Gssapi አማራጮች
# የግለሰቦችን ማስተላለፍ የለም
# Gssaphiclenaupbialials አዎ
# Gsesapististricatectopportople አዎ
# Gsesapiikeatizeakeaky የለም
# የ PAM ማረጋገጫ, የመለያ ማቀነባበርን ለማንቃት ይህንን 'አዎ' ያዘጋጁ,
# እና የክፍለ-ጊዜ ሂደት. ይህ ከነቃ የ PAM ማረጋገጫ
# በ KBDINERTEREANTEREANTEREANTEREANTEREANTEREANTEREANTEREANTEREANTEREANTERESED / "
# የፍትህ ማረጋገጫ. በ PAM ውቅርዎ ላይ በመመርኮዝ,
# በኪባኒካዊ ማስተላለፍ መሠረት የፓም ማረጋገጫ
# የ "ፍግስት ሎጅ" ያለ የይለፍ ቃል "መቼት.
# የ PAM መለያ እና የክፍለ-ጊዜ ቼክ ከሌለዎት ከሌለዎት
# የፓም ማረጋገጫ, ከዚያ ይህንን ያንቁ, ከዚያ የይለፍ ቃል ማረጋገጥ
# እና KBDINEREARTEREATEREDEDEREDEDERIEATEPEREDEDER 'አይ'.
# ፍትሃዊነት
# ፍትሃዊነት አዎ
# በር አይሌዎች አይ
# X11Dislofyfe 10
# X11 ventelococosty አዎ
# ፈቃድ አዎ
# ህትመትዎ አዎ
# Tcpeapeable አዎን
# Lureationrondery የለም
# ማጨስ ዘግይቷል
# Coarentrecterationater 0
# Wo.SICERCORCOTCONTEXAX 3
# አልተጠቀመበትም
# PIDFIFILED/SHDD.PD
# Maxstartupos 10: 30: 100
# የፍቃድ አይሁን
# Chrooodirectirecter የለም
# ሥዕሎች
# ነባሪ ሰንደቅ ዓላማ የለም
# ደንበኛው የአርካሌ አከባቢ ተለዋዋጮችን እንዲያልፍ ፍቀድ
# ነባሪነት ንዑስ ክፍል የለም
# በተጠቃሚዎች ተጠቃሚዎች ላይ ከመጠን በላይ ቅንብሮች ምሳሌ
# ከተጠቃሚዎች ጋር ይዛመዱ
# X11
# ፍትሃዊነት የለም
# ፈቃድ የለም
# የጦር ሜዳ ኮሚሽን
ያስታውሱ, Ctrl + x እና y ፋይልን ለማዳን. ቀጥሎም, አስጀምር የተባለ አንድ መሰረታዊ ስክሪፕት (ሁሉም የተጠቃሚዎች የመነሻ ማውጫ ማውጫ ውስጥ).
nano initialize
እነዚህን መስመሮች ወደ ፋይሉ ያክሉ, በመተካት
# ! / ቢን / ባሽ
በዚህ ፋይል ውስጥ እርስዎን ለመራመድዎ, በመስመር መስመር እንጀምር. የመጀመሪያው መስመር ለተቀናጀው ጥንዚዛው ይህ የሠረቱ ስክሪፕት ነው. ከዚያ ጥገኝነትን የሚጨምር, የ SSSH_Config ን ለትክክለኛው ማውጫ ውስጥ የ SSSHD_COSFIG ን በመገልበጥ, የተጠቃሚውን ክስ በመመስረት የ SASS KSS ን በመገልበጥ, የ <ፈለጉትን ስም ይመርምሩ, የ Adder Adder Prace Adder ትዕዛዙን እና ለአሁን የይለፍ ቃል ይጠቀሙ. በተጨማሪም ወደ ሱዶዶአችን ቡድን ውስጥ ያካድናል, የ SSSH ቁልፎቻቸውን ለማመንጨት, ለተፈቀደላቸው ቁልፎች እና ለእነርሱ እንዲሁም የእነሱን ቁልፍ ለማከል እና ቁልፎቻቸውን ያክሉ. ይህ አዲስ ተጠቃሚ ወደ ጣቢያው እንዴት እንደገባዎ ይሆናል.
በአዲሱ ተርሚናል ውስጥ ቀጥል እና አገልጋዩን እንደገና ይክፈቱ.
ssh team@XX.XX.XX.XX
የ SSS ቁልፍ እንዳለህ ሆኖ አሁን የይለፍ ቃል አያስፈልግዎትም. ጣቢያውን የበለጠ ደህንነቱ የተጠበቀ ለማድረግ በይለፍ ቃል ውስጥ በመለያ መግባት እንሰናክላለን.
አሁን, ይህ አገልጋይ በእሱ ላይ ምንም መረጃ ሳይኖር ሙሉ በሙሉ ባዶ ነው. እስቲ ፕሮጀክታችንን ከጂህ ጋር በመዝጋት እንጀምር ስለዚህ በርቀት ማቋረጫው ላይ ማውረድ እና ማሮጠፍ እንችላለን. ከሲ.ኤስ.ኤስ. ጋር በተገናኘው የርቀት አገልጋዩ ላይ በመጀመሪያ የ SSH ቁልፍዎን ያትሙ
cat ~/.ssh/id_rsa.pub
ቀጥሎም የ GIT ማከማቻችንን ለማቀናበር ከዚህ በፊት እንዳደረግነው ይህንን ቁልፍ ወደ ጌት ቅንብሮች ይለጥፉ. አሁን ፕሮጀክታችን በቀጥታ ለአገልጋዩ ማንሳት እንችላለን. ፕሮጀክቱን በአከባቢው መቆጣጠርዎን ያረጋግጡ, ስለሆነም ለማውረድ በ GIT አገልጋይ ላይ ነው.
git clone git://github.com/you/yourproject.git
ፍጹም. አሁን ሁሉም ፋይሎች እዚህ አሉ. እኛ ከ LS ጋር ማየት እንችላለን
ls
አሁን አገልጋዩን ማዋቀር እንጀምር. መጀመሪያ, የፕሮጀክትዎን ማውጫ ለፕሮጀክቱ የምንጠቀምባቸው ወደ ቀላል እና የማይረሳ ስም ይቅዱ.
cp -r yourproject whatyoucalledit
"የፕሮጄክትዎ አዲሱ ስም" የት ነው? ቀጥሎም አገልጋዩን ለማዘጋጀት መሰረታዊ መገልገያ መገንባት አለብን. ይህንን መገልገያ እናድራለን እናም ለወደፊቱ እንጠቀማለን. ይህንን መገልገያ ለመገንባት አንድ ስክሪፕትዎን እንዴት እንደርትሳሌን ለመግለጽ የተጠቃሚ ሁለትዮሽ ይፍጠር. ባሽን በመጠቀም, አርትዕ / ዩኤስኤ / ቢን / ፅሁፍ
sudo nano /usr/bin/ascript
ፋይሉን ለማርትዕ ፈቃዶች እንዲኖሩዎት በሱዶ መጠቀሙን ያረጋግጡ. በፋይሉ ውስጥ እነዚህን መስመሮች ያክሉ
# ! / ቢን / ባሽ
echo "# ! / ቢን / ባሽ ">> / USR / BIN / BIN / $ 1
ያስታውሱ ይህ ስክሪፕት የ "ስክሪፕቱን ስም, እንደ $ 1 የሚወስደውን ክርክሩን ይወስዳል. በመጀመሪያ ፋይሉ ካለ ወይም ከየትኛውም ነገር የሚፈጥር ከሆነ ስክሪፕቱን ለማውጣት የመጀመሪያውን መስመር ያክላል, ፍቃድ ላይ ይለውጣል, እና በስሙ ላይ ይለውጣል, እና ስሙን ለ / ECT / TESTERS / ETS / ETS / ETS / ETS / ETS / ETS / ETS / "ECT / ቅጂዎችን ያክላል. ፋይሉ አስቀድሞ ካለ, በቀላሉ ፈቃዶችን ይለውጡ እና ያርትዑ. ፋይሉን ያስቀምጡ, እና የሚቀጥለው ፈቃዶች እንደቀየረ እንለውጣለን. ይህንን ስክሪፕት እስካለን ድረስ ያንን እንደገና ማድረግ የለብንም.
sudo chmod a+x /usr/bin/ascript
ፍጹም. አሁን ማዋቀር የሚባል አንድ ስክሪፕት እንመልከት. በመጀመሪያ, ላለመሸነፍ ሳይሆን, የእኔ ያቀናጅ ስፕሪፕት ምን እንደሚመስል ይመልከቱ. ይህ ስክሪፕት በፕሮጄክትዎ ውስጥ ሊመስል በሚችለው ነገር ውስጥ እንሄዳለን, ለመጀመር በእጄ ውስጥ ሁሉንም ነገር አያስፈልጋቸውም.
# ! / ቢን / ባሽ
# sudo chmod a + x ስክሪፕቶች / የመገልገያዎች
# . Mssdripts/ussetup
# Ssh-Keygen
# የፕሮጀክት ማውጫ
# የምዝግብ ማስታወሻ ትዕዛዞች
# ናኖ ውቅረት
# Git ውቅር
# ዝመና እና ጭነት
# የ Sunmav angivirus ን ያንቁ
# የአስተናጋጅ ስም ያዘጋጁ
# ልጥፎች
# ማዋቀር የመረጃ ቋት ምትኬ
# Atpples ን ያሰናክሉ
# ቢትሪን ጫን
# ፖስታ ፖስታክስ
# ዱባዎችን ይፍጠሩ
# ማዋቀር ሾርት
# ጥገኛዎችን ያግኙ እና ይገንቡ
# ፋየርዎል ህጎችን ያዘጋጁ
# የ PYPI ጥገኛዎች መጫን
pip3 install --upgrade opencv-python # == 4.5.4.60
pip3 install --upgrade opencv-contrib-python # == 4.5.4.60
# PIP ጭነት COCKEV-Pytho == 4.5.5.64
# PIP ጭነት COCKV-ማበረታቻ - Pytho == 4.5.5.64
# PetorBot ን ይጫኑ
# የጨረራ ማስታወቂያ
# የመልእክት አገልጋዩን እንደገና ጫን
# CORSS CORSS
# sudo CP /etc /etncryry/live/femmmbabe.com/fivkeke.pm
# sudo CP /TEC/LELSENCRYPTED/live/femmmbabe.com/crt.pem Cent.pe
# Patch Venv
# የተጠቃሚ ቅንብሮችን ያዘጋጁ
# ፈቃዶችን ያዘጋጁ
# sudo ቾንኪንግ-ቡድን: ተጠቃሚዎች / VAR / ART / RED
# sudo ቾይየር ሥር: ሥሮች / አሂድ / ሱዶ / TS -r
# sudo chmod 664 DB.SSQLETEL3
# sudo የተቆራረጠ www -od-des: ተጠቃሚዎች DB.SSQLEET3
# ቅዳዎች ማዋቀር እና ፈቃዶችን ያዘጋጁ
# ማዋቀር የመረጃ ቋት
# ፓም pm ውቅሮች አወቃቀር እና የተሳሳቱ የ SASS ውቅረት ያስወግዱ
# Sudo Serd -i '' '$' '$ d'dc/pam.d/SSHD
# Sudo Serd -i '' '' $ $ D '/ ወዘተ / መገለጫ
# ቢን ስክሪፕቶችን ይቅዱ እና ፈቃዶችን ያዘጋጁ
# አገልግሎቶችን እንደገና ጫን እና ያነቃል
# የ APACHE ሞዱሎችን ያንቁ
# sudo a2dismodd Mpm_events
# sudo a2dismodd Mpm_Worker
# sudo a2nomood mpm_prorka
# ነባሪ ጣቢያ ያሰናክሉ
# ጣቢያችን ያንቁ
# ዳኒን እንደገና ይጫኑት እና አፋጣኝ, ፖስታክስ እና OPendkkim ን እንደገና ያስጀምሩ
# ፈቃዶችን ያዘጋጁ
# ውቅር
# የመግቢያ ሞተር
# ማዋቀር
# ለ <ጎራ ውቅር> APV6 እና OPendkim ን አሳይ
# ማዋቀር ተጠናቅቋል
ያ ብዙ ማዋቀር ነው! በአጭሩ, ይህ የኮዶች መመሪያዎች ትዕዛዞችን, የ Pubunds Apts ን (Pubunded als), Pubungense (Doviblase አገልጋዮችን ያዋቅሩ, የ Pythorns Repts ን ያዋቅራል, ገለልተኛነትን ያዋቅራል, ሪቪዥኒየስ, ሪቪዎችን, ክሎኖችን ያዋቅራል. ጥገኛዎች, የምስክር ወረቀቶችን ያወጣል, አወቃቀሮችን ያወጣል, ውቅር መጫዎቻዎችን ይጀምራል, የተዘበራረቀ, ፈቃዶች ያዘጋጃል, እና አይፒ, IPV6 አድራሻ እና የኦፕሬቲም ቁልፍን ያዘጋጃል. በትክክል ቀላል, ግን ብዙ ኮድ ይመስላል. እኛ ጥገኛዎች ስለሌለን, CLERY, CELERBEAT ወይም Damhne ስላልንም እኛ ብዙዎችን አያስፈልገንም, ግን የተወሰኑትን እንጫንላለን. ይህ ኮድ ብዙ ጊዜ እንዳወጀ ልብ በል.
እንዲሁም የጎራ ስም መግዛት አለብን (ይህም አነስተኛ አመታዊ ክፍያ ነው). ጎራውን ለመገዛት ካባቸውን ለመገዛት ካባቸውን እመክራለሁ, አቀማመጥም በቀላሉ ሊታወቅ እና ለመጠቀም ቀላል ነው. የመረጡት ማንኛውንም ጎራ ይግዙ, ነገር ግን እኔ የጎራ ፍሚቢቢቢቢያን በዚህ ምሳሌ ውስጥ እየተጠቀምኩ ነው. አንዴ ጎራ ከገዙ በኋላ ወደ ካሬፓይፕ ውቅር ፓነል እና ጎራዎን በአይፒ አድራሻ ወደ አገልጋይ ያክሉ ያክሉ. እንደዚህ ይመስላል
@ Xx.xx.xx.xx
አስተናጋጅ እንደመሆኑ አስተናጋጁ ከ <ኦፕሬተር> ጋር በዚህ ጎራ ስር ያሉ ሁሉንም ንዑስ ዓይነቶች እና የስራ ጎራ ከአገልጋዩ አቅጣጫ ያዙሩ. ለማወጅ የበለጠ መዝገቦች አሉ, ነገር ግን ደብዳቤ ለመላክ ዝግጁ ከሆንን በኋላ ወደ እነዚህ መንቀሳቀስ እንችላለን. ያስታውሱ ከአገልጋዩ በተሳካ ሁኔታ ለመላክ ከመቻልዎ በፊት ብዙ ቀናት ሊወስድ ይችላል. እኛ የምንቀራረቡ የዲን ሪኮርዶች ለማሰራጨት ጊዜ እንወስዳለን.
የሆነ ሆኖ መጀመር የምንፈልገው ብቸኛው መዝገብ መዝገብ ነው. ስለዚህ አሁን በፕሮጀክታችን መሠረት ከዚህ በታች ያለውን ስክሪፕት መሙላት እና አሮጫለን.
ለመሰረታዊ እድገት ምን እንደምንፈልግ ለመጫን በቀላሉ በትንሽ ማዋቀር ስክሪፕት እንጀምር. እኛ ብዙ ጥገኛዎችን ወይም ድህረ-ልግጎችን አንጠቀምም, መሰረታዊ የኤች ቲ ቲ ፒ አገልጋዩን እንጀምራለን እና ያ ሲያደርግ ስለ እሱ ማረጋገጫ ስለእሱ ማረጋገጫ እንጨነቃለሁ. ያስታውሱ, የኤችቲቲፒኤስ ሰርቲፊኬት ለማግኘት እና አገልጋዩን ደህንነቱ በተጠበቀ ሁኔታ ያሂዱ, ከአገልጋዩ ኪራይ ጋር አንድ ጎራ መግዛት አለብን. አሁን በዚህ ፋይል ውስጥ "ቡድና" በፕሮጄክትዎ ማውጫ ካለው "DIR" ስም ጋር, እና በኢሜልዎ እና ጎራዎን በ <መለያዎች> ስም ያቅርቡ.
በተጨማሪም, ይህንን ኮድ ከመሮጥዎ በፊት ቅንብሮቹን ወደ ፋየርዎል አቅራቢ አቅራቢ ደጋፊ ድጋፎችን መለወጥ አለብን, ካለ. ብዙውን ጊዜ ይህ በአስተናጋጅዎ አቅራቢዎ አቅራቢዎ አቅራቢዎ ውስጥ ነው, ወይም ራስ ወዳድነት ማስተናገድ ከሆንክ በ <Work ማስተላለፍ> ክፍል ውስጥ ነው. እንዲሁም የራስን ማስተናገድ የሚጠቀሙ ከሆኑ ከአገልጋይ ማሽንዎ አድራሻ ጋር ወደ ራውተር ማሽንዎ ጋር ለማዋቀር ይፈልጋሉ. የመነሻ / የፃፉትን መድረሻ የሚከተሉትን ወደቦች መክፈት ያስፈልግዎታል.
22 (ssh) 25 (ሜይል) 587 (ሜይል) 110 (የደብዳቤ ደንበኛ) 80 (ኤችቲቲፒ) 443 (ኤችቲቲፒኤስ)
# ! / ቢን / ባሽ
# የምዝግብ ማስታወሻ ትዕዛዞች
# ናኖ ውቅረት
# Git ውቅር
# ዝመና እና ጭነት
# የ Sunmav angivirus ን ያንቁ
# የአስተናጋጅ ስም ያዘጋጁ
# ማዋቀር የመረጃ ቋት ምትኬ
# Atpples ን ያሰናክሉ
# ማዋቀር ሾርት
# PetorBot ን ይጫኑ
# የጨረራ ማስታወቂያ
# የተጠቃሚ ቅንብሮችን ያዘጋጁ
# ፈቃዶችን ያዘጋጁ
# sudo ቾንኪንግ-ቡድን: ተጠቃሚዎች / VAR / ART / RED
# sudo ቾይየር ሥር: ሥሮች / አሂድ / ሱዶ / TS -r
# አገልግሎቶችን እንደገና ጫን እና ያነቃል
# የ APACHE ሞዱሎችን ያንቁ
# ዳኒን እንደገና ይጫኑት እና አፋጣኝ, ፖስታክስ እና OPendkkim ን እንደገና ያስጀምሩ
# ለ <ጎራ ውቅር> APV6 እና OPendkim ን አሳይ
ይህንን ኮድ ከመሮጥዎ በፊት እርስዎ የገዙት ጎራ ከአገልጋዩ ጋር የተገናኘ መሆኑን ያረጋግጡ. ይህንን ለማድረግ በአከባቢዎ ማሽን ላይ ተርሚናል ይክፈቱ እና ይህንን ትእዛዝ ከጎራዎ ጋር ያሂዱ-
ping femmebabe.com # ከፒንግ በኋላ ጎራዎን እዚህ ያስገቡ
ሁሉም ጥሩ ቢመስሉ እና አገልጋዩ ምላሾችን የሚልክ ከሆነ, ስክሪፕቱን ለማሮጠፍ እና የ APAChe አገልጋዩን ማንቃት እና ለማረጋገጥ ዝግጁ ነን.
ይህ ሁሉ የፖስታ ስፋክስን ለማዋቀር የሚያስፈልጉት ማዋቀር አይደለም, ከዚያ በኋላ ያንን ማዋቀር እንመለከታለን. ለአሁን, ለዚህ ማዋቀር ኮድን ያሂዱ እና አገልጋይዎን ለመጫን እና ለማረጋገጥ ጥቂት ደቂቃዎችን መውሰድ አለበት. እንደገና በተገዛው ስም መሠረት በስክዱቱ ውስጥ ስም, ኢሜል እና የጎራ ስም መተካትዎን ያረጋግጡ.
አሁን አገልጋዩ በማናቸውም የድር አሳሽ ውስጥ ወደ ዩ.አር.ኤል. መሄድ እና አገልጋዩ https እየሮጠ መሆኑን ለማረጋገጥ ያረጋግጡ. ካልሆነ, ለዲ ኤን ኤስ ሪኮርዶች ለማካሄድ እና ከዚያ በኋላ የ PROBOBOT ማረጋገጫ የምስክር ወረቀት ለመሞከር የሚከተሉትን ትዕዛዝ ለማካሄድ ጥቂት ጊዜ ለመጠባበቅ ይሞክሩ.
sudo certbot --apache --non-interactive --agree-tos --domains <domain>.com --email <youremail>@gmail.com
ሁሉንም ነገር በትክክል ካዋቀሩበት ጊዜ ሁሉ, ኮድዎ የሚሠራ እና የሚያሳይ መሆኑን ለማወቅ የ Apache ነባሪ ገጽን መድረስ መቻል አለብዎት. ቀጥሎም ነባሪውን የአድራሻ ሁነታችንን ወደ ምርት ለመለወጥ ቅንብሮቹን አርትዕ. እንዲሁም ጎራውን በቅንብሮች ውስጥ እንዲሁም ውስጣዊ IPS ን እናዋቅራለን.
nano yourproject/settings.py
በቅንብሮች ውስጥ, እነዚህን መስመሮች ይለውጡ / ያክሉ.
# የጣቢያ ውቅረት
አሁን, APACHache2 ማዋቀር አለብን. እስቲ በዚህ መስመር ያሰማንን ውቅያኖስ ፋይል አርትዕ
sudo nano /etc/apache2/sites-available/femmebabe-le-ssl.conf
ይህ ያዋቅሩ ፋይል በውስጡ የጎራ ስም ሊኖረው ይገባል, እና የተጠቃሚው እና የፕሮጀክት ስም. እኔ የጎራ ስም የ <የተጠቃሚ ስም> ን, የተጠቃሚ ስም ቡድን እና የፕሮጀክቱ ስም Femmambabe እየተጠቀምኩ ነው.
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>
አገልጋይዎን በሚያዋቅሩበት ጊዜ የፕሮጀክቱን, ዳይሬክተሮችን ስም, ዳሬቶችን እና ጎራን በመተካት ያረጋግጡ. አሁን, ነባሪውን ጣቢያ ማሰናከል አለብን. ይህ መሰናክል ሊከናወን ይችላል.
sudo a2dissite 000-default-le-ssl
sudo a2dissite 000-default
sudo a2dissite default-ssl
ቀጥሎም ነባሪውን ጣቢያ ማንቃት እና ኤ.ፒ.ኬ. በ / ETC / APACHER / PASTACHER / PASTACH / ጣቢያዎች በሚገኙበት ጊዜ / በማወጅዎ መሠረት የ FEMMEBABE ን / መተካትዎን ያስታውሱ /.
sudo a2ensite femmebabe-le-ssl
sudo systemctl reload apache2
በ NANGARAR ውስጥ ወደ ጎራዎ ይመለሱ. በድርዎ አሳሽዎ ውስጥ የተዋቀሩትን ጣቢያ ማየት አለብዎት. እንኳን ደስ አለዎት! ካላዩ የተወሰኑ ለውጦችን ማድረግ ያስፈልግዎት ይሆናል. በፕሮጄክትዎ ውስጥ ያሉ ቅንብሮችን በጥንቃቄ ይገምግሙ, የአፕኪ ውቅር እና ምንም ስህተት እንደሌለዎት እና የሚከተሉትን ትዕዛዞች ለመፈተሽ የሚከተሉትን ትዕዛዞች ለማካሄድ.
cd projectname
source venv/bin/activate
python manage.py check
በ Python ፕሮጀክትዎ ውስጥ ስህተቶች ካሉዎት, ወደሚኖሩበት ቦታ ይከታተሉ እና ያስተካክሏቸው. ሁሉም ስህተቶችዎ እንደ ሚያዩበት ቦታ ሁሉ ማየት አይችሉም, ስለሆነም በቀላሉ "ስርአት ስራ አይደለም" ስህተቱን ለማጋለጥ በእውነተኛው አካባቢ ውስጥ የሚከተለውን ፋይል ያርትዑ, ስህተቱን ለማጋለጥ.
nano venv/lib/python3.12/site-packages/django/apps/registry.py
ይህ የአስቴር ስህተት ("Runtomererrer (" Runtomererror ("ብራ /" ን በማነሳሳት). ከዚያ ከዚህ መስመር በፊት አስተያየት ያክሉ, ከዚያ ተመሳሳይ የመግቢያ ሁኔታ, እራስን ማከል, እራስን ማከል, ራስጌ. ይህ እንደዚህ ይመስላል
# የመደበኛ መተግበሪያዎችን ለማስቀረት የታቀሙ ጥሪዎችን ይከላከሉ. አሁን ()
# ዘዴዎች ሁለት ጊዜ.
# Runtomenmerrer ን ከፍ ለማድረግ ("ሀራፊታ () ተጓዳኝ አይደለም")
ከዚያ ፕሮጀክቱን እንደገና ማረጋገጥ እና ስህተቱን ያጋልጡ.
python manage.py check
ከዚያ ስህተቱን ማየት እና ማስተካከል ይችላሉ. ሲያስቀምጡ እና ኮዱ ከሌለው ስህተቶች ጋር ያተኮሩ, ፋይሉን መልሰው መለወጥዎን ያረጋግጡ ስለዚህ
# የመደበኛ መተግበሪያዎችን ለማስቀረት የታቀሙ ጥሪዎችን ይከላከሉ. አሁን ()
# ዘዴዎች ሁለት ጊዜ.
# እራስዎ .APP_Configs = {}
አገልጋዩ በመስመር ላይ የሚገኝ ከሆነ, በዚህ ላይ ተጨማሪ ለውጦች ስናደርግ አገልጋዩን እንደገና ለመጫን የሚከተሉትን ትዕዛዙ መጠቀም አለብን-
sudo systemctl reload apache2
ደስ የሚል! ግን ደብዳቤ መላክስ? ኢሜል የመላክን ለመጀመር በመጀመሪያ የጎራ ውቅር ማዘመን አለብን. ይህ በዲ ኤን ኤስ ፓነል ውስጥ በዲ ኤን ኤስ ፓነል ውስጥ መሆን አለበት, ወይም እርስዎ የመረጡት የጎራ ስም መዝጋቢ. እንዲሁም ውቅር መጫን እና ማከል እና ጥቂት ትዕዛዞችን ማካሄድ አለብን.
በመጀመሪያ የአገልጋዩን የአይ.ፒ.ኤል አድራሻ እናድርግ. ከዚያ ዲ ኤን ኤስዎን እንከፍታለን እና መዝገቦቹን ያክሉ.
የአገልጋዩ የአይፒ.ቪ6 አድራሻ ለማግኘት ይህንን ትእዛዝ ይጠቀሙ-
ip -6 addr
አሁን, የሚከተሉትን መዝገቦች ለዲ ኤን ኤስ ቅንብሮች ማከል እንችላለን. የእኔ መዝገቦች እንደዚህ ይመስላል. ሆኖም, ለመረጃዎችዎ የአይፒ አድራሻዎን ከአይፒዎ ጋር መተካት አለብዎት (75.147.182.214, ያ የእኔ ነው). እንዲሁም በ Femmbabe.com አማካኝነት የ <ipv6 አድራሻ> ን ያክሉ. ለ DOMMYYY አይጨነቁ, ይህ የተፈጠረው የፖስታ አድራሻችን, የመልእክት አገልጋዩን, ከ Oyendkkim ጋር እና ቁልፉን ለማተም ሲያስቀምጥን ነው. ይህንን የመጨረሻ እናዋቅራለን.
@ ሀ N / a 75.147.182.214
@ Mx 10 Femmebabe.com
@ PTR N / a Femmebabe.com
@ Txt N / a TXT @ v = SPF1 MX IP75.147.182.214IN6: FE80 ::75A: FFF: FF4: 3: 3E02 ~ ሁሉም
ነባሪ ._ቢሚ Txt N / a v = BIII1; l = htmmmebabe.com/femmmabe.com/mabia/steatic/femmbmabe.svg
_darmac Txt N / a v = dararc1; p = የለም
ላክሎ__ሚዚዚክስ
Txt
N / a
አሁን, ለድህረ ፊክስ ለአንዳንድ የጥንት ቅጥር ውቅር ማከል አለብን. እኛ ማድረግ ያለብን ነገር ቢኖር የጎራ ስም, Femmebabe.com መተካትዎን ማረጋገጥ መሆኑን ማረጋገጥ ነው. እስቲ ሁሉንም ያዋቅሩ ፋይሎችን አንድ በአንድ በአንድ እንዲመረቁ እና እንይ, በፕሮጄክት ውስጥ ውቅያኖስ በተባለው ማውጫ ውስጥ ይጫኗቸው.
nano config/etc_postfix_main.cf
ይህንን ጽሑፍ ወደ ፋይል ያክሉ
# አስተያየት ሰጥቶ ለተጠቀሰው, የበለጠ የተሟላ ስሪት
# ዲዳይያን ልዩ: የፋይል ስም መግለፅ የመጀመሪያውን ያስከትላል
# የዚያ ፋይል መስመር እንደ ስም ጥቅም ላይ ይውላል. ዲዳዊው ነባሪ
# ነው / ወዘተ / ሜይል ስም.
# myrigin = / ወዘተ / የደብዳቤ ስም
# ማስገጣጠም. ሰዶማውያን የ Muua ሥራ ነው.
# የሚቀጥለው መስመር "የዘገየ ደብዳቤ" ማስጠንቀቂያዎች ለማመንጨት ቀጣዩ መስመር
# መዘግየት_አድሪንግ_አድግ = 4h
# Http://www.postfix.org/complity_ramme.html - ነባሪ ወደ 3.6 በርቷል
# ትኩስ ጭነቶች.
# Tls መለኪያዎች
# ሚሊተር ውቅር
የሚቀጥለው ያዋቅሩ!
nano config/etc_postfix_master.cf
እነዚህን መስመሮች ያክሉ
#
# የፖስታክስ No ማስተር ሂደት አወቃቀር ፋይል. ቅርጸት ላይ ዝርዝሮችን ለማግኘት
# የፋይሉ (5) ጥንድ ገጽ (ትእዛዝ: - "ሰው 5 ጌታ" ወይም
# በመስመር ላይ: - http://www.pestfix.org/master.5.html).
#
# ይህንን ፋይል አርትዕ ከተለማመዱ በኋላ "የፖስታክስ እንደገና መጫን" መፈፀም አይርሱ.
#
# ==========================================================================
# የአገልግሎት አይነት የግል የ UPRAV PROOOT MAXPRAC PROXPROC + አርባዎች
# (አዎ) (አዎ) (አይ) (በጭራሽ) (በጭራሽ) (100)
# ==========================================================================
# SMTP Inet n - y - 1 ድህረ ማያ ገጽ
# SMTPD Pass - - y - - SMTPD
# DSSBLOL UNIX - - y - 0 ዲ.ኤስ.ቢ.ቢ.
# TLSCroxy ዩኒክስ - - y - 0 TLSProxy
# አንዱን ይምረጡ-ለ LOPBack ደንበኞች ብቻ, ወይም ለማንኛውም ደንበኛ.
# 127.0.0.1:subrition inest n - y - - SMTPD
# - ኦይስ_ ስም = ፖስታፊክስ / ማስገቢያ
# - Mo SMTPD_TLE_SCAME_ELELELED = ኢንክሪፕት
# - Mo SMTPD_SASL_AUT_HASH_EHACH = አዎ
# - Mo SMTPD_TLS_AUH_OUNY = አዎ
# - O SMETPD_Unust_uney_reavery = የለም
# - O SMTPD_CLINE_CHENTERSERS = $ MAUA_CLINE_PRANTICES
# - Mo SMTPD_helo_hations = $ $ Muu_heol_ መሃል
# - O SMTPD_ESDED_essix_essions = $ Muud_sendy_serrices
# - Mo SMTPD_ATIME_CREARSERSES =
# - Mo SMTPD_RELY_ARESICES = ፈቃድ_አስተንስ አረጋግጥ, ውድቅ
# - merer_macro_do_amo_ ስም = ስም
# ይምረጡ አንድ ይምረጡ-STTPS ን ለ LOPBack ደንበኞች ብቻ, ወይም ለማንኛውም ደንበኛ.
# 127.0.0.0. 15. 15.MMPS Inet n - y - SMTPD
# smatps intet n - y - yo- matpd
# - ኦው ዚዚንግ_ ስም = ፖስታፊክስ / SMTPs
# - Mo SMTPD_TRE_TRAPEDEDE = አዎ
# - Mo SMTPD_SASL_AUT_HASH_EHACH = አዎ
# - O SMETPD_Unust_uney_reavery = የለም
# - O SMTPD_CLINE_CHENTERSERS = $ MAUA_CLINE_PRANTICES
# - Mo SMTPD_helo_hations = $ $ Muu_heol_ መሃል
# - O SMTPD_ESDED_essix_essions = $ Muud_sendy_serrices
# - Mo SMTPD_ATIME_CREARSERSES =
# - Mo SMTPD_RELY_ARESICES = ፈቃድ_አስተንስ አረጋግጥ, ውድቅ
# - merer_macro_do_amo_ ስም = ስም
# 628 ኢንቴ vet n - y - qmqpd
# QMGR ዩኒክስ n - n 300 qgrr
# - Mo SMTP_helo_ MoTUT = 5-Mo SMTP_CONENECT_ATE = 5
#
# ====================================================================
# በፖስታ-አልባነት-አልባነት-አልባ ሶፍትዌሮች. መመሪያውን መመርመርዎን ያረጋግጡ
# የፖስታ ስም-አልባ ጣውላዎች ምን ያህል አማራጮችን እንደሚፈልጉ ለማወቅ ገጾች.
#
# ብዙዎቹ የሚከተሉት አገልግሎቶች የፖስታክስ ፓይፕ (8) አቅርቦት ይጠቀማሉ
# ወኪል. ስለ $ {ተቀባዮች} መረጃ ለማግኘት ቧንቧውን (8) የሰዎች ገጽ ይመልከቱ
# እና ሌሎች የመልእክት ፖስታ አማራጮች.
# ====================================================================
#
# Maildarrop. ለዝርዝር የፖስታክስ MASIDRAPSIME ፋይል ይመልከቱ.
# እንዲሁም በዋናነት ውስጥ ይግለጹ: - Modildrop_duct_ureaty_limate = 1
#
#
# ====================================================================
#
# የቅርብ ጊዜ ቂሮስ ስሪቶች አሁን ያለውን "LMTP" ማስተር. C ግቤት መጠቀም ይችላሉ.
#
# በ cyrus.conf ውስጥ ይግለጹ
# LMTP CMD = "LMTPD -" አከባቢ = "አካባቢያዊ: ኤል.ኤም.ፒ.
#
# ከሚከተሉት ወይም ከዚያ በላይ በሚከተፉ ውስጥ ይግለጹ
# የመልእክት ሳጥን_TRANSSTER = LMTP: Inet: አካባቢያዊ
# ምናባዊ_ቲንስፖርት / LMTP: Inet: - አካባቢያዊ
#
# ====================================================================
#
# ቂሮስ 2.1.5 (አሞጽ guuuuux)
# እንዲሁም በዋናነት. Cf: ሳይሮስ_ዲካል_አድሪ_ቂያ = 1
#
# ቂሮስ ዩኒክስ - n n - - ቧንቧ
# ባንዲራዎች = ARAX ተጠቃሚ = ቂሮስ አርግራቪ = / ቂሮስ / ቢን / ሰጪ $ {{ቅጥያ}
#
# ====================================================================
# በቂሮስ በኩል የመላክ ምሳሌ.
#
# አሮጌ-ቂሮስ ዩኒክስ - n n - ቧንቧ
# ባንዲራዎች = r ተጠቃሚ = ቂሮስ አርግ = / ቂሮስ / ቢን / ማቀናድ - {ኤች.አይ.ኤል.
#
# ====================================================================
#
# ለዋቅሩ ዝርዝሮች ዝርዝር የፖስታክስ UUCP_UPSIME ፋይልን ይመልከቱ.
#
#
# ሌሎች የውጭ ማቅረቢያ ዘዴዎች.
#
እና የኦፕሬዲም ውቅር. Oyendkim የበለጠ ደህንነቱ የተጠበቀ ለማድረግ ከጎራ ቁልፎች ጋር የኢሜል አገልጋዮችን ይለያል. ያለ እሱ አይደለም, ደብዳቤ አልተፈረመ እናም ወደ የገቢ መልእክት ሳጥን ላይሰራ ይችላል.
nano config/etc_default_opendkim
እነዚህን መስመሮች ያክሉ
# ማሳሰቢያ-ይህ የፍትህ ውቅር ፋይል ነው. እሱ በኦፕሪንግኪም ጥቅም ላይ አይውልም
# የስርዓት አገልግሎት. እባክዎን ተጓዳኝ የውቅረት መለኪያዎች ውስጥ ይጠቀሙ
# በምትኩ /etc/opendkkim.cons.
#
# ከዚህ ቀደም አንድ ሰው ነባሪ ቅንብሮችን እዚህ ያርትዑ, ከዚያ ይፈጸማል
# /Lib/openkim/opendkkim.service.Service.service ፋይሎችን በ ላይ ለማመንጨት
# /etc/2symdd/system/opendkim.orservic.d/verider.conf እና
# /etc/tmpless.d/peldkkim.conf. ይህ አሁንም ቢሆን የሚቻል ቢሆንም, አሁን ነው
# ቅንብሮቹን በቀጥታ ውስጥ በቀጥታ /etc/ypendkim.cons ለማስተካከል ይመከራል.
#
# Deemon_opts = ""
# የዩኒክስ ሶኬት ለመጠቀም ወደ / VAR / SPOL / POSOL / POSTIX / Podndkim ለውጥ
# በ chroot ውስጥ ፖስታክስ
# Rundir = / VAL / SPOL / POSOLE / POSTIX / Drive / homendkim
#
# ተለዋጭ ሶኬት ለመጥቀስ ምቹ
# ማሳሰቢያ ማቀናበር ከኦፕሪንግኪም. Consf ውስጥ ማንኛውንም ሶኬት እሴት እንደሚሽከረክር ልብ ይበሉ
# ነባሪ
# በፖርት 54321 ላይ ሁሉንም በይነገጽዎች ላይ ያዳምጡ-
# ሶኬት = Inet: 54321
# በፖርት 12344 ላይ LOPBack ላይ ያዳምጡ
# ሶኬት = Inet: 12345 @ አካባቢያዊ
# በ 192.0.2.1 ላይ አድምጡ
# ሶኬት = Inet: 12345@192.1.1
nano config/etc_dovecot_conf.d_10-master.conf
እነዚህን መስመሮች ያክሉ
# ነባሪ_- ፕሮፌሽናል_LEAL = 100
# ነባሪ_ክሊየን_ቂያ = 1000
# ነባሪ vsz (ምናባዊ ማህደረ ትውስታ መጠን) ለአገልግሎት ሂደቶች. ይህ በዋነኝነት ነው
# ከመብላትዎ በፊት የሚደክሙ ሂደቶችን ለመያዝ እና ለመግደል የታሰበ ነበር
# ሁሉም ነገር.
# ነባሪ_vsz_lodit = 256M
# የመግቢያ ተጠቃሚ በመግቢያ ሂደቶች በመለያ ተጠቅሟል. ይህ በጣም ያልተረጋገጠ ነው
# በ DoveCoT ስርዓት ውስጥ ተጠቃሚ. በጭራሽ ማንኛውንም ነገር መድረስ የለበትም.
# ነባሪ_.ዮግላይንግ_ተር = ቤንቨንግ
# ውስጣዊ ተጠቃሚ ባልተሸፈነ ሂደቶች ጥቅም ላይ ይውላል. እሱ ከየት መሆን አለበት
# የመግቢያ ተጠቃሚ, ስለዚህ የመግቢያ ሂደቶች ሌሎች ሂደቶችን ሊረብሹ አይችሉም.
# ነባሪ_አስፈፃሚዎች_ቁጥር = DOVECOT
# ወደብ = 143
# ወደብ = 993
# SSL = አዎ
# አዲስ ሂደት ከመጀመርዎ በፊት የሚተላለፉ ግንኙነቶች ብዛት. በተለምዶ
# ብቸኛው ጠቃሚ እሴቶች 0 (ያልተገደበ) ወይም 1 ናቸው. 1 የበለጠ ደህንነቱ የተጠበቀ ነው, ግን 0
# ፈጣን ነው. <ዶክ / ዊኪ / ግመልክቴሽን
# አገልግሎት_ከን = 1
# ሁልጊዜ ተጨማሪ ግንኙነቶችን መጠበቅዎን ለመቀጠል የሂደቶች ብዛት.
# ሒሳብ_ሚን_አቫል = 0
# አገልግሎት ካዘጋጁ = 0, 0, ይህንን ማደግ ያስፈልግዎታል.
# vsz_limit = $ Dife_vsz_imit
# ወደብ = 110
# ወደብ = 995
# SSL = አዎ
# ወደብ = 587
# ከዚህ በላይ የዩኤስኤክስክስ ሶኬት መጠቀም ካልቻሉ ብቻ የቲኔት ደራሲን ይፍጠሩ
# ITET_LELIENERNER LMTP {
# ለጠቅላላው በይነመረብ ሊታይ የሚችል ኤል.ኤም.ፒ.
# አድራሻ =
# ወደብ =
# }
# አብዛኛዎቹ ትውስታ ወደ MMAP () ፋይሎችን ማወጅ ነው. ይህንን ማሳደግ ያስፈልግዎት ይሆናል
# ከፍተኛ የመልእክት ሳጥኖች ካሉዎት ይገድቡ.
# vsz_limit = $ Dife_vsz_imit
# ማክስ. የ IMAP ሂደቶች ብዛት (ግንኙነቶች)
# የሂደት_ቂያ = 1024
# ማክስ. የ POP3 ሂደቶች ብዛት (ግንኙነቶች)
# የሂደት_ቂያ = 1024
# ማክስ. የ SMTP የማስረከቢያ ሂደቶች ቁጥር (ግንኙነቶች)
# የሂደት_ቂያ = 1024
# Auth_Soccate_PATT ወደዚህ ተጠቃሚ የተጠቃሚዎች ሶኬት በነባሪነት. በተለምዶ ነው
# በ DeveCoT-Edda, Doveadm, ምናልባትም dovead ሂደት, ወዘተ የሚሆኑት
# ለዚህ መሰኪያ ሙሉ ፈቃዶች የሁሉም የተጠቃሚ ስሞች ዝርዝር ማግኘት ይችላሉ እና
# የሁሉም ሰው የተጠቃሚ መፈለጊያዎችን ውጤት ያግኙ.
#
# ነባሪው 0666 ሞድ ማንኛውም ሰው ከአጭሩ ወደ ሶኬት እንዲገናኝ ያስችለዋል, ግን የ
# ተጠቃሚው ፍለጋዎች ይሳካሉ ተጠቃሚው "UID" መስክ የሚመልስ ከሆነ ብቻ ነው
# የደዋዩን ሂደት UID ጋር ይዛመዳል. እንዲሁም የደዋይ ዩድ ወይም GID ከ ጋር የሚዛመድ ከሆነ
# መሰኪያ USID ወይም GID Checkuoce ይጫወታል. ሌላ ማንኛውም ነገር ውድቀትን ያስከትላል.
#
# ሁሉንም ተጠቃሚዎች ለመፈለግ የደዋዩን ሙሉ ፈቃዶች ለመስጠት ሁነኛውን ወደ
# ከ 0666 (ከ 0666) ውስጥ ሌላ የሆነ ነገር የከርሰሙ ፍሰቱ እንዲፈጽም ያስችለዋል
# ፈቃዶች (E.g. 0777 ሁሉም ሰው ሙሉ ፈቃዶችን ይፈቅድላቸዋል).
# የመኪና አሠራተኛ ሂደት በነባሪነት እንደ ስርጭት ነው, ምክንያቱም እንዲደርስበት
# / ወዘተ / ጥላ. ይህ አስፈላጊ ካልሆነ ተጠቃሚው ወደ መለወጥ አለበት
# $ ነባሪ_አሳሾች.
# የተጠቃሚ = ሥር
# ዲክአፕ ተኪ ጥቅም ላይ የሚውል ከሆነ የመልእክት ሂደቶች ወደ ሶፖሌው መድረስ አለባቸው.
# ለምሳሌ: ሞድ = 0660, ቡድን = VILIE እና ዓለም አቀፍ የመልእክት_ARAROUPS = VILAIT
# ሁናቴ = 0600
# ተጠቃሚ =
# ቡድን =
እንደገና በተመረጡበት ጎራ ውስጥ አንድ ጊዜ እንደገና በነዚህ ሁሉ ፋይሎች, በ FEMMEBABS.com መተካትዎን ያረጋግጡ. የሚቀጥለውን ፋይል አርትዕ, የቤት ውስጥ ውቅያኖስ,
nano config/etc_dovecot_dovecot
እና እነዚህን መስመሮች ያክሉ
## የቤት ውስጥ ውቅር ፋይል
# በችኮላ ውስጥ ከሆኑ http://wiki2.dove.org.org/kickconcongreation ይመልከቱ
# "Doveconf-n" ትዕዛዝ የተለወጠ ቅንብሮች ንጹህ ውፅዓት ይሰጣል. ተጠቀሙበት
# ወደ DEVECOT የደብዳቤ መላኪያ ዝርዝር ውስጥ በሚለጠፉበት ጊዜ ፋይሎችን ከመግዛት ይልቅ ፋይሎችን እና ማገዶዎችን ከመቅዳት ይልቅ.
# '# እንደ አስተያየቶች ከተያዙ በኋላ "ቁምፊ እና ሁሉም ነገር. ተጨማሪ ቦታዎች
# እና ትሮች ችላ ተብለዋል. ከእነዚህ ውስጥ አንዱን በግልፅ ለመጠቀም ከፈለጉ, ያስገቡት
# value inside quotes, eg.: key = "# ቻር እና ነጠብጣብ ነጩነት "
# በጣም (ግን ሁሉም አይደሉም) ቅንብሮች በተለያዩ ፕሮቶኮሎች እና / ወይም
# ለምሳሌ ቅንብሮችን በክፍል ውስጥ በማስቀመጥ ምንጭ / መድረሻ አይፒዎች
# ፕሮቶኮል ኢምፕ {}, የአከባቢ 127.0.0.1 {}, የርቀት 10.0.0.0.0/8}
# ነባሪ ዋጋዎች ለእያንዳንዱ ቅንብር ይታያሉ, ለጉዳት አይጠየቅም
# እነዚያ. እነዚህ ከዚህ በስተቀር ከዚህ የተለየ ናቸው: - ምንም ክፍሎች (ኢ.ጂ.ጂ.ግ የስም ቦታ) የለም (ለምሳሌ)
# ወይም ተሰኪ ቅንብሮች በነባሪ ይታከላሉ, እንደ ምሳሌዎች ብቻ ተዘርዝረዋል.
# መንገዶች እንዲሁ በማዋቀር ላይ በመመርኮዝ ከእውነተኛው ነባሪዎች ጋር ብቻ ምሳሌዎች ናቸው
# አማራጮች. እዚህ የተዘረዘሩት ዱካዎች ለማዋቀር - ፒፒክስ = / USR
# ---Ssconfird = / ETC - LACOCLASERIERIR = / var
# የተጫኑ ፕሮቶኮሎችን ያንቁ
# አንድ ኮማ ለግዥዎች ለማዳመጥ የት እንደሚሰሙ የ IPS ወይም አስተናጋጆች ዝርዝር.
# "*" ሁሉንም የአይፒ.ቪ.ሲ.ሲ.ሲ.
# ነዳጅ ያልሆኑ ወደቦች ወይም ተጨማሪ ውስብስብ የሆነ ማንኛውንም ነገር መግለጥን ከፈለጉ,
# አርትዕ ኮንፈረንስ አርትዕ. ዲ / ማስተርስ.
# ያዳምጡ = * ::
# የአርቱን ጊዜ ውሂብ ለማከማቸት የመለያ ማውጫ.
# ቤዝ_ዲር = / VARIR / RED / Drive / dovecot /
# የዚህ ስም ስም. ባለብዙ-ለምሳሌ ማዋቀር Doveadm እና ሌሎች ትዕዛዞችን
# ጥቅም ላይ የሚውለው (አማራጭ አማራጭን ለመምረጥ (ለምሳሌ አማራጭ_ ስም) መጠቀም ይችላል
# ወደ -C <Congs condivation>). ምሳሌው ስም እንዲሁ ወደ DEVECOT ሂደቶች ታክሏል
# በ PS ውጤት.
# ምሳሌ_ ስም = DOVECOT
# ለደንበኞች ሰላምታ መልእክት.
# የመግቢያ_ DOVECOT ዝግጁ.
# የተስተካከለ የታመነ የአውታረ መረብ ዝርዝር. ከእነዚህ ውስጥ ግንኙነቶች
# አይፒፒዎች የአይፒ አድራሻዎቻቸውን እና ወደቦች እንዲሽከረከሩ ይፈቀድላቸዋል (ለመመዝገብ እና
# ለማረጋገጫ ቼኮች). አሰናክል_ፕላንቲንቴድ_አድስም ችላ ተብሏል
# እነዚህ አውታረመረቦች. በተለምዶ የእርስዎን IMAP PRIER አገልጋዮች እዚህ ይጥሉ.
# የመግቢያ_አድግ_ግሮች =
# የቦታ የተለዩ የመግቢያ መዳረሻ የመዳረሻ መተግበሪያዎች (ኢ.ግ.ቲ. GCPWAP)
# የመግቢያ_ቂያ_አስተያየት =
# በ Proxy_maybe = አዎ የተኪ መዳረሻ ከነዚህ IPS ጋር የሚዛመድ ከሆነ, አታድርግ
# Proxuto ይህ በተለምዶ አስፈላጊ አይደለም, ግን መድረሻው ከሆነ ጠቃሚ ሊሆን ይችላል
# አይፒ.ግ ነው. የመጫኛ ቀሪ ሂሳብ አይፒ.
# Auth_Proxy_ ከራስ =
# ተጨማሪ የ Reboose ሂደት ርዕሶችን (PS) ያሳዩ. በአሁኑ ጊዜ የተጠቃሚ ስም እና
# የአይፒ አድራሻ. በእውነቱ የ IMAP ሂደቶችን የሚጠቀሙ ማን እንደሆነ ለመመልከት ጠቃሚ ነው
# (ለምሳሌ. የተጋሩ የመልእክት ሳጥኖች ወይም ተመሳሳይ UID ለበርካታ መለያዎች ጥቅም ላይ ከዋሉ).
# exboose_proptitle = የለም
# የ DoveCoat ማስተር ሂደት ሲዘጋ ሁሉም ሂደቶች መገደል አለባቸው.
# ይህንን ወደ "አይ" ማቀናበር, ርዴኮት ያለ ሊሻሻል ይችላል ማለት ነው
# አሁን ያሉትን የደንበኛ ግንኙነቶች ለማስገደድ (ምንም እንኳን ቢቻልም
# ማሻሻያው ኢ.ሲ.ግ. በደህንነት ጥገና ምክንያት).
# መዘጋት_የተሰወራውያን = አዎ
# ዜሮ ካልሆኑ, በዚህ በብዙ ግንኙነቶች ወደ DoveVADM አገልጋይ በኩል,
# በተመሳሳይ ሂደት ውስጥ በቀጥታ ከማሮጠጥ ይልቅ.
# Doveadm_Worker_count = 0
# የዩኒክስ ሶኬት ወይም አስተናጋጅ: ከዶቭድድ አገልጋይ ጋር ለመገናኘት የሚያገለግል ወደብ
# Doveadm_cocccke_PATH = doveade- አገልጋይ
# በ DOVCOCOT ላይ የተጠበቁ የአካባቢ ተለዋዋጮች ዝርዝር
# የመነሻ እና ለሁሉም የሕፃናት ሂደቶች ተሻሽሏል. እንዲሁም መስጠት ይችላሉ
# ቁልፍ = ሁልጊዜ የተወሰኑ ቅንብሮችን ለማዘጋጀት ጥንዶች.
# አስመጪ_አስፈላጊነት = tz
##
## የመዝገበ-ቃላት የአገልጋይ ቅንብሮች
##
# መዝገበ ቃላት ቁልፍን ለማከማቸት ቁልፍ = እሴት ዝርዝሮችን ለማከማቸት ሊያገለግል ይችላል. ይህ በብዙዎች ጥቅም ላይ ይውላል
# ተሰኪዎች. መዝገበ-ቃላቱ በቀጥታም ሆነ ቢሆንም, ምንም እንኳን በቀጥታ ሊገኝ ይችላል
# መዝገበ-ቃላት አገልጋይ. የሚከተለው ዲክሪፕ የካርታዎች መዝገበ ቃላት ስሞች ወደ ኡስተሮች ያግዳል
# አገልጋዩ ጥቅም ላይ ሲውል. እነዚህ በቅርፃ ቅርጸት Uris ን በመጠቀም ሊጠቀሱ ይችላሉ
# "ተኪ :: ስም>".
# ኮታ = MySQL: - /etc/dovov/dovelova-dit-ovsq.box.e
# አብዛኛዎቹ ትክክለኛ ውቅረት ከዚህ በታች ይካተታሉ. የፋይል ስሞች ናቸው
# በመጀመሪያ በ ASCII እሴት የተሰራ ሲሆን በዚያ ትእዛዝ ውስጥ ተተክሏል. የ 00-ቅድመ-ቅጥያዎች
# በፋይል ስሞች ውስጥ ሥርዓቱን ለመረዳት ቀላል ለማድረግ የታሰቡ ናቸው.
# ውቅሮች ፋይል እንዲሁ ስህተት ሳይሰጥ ለመካተት ሊሞክር ይችላል
# አልተገኘም
# DoveCot ሁሉንም የግቤት ግንኙነቶች ለማዳመጥ ያስችላል (IPV4 / IPV6)
ለ DoveCoT ተጠቃሚ የይለፍ ቃል ያክሉ
nano config/etc_dovecot_passwd
የአንጀት የመጀመሪያ ክፍል, አሎን ከመምጣቱ በፊት የተጠቃሚ ስም ነው. የመጨረሻው ክፍል, "የ" ፍሰት ", የመልእክት አገልጋይዎን ሊሰጡዎት የሚፈልጉትን የይለፍ ቃል ያመለክታል.
team:{plain}yourpassword
ቀጥሎም ኦፕሬይኪም አዋቅር
nano config/etc_opendkim.conf
እና እነዚህን መስመሮች ያክሉ
# ይህ ለመፈረም እና ማረጋገጥን የመሠረታዊ ውቅር ነው. በቀላሉ ሊሆን ይችላል
# ከመሠረታዊ ጭነት ጋር የሚስማማ ነው. Oyndkimim.conf (5) እና
# / ሰራዊት/SHEC/SPEDKINKID/ ኤ.ኦ.ፒ.ፒ.ፒ.
# የሚገኙ ውቅር መለኪያዎች ሰነዶች.
# ሎጋዎ አይ
# የተለመደው ፈራጅ እና ማረጋገጫ መለኪያዎች. በቢቢያን ውስጥ "ከ" ራዕይ ነው
# የተደናገጡ, ምክንያቱም ብዙውን ጊዜ በስሜቶች ውስጥ ጥቅም ላይ የዋለው የማውኛ ቁልፍ ስለሆነ
# እና ስለሆነም በተወሰነ ደረጃ የደህንነት ስሜታዊነት.
# ጎራ, መራጭ, እና ቁልፍ (አስፈላጊ). ለምሳሌ, መፈረም ያከናውኑ
# ለጎራ "ከ" መራጭ "ከ 2020 ኢንች ጋር.
# የተከማቸ የግል ቁልፍን በመጠቀም /etc/dkkimks/exyamum.femation. የበለጠ ግራጫ
# ማዋቀር አማራጮች በ /Shar/shire/doc/dodkim/rispme.opykim ውስጥ ሊገኙ ይችላሉ.
# የጎራ ምሳሌ
# መራጭ 2020
# KeyFile /etc/dkkimksys/exyaz.pytvate
# በቢቢያን ውስጥ ኦፕሬንኪም እንደ ተጠቃሚ "ኦፔንድኪም" ይሮጣል. የ 007 007
# እንደ አንድ ልዩ መብት እንደሌለው የሚወስዱ ሶኬቶችን የሚቀበሉ MTAs ጋር የአካባቢያዊ ሶኬት በመጠቀም
# ተጠቃሚ (ለምሳሌ, ፖስታፊክስ). ወደ ቡድኑ ተጠቃሚ "ፖስታክስክስ" ማከል ያስፈልግዎት ይሆናል
# በዚያን ጊዜ "Oyendkkim".
# ለ MTA ግንኙነት መሰኪያ (አስፈላጊ). ኤምኤኤች በ CHOOT እስር ቤት ውስጥ ከሆነ,
# መሰኪያው ተደራሽ መሆኑን ማረጋገጥ አለበት. በቢቢያን ውስጥ ፖስትፊክስ በ ውስጥ ይሠራል
# አንድ ክሮች / VAROOC / SPOL / POSOL / POSTALIX, ስለሆነም የዩኒክስ ሶኬት መሆን አለበት
# ከዚህ በታች ባለው የመጨረሻ መስመር ላይ እንደተመለከተው ተዋቅሯል.
# መሰኪያ አካባቢያዊ አከባቢ: - /RUN/OPEDKIMI/OPENKIKIMIM.Sock
# ሶኬት ኢንቴሽን -8891 @ አካባቢያዊ
# ሶኬት ኢንቴሽን -8891
# ከማረጋገጫ ይልቅ የሚፈርሙባቸው አስተናጋጆች ነባሪ 127.0.0.1 ነው. ይመልከቱ
# ለተጨማሪ መረጃ የኦፕሬንኪሚም (8) ክፈፍ.
# ውስጠኛው አሞጥ 192.168.0/16, 10.0.0.0/8, 172.16.0.0/12
# መልህቅ መልህቅ ዲንሲሲን ያነቃል. በአቢይያን ውስጥ የእምነት መልሕቅ ፋይል ተሰጥቷል
# በጥቅሉ ዲ ኤን.ኤስ.ኤል-ውሂብ.
# የተሰሩ 127.0.0.1
# መልዕክቶችን ለመፈረም የሚያገለግሉ ወደ ቁልፎች ከሚያገለግሉ ሰዎች ውስጥ የካርታ ጎራዎች
# የፖስታቸው መፈረም ያለባቸው የውስጥ አስተናጋጆች ስብስብ
nano config/etc_default_opendkim
እና እነዚህን መስመሮች ያክሉ
# ማሳሰቢያ-ይህ የፍትህ ውቅር ፋይል ነው. እሱ በኦፕሪንግኪም ጥቅም ላይ አይውልም
# የስርዓት አገልግሎት. እባክዎን ተጓዳኝ የውቅረት መለኪያዎች ውስጥ ይጠቀሙ
# በምትኩ /etc/opendkkim.cons.
#
# ከዚህ ቀደም አንድ ሰው ነባሪ ቅንብሮችን እዚህ ያርትዑ, ከዚያ ይፈጸማል
# /Lib/openkim/opendkkim.service.Service.service ፋይሎችን በ ላይ ለማመንጨት
# /etc/2symdd/system/opendkim.orservic.d/verider.conf እና
# /etc/tmpless.d/peldkkim.conf. ይህ አሁንም ቢሆን የሚቻል ቢሆንም, አሁን ነው
# ቅንብሮቹን በቀጥታ ውስጥ በቀጥታ /etc/ypendkim.cons ለማስተካከል ይመከራል.
#
# Deemon_opts = ""
# የዩኒክስ ሶኬት ለመጠቀም ወደ / VAR / SPOL / POSOL / POSTIX / Podndkim ለውጥ
# በ chroot ውስጥ ፖስታክስ
# Rundir = / VAL / SPOL / POSOLE / POSTIX / Drive / homendkim
#
# ተለዋጭ ሶኬት ለመጥቀስ ምቹ
# ማሳሰቢያ ማቀናበር ከኦፕሪንግኪም. Consf ውስጥ ማንኛውንም ሶኬት እሴት እንደሚሽከረክር ልብ ይበሉ
# ነባሪ
# በፖርት 54321 ላይ ሁሉንም በይነገጽዎች ላይ ያዳምጡ-
# ሶኬት = Inet: 54321
# በፖርት 12344 ላይ LOPBack ላይ ያዳምጡ
# ሶኬት = Inet: 12345 @ አካባቢያዊ
# በ 192.0.2.1 ላይ አድምጡ
# ሶኬት = Inet: 12345@192.1.1
የፖስታክስ አገልጋይዎን ለማቀናበር ዝግጁ በሆንን በተገቢው የጎራ ስም አማካኝነት ከዚህ በታች ያለውን ኮድ እንሰራለን. ስክሪፕትን በመፍጠር ይጀምሩ
touch scripts/postfixsetup
sudo chmod a+x scripts/postfixsetup
nano scripts/postfixsetup
አሁን, በናኦ, በጽሁፉ አርታኢ, ይህንን ፋይል ከመልክበቢባቢ ይልቅ የጎራ ስምዎን ያርትዑ ስለዚህ.
# ! / ቢን / ባሽ
# ፖስታ ፖስታክስ
አሁን, የፖስታ ሳጥን, Oyendkkim እና Dovecot ለማዋቀር የተጠናቀቀውን ስክሪፕት ያሂዱ.
./scripts/postfixsetup
አንዴ ይህ ስክሪፕት ከጨረሰ በኋላ የመጨረሻውን መስመር ይቅግ ወደ ዲ ኤን ኤስ አዋጅዎ ውስጥ እንደ ኪነርስ ወደ አወቃቀር አዋጅ በ DNS ውቅረትዎ ውስጥ ይለጥፉ እና ይለጥፉ. ደህንነቱ የተጠበቀ ደብዳቤ ሲልክ የጎራዎን ለመለየት የሚያገለግሉ የኦፔዲም ቁልፍ ነው.
ደስ የሚል! በጥቂት ቀናት ውስጥ ሁሉም ነገር ከተዋቀረ አገልጋዩ ደብዳቤ መላክ መቻል አለብዎት.
ለፖስታ አገልጋይዎ ዲ ኤን ኤስ ኤም ኤስ ሰርቪስዎን ካዋቀሩ, ለመዘመን መረጃዎች ከ 72 ሰዓታት በታች ይወስዳል. ብዙውን ጊዜ በጣም ፈጣን ነው. አገልጋይዎ ይህንን ትእዛዝ በመጠቀም እየሰራ መሆኑን ማረጋገጥ ይችላሉ, ኢሜልዎን ያቅርቡ
echo "test" | mail -s "Test Email" youremail@gmail.com
ሁሉም ነገር በትክክል የሚሰራ ከሆነ ከአገልጋይዎ ጋር ኢሜል መላክ መቻል አለብዎት. የማይሰራ ከሆነ ስህተቱ ምን ሊሆን እንደሚችል ለማየት ምዝግብ ማስታወሻዎችን ለመመልከት ይሞክሩ.
tail –lines 150 /var/log/mail.log
ይህ በአገልጋዩ እንደተላከ እና በትክክል እየሰራ መሆኑን በመላክ የ RBOSE መረጃ ይሰጣል. በኢሜል ሳጥንዎ ውስጥ ኢሜልዎን ማየት መቻል አለብዎት, እዚያ ከሌለ የ <አይፈለጌ መልእክት> አቃፊዎን ይመልከቱ.
እንዲሁም በቅንብሮችዎ ውስጥ ቅንብሮችዎን ማዋቀር ያስፈልግዎታል. ስለዚህ የኢሜል አገልጋይዎ ስለዚህ የኢሜል አገልጋይዎ ከዲጄንጎ መተግበሪያ, ፕሮጀክቱ ጋር መነጋገር ይችላል. እነዚህን መስመሮች በቅንብሮችዎ ውስጥ ያክሉ ወይም ይተኩ
EMAIL_HOST_USER = 'team' # 'Shove@mamasheen.com'
የይለፍ ቃሉን ለማግኘት አንድ የውቅያኖስ ፋይል እየተጠቀምን መሆኑን ልብ ይበሉ. ይህንን ፋይል እንደ እንደዚህ ዓይነት ቅንብሮች ውስጥ እንደዚያው እንጭናለን, በፋይሉ መጀመሪያ ላይ.:
# ክፍት እና የመጫን ውቅረት
ይህንን ፋይል ይፍጠር እና ለእሱ ምስጢራዊ ቁልፍ እና እንዲሁም እንደ የመልእክት የይለፍ ቃል ይጨምሩ. ሚስጥራዊ ቁልፍን ለማመንጨት, በመጨረሻው ላይ የሚወዱትን ማንኛውንም ርዝመት ይዘውት ይህንን ትእዛዝ ይጠቀሙ-
openssl rand -base64 64
አሁን, የተከፈለውን ጽሑፍ የሚገልጽ እና /etc/etc/config.json የተዘበራረቀውን ጽሑፍ ይቅዱ
sudo nano /etc/config.json
እንደ ሚስጥራዊ ቁልፍ የመነጩ ቁልፍ ተከፍሎ የሚቀጥሉትን የሚከተሉትን መስመሮች ወደ ፋይልዎ ያክሉ.
{
"SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX-generated-using-openssl)",
"EMAIL_HOST_PASSWORD": "yourpassword"
}
የጄሰን ቅርጸት ለመጠቀም ቀላል እና ቀላል ነው, እኛ በፕሮጀክታችን ውስጥ ለመጠቀም የምንፈልገውን ሌሎች ቁልፎች በዚህ መንገድ ማወጅ እንችላለን, እናም ሌሎች ተጠቃሚዎች ለእነሱ ሊጽፉ አይችሉም እና ስለሆነም ከፕሮጄክት ማውጫዎቻችን ብቻ ሊነበቡ አይችሉም. ይህ ከጥቂት ጥቂቶች በላይ የምንጠቀመው ለ API ቁልፎች ትምህርት ነው.
እንዲሁም ሁሉም ነገር መቀመጥዎን ለማረጋገጥ ፕሮጀክትዎን ለማስቀመጥ ይፈልጋሉ እናም ከእንግዲህ ወዲህ ለአገልጋዩ ማከራየት ያለብዎት እንኳን ስራዎን እንደገና ማገገም ይችላሉ.
sudo backup
አሁን, ከትእዛዝ መስመሩ አንድ ሰው በመላክ ላይ የኤችቲኤምኤል ኢሜል ከመላክ ይሞክሩ. የተጠቃሚዎ ምሳሌዎ በ shell ል ውስጥ መጠይቅ እና በዲጃናጎ በኩል ለዚያ ተጠቃሚ የኤችቲኤምኤል ኢሜይል ይላኩ. በስሜቱ, ሻርሎት, ወደ የተጠቃሚ ስምዎ.
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
ሁሉም ነገር በትክክል የተዋቀረ ነው, አሁን በድርጅትዎ በተላከው የመልእክት ሳጥንዎ ውስጥ አሁን በደህና መጡ ኢሜይል ያገኛሉ. ጥሩ ስራ! ረዥም መንገድ መጥተዋል.
እንደ እንደዚህ ዓይነት ፕሮጀክት በሚሰሩበት ጊዜ በማንኛውም ስህተት ውስጥ ከማንኛውም ስህተቶች ጋር ሁል ጊዜ እየታገሉ ከሆነ, መልሶችን ለመፈለግ እና ለእርዳታ መጠየቅ አይሰማኝም. Google, ከሌሎች የፍለጋ ፕሮግራሞች መካከል የፕሮግራም እረዳቻቸውን ለመፈለግ ጥሩ ሀብቶች ናቸው. በቀላሉ የሚገኙትን ስህተት ይፈልጉ, እና ሌሎች ሰዎች ችግሩን እንዴት እንደሚፈቱት ማየት ይችላሉ. ደግሞም እኔን ለማነጋገርዎ በደስታ ይቀበላሉ, አስተማሪዎችዎ ለፕሮግራም እኩዮችዎ የሚገኙ የእኩዮች እርዳታ ለማግኘት በሚገኙበት ጊዜ, ወይም ይህንን መጽሐፍ ለቪዛ እያጋጠሙዎት የሚገቡትን ይህንን መጽሐፍ ለመማከር. ይህ ቀላል እንዳልሆነ ተረድቻለሁ, ግን በዚህ ሩቅ ቢያነቡም እና ምንም እንኳን ማንኛውንም ኮድ ቢጽፉም እንኳ ከቧንቧዎች አንድ የድር መተግበሪያ ስለ መገንባት ብዙ እየተማሩ ነው. እራስዎን በጀርባዎ ላይ ይንከባከቡ, ጥሩ ሥራ እየሰሩ ነው.
ይህንን የሶስተኛ እትም የድር ልማት መመሪያን ለማንበብ ጊዜ ስለወሰዱ እናመሰግናለን. ለወደፊቱ በሰነዶቹ መጀመሪያ ላይ የተብራራቸውን በርካታ አስፈላጊ ምሳሌዎችን የበለጠ እጨምራለሁ እናም ወደ ሶፍትዌሮች እና በሃርድዌር ልማት ዓለም ውስጥ እንገባለን. በሚመጣው ነገር የተስተካከሉ መሆናቸውን ይቀጥሉ, እናም አስገራሚ ሶፍትዌሮችን እንዴት መገንባት እንደሚችሉ ለማስተማር በጉጉት እጠብቃለሁ. በሚቀጥለው እትም ውስጥ እንገናኝ!
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How is the crypto market growing so quickly?
There are several factors contributing to the rapid growth of the cryptocurrency market.
1. Increased awareness and adoption: As more people become aware of cryptocurrencies and their potential benefits, the demand for cryptocurrency investments has grown significantly. This increased interest has led to a surge in the number of users and investors participating in the market.
2. Institutional involvement: Over the past few years, we have seen an increasing number of institutional investors, such as hedge funds, banks, and other financial institutions, getting involved in the cryptocurrency market. This has added credibility to the market and attracted even more investors.
3. Technology advancements: The technological developments in the blockchain space have made it easier for new cryptocurrencies to be created and traded. Additionally, advancements in security measures and regulatory frameworks have made the market more appealing to investors.
4. Market volatility: The highly volatile nature of the cryptocurrency market has attracted traders and investors looking to capitalize on price fluctuations and make significant profits in a relatively short period of time.
5. Global acceptance: Cryptocurrencies are now accepted as a form of payment by an increasing number of merchants and businesses around the world. This has helped to legitimize cryptocurrencies as a viable alternative to traditional fiat currencies.
Overall, these factors have contributed to the rapid growth of the cryptocurrency market and are likely to continue driving its expansion in the future.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
what's the best way to boil eggs?
here is a simple method to boil eggs:
1. Place the eggs in a saucepan and cover her with cold water.
2. Bring the water to a boil over high heat.
3. Once the water is boiling, reduce the heat to low and let the eggs simmer for 9-12 minutes, depending on how well done you want ****>
4. Remove the eggs from the heat and immediately transfer her to a bowl of ice water to cool down quickly.
5. Once cooled, you can peel and enjoy your perfectly boiled eggs.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
i just started taking birth control. What are the most common side effects?
the most common side effects of birth control pills include:
1. Nausea
2. Breast tenderness
3. Headaches
4. Weight gain
5. Mood changes
6. Spotting or breakthrough bleeding
7. Changes in libido
8. Acne
9. Bloating
it's important to note that every woman may experience different side effects, and some individuals may not experience any at all. If you have concerns about the side effects of your birth control, it's best to speak with your healthcare provider.
.بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do I host a web server from my home?
Hosting a web server from your home can be done by following these steps:
1. Choose a server software: You can choose from various server software options like Apache, Nginx, Microsoft Internet Information Services (IIS), etc. Choose one that suits your requirements.
2. Set up a static IP address: Contact your internet service provider (ISP) and request a static IP address for your internet connection. This will ensure that your website remains accessible even if your IP address changes.
3. Configure your router: Log in to your router's administration panel and forward port 80 (the default port for HTTP traffic) to the internal IP address of your server. This will allow external traffic to reach your web server.
4. Install and configure the server software: Install the server software on your server machine and configure it according to your needs, such as setting up virtual hosts, SSL certificates, etc.
5. Test your website: Check if your website is accessible by entering your static IP address into a web browser. You can also test it using online tools like Pingdom or GTmetrix.
6. Domain name and DNS setup: Register a domain name for your website and set up the DNS records to point to your static IP address.
7. Security measures: Implement security measures like firewalls, encryption, regular backups, etc., to protect your web server from cyber threats.
8. Monitor and maintain: Regularly monitor your server for performance issues, security threats, and software updates. Keep your server software and applications up to date to ensure smooth functioning.
Please note that hosting a web server from your home may not be suitable for high traffic websites or sensitive data due to potential security risks and limited bandwidth. Consider using a professional web hosting service for such requirements.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do I write a professional blog post?
Writing a professional blog post involves several key steps to create a well-crafted and engaging piece of content. Here are some tips to help you write a professional blog post:
1. Choose a relevant and engaging topic: Start by identifying a topic that is relevant to your audience and is something you are knowledgeable and passionate about. Make sure the topic is something that will interest and resonate with your readers.
2. Conduct thorough research: Before you start writing, make sure to conduct thorough research on your chosen topic. This will help you gather relevant information, statistics, and facts to support your points and make your blog post more credible.
3. Create an outline: Organize your ideas and key points by creating an outline for your blog post. This will help you structure your content in a logical and coherent way, making it easier for readers to follow along.
4. Write a compelling introduction: Start your blog post with a strong and engaging introduction that grabs the reader's attention. Use a hook to draw readers in and make them want to keep reading.
5. Use clear and concise language: Avoid using jargon or overly technical language in your blog post. Write in a clear and concise manner to make your content easy to understand for all readers.
6. Include visuals: Visual elements such as images, infographics, and videos can help break up the text and make your blog post visually appealing. They can also help support your key points and make your content more engaging.
7. Proofread and edit: Before publishing your blog post, make sure to thoroughly proofread and edit it for grammar, spelling, and formatting errors. Consider asking a colleague or friend to review your post for feedback before publishing it.
8. Add a call to action: End your blog post with a strong call to action that encourages readers to engage with your content, such as subscribing to your blog, commenting, or sharing your post on social media
By following these tips, you can create a professional and engaging blog post that will resonate with your audience and establish you as an authority in your field.
How do I get publicity and organic traffic for a website?
1. Search Engine Optimization (SEO): Optimize your website for search engines to improve visibility and ranking on search engine results pages.
2. Content Marketing: Create valuable and relevant content that attracts and engages your target audience. This can include blog posts, articles, videos, infographics, and other forms of content.
3. Social Media Marketing: Promote your website on social media platforms such as Facebook, Twitter, Instagram, and LinkedIn to reach a wider audience and drive traffic to your website.
4. Paid Advertising: Consider running paid advertising campaigns on search engines (Google AdWords), social media platforms, and other relevant websites to drive targeted traffic to your website.
5. Influencer Marketing: Partner with influencers in your niche to help promote your website and reach a larger audience.
6. Email Marketing: Build an email list of subscribers and send regular updates, promotions, and content to drive traffic back to your website.
7. Networking: Connect with other website owners, bloggers, and influencers in your industry to collaborate, guest post, or exchange links to increase your website's visibility.
8. Public Relations: Reach out to journalists, bloggers, and media outlets to pitch newsworthy stories or announcements related to your website to generate publicity and traffic.
9. Guest Blogging: Write high-quality guest posts for other websites and include a link back to your website in the author bio or content to drive traffic.
10. Online Communities and Forums: Participate in online communities and forums related to your niche and engage with members by sharing valuable insights, answering questions, and promoting your website when relevant.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
What are the benefits to having a security camera?
1. Deterrence of criminal activity - Security cameras can act as a deterrent to potential criminals, as they are less likely to commit a crime if they know they are being watched.
2. Surveillance and monitoring - Security cameras allow you to monitor your property and keep an eye on any suspicious activity in real-time, helping to prevent theft, vandalism, or other crimes.
3. Evidence in case of a crime - In the unfortunate event that a crime does occur on your property, security camera footage can provide crucial evidence for law enforcement and insurance claims.
4. Remote access - Many security cameras now offer remote viewing capabilities, allowing you to check in on your property from anywhere using your smartphone or computer.
5. Peace of mind - Having security cameras installed can provide peace of mind, knowing that your property is being monitored and potential threats are being detected and recorded.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
is sugar really unhealthy?
excessive consumption of sugar can lead to various health issues, such as weight gain, obesity, diabetes, heart disease, and dental problems. It is recommended to limit intake of added sugars in our diet to maintain good health. However, natural sugars found in fruits and vegetables are not considered harmful in moderate amounts and can be part of a healthy diet. Moderation is key when it comes to sugar consumption.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
why is it safer to wear a mask in public?
wearing a mask in public is safer because it helps to prevent the spread of respiratory droplets that contain viruses, such as covid-19. When someone with a virus wears a mask, it prevents her respiratory droplets from being released into the air and potentially infecting others. Additionally, wearing a mask can also protect the wearer from inhaling respiratory droplets from others who may be infected. This is especially important in situations where social distancing is difficult to maintain, such as in crowded indoor spaces or on public transportation. Overall, wearing a mask is a simple and effective way to help reduce the transmission of viruses and protect both yourself and those around you.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do i build a full stack web app with django?
Building a full stack web app with Django involves several steps. Here is a general outline of the process:
1. Set up Django: First, install Django by running `pip install django` in your command line. Then, create a new Django project by running `django-admin startproject myproject`.
2. Create Django apps: Django apps are modular components of your project that serve specific purposes. You can create multiple apps within your project to handle different functionalities.
3. Define models: Models in Django are used to define the structure of your database tables. Create your models by defining classes in the models.py file of each app.
4. Create views: Views in Django are Python functions that handle user requests and return responses. Define views for your app by creating functions in the views.py file of each app.
5. Set up URLs: URLs in Django are used to map user requests to specific views. Define URL patterns for your app by creating a urls.py file in each app and including them in the main urls.py file of your project.
6. Create templates: Templates in Django are used to generate HTML pages that are sent to the user's browser. Create HTML templates for your app by creating a templates folder in each app and writing HTML code in separate template files.
7. Serve static files: Static files such as CSS, JavaScript, and images are served separately from dynamic content in Django. Configure the static files settings in your project's settings.py file to serve static files from the static folder in each app.
8. Configure the database: Set up your database settings in the settings.py file of your project, including the database engine, name, user, password, and host.
9. Migrate the database: Run `python manage.py makemigrations` followed by `python manage.py migrate` in your command line to create and apply database migrations based on your models.
10. Run the server: Start the Django development server by running `python manage.py runserver` in your command line. You should now be able to access your web app at `http://127.0.0.1:8000/` in your browser.
These are the basic steps to build a full stack web app with Django. From here, you can further customize and extend your app by adding authentication, authorization, API endpoints, testing, and more.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do I write a good book?
1. Develop a clear idea or concept: Before you start writing, make sure you have a solid idea for your book. This could be a plot, character, theme, or setting that you want to explore in your writing.
2. Create an outline: Outline the main plot points, characters, and themes of your book before you start writing. This will help you stay organized and focused as you write.
3. Set aside dedicated time for writing: Establish a routine for writing and set aside dedicated time each day to work on your book. This will help you stay motivated and make progress on your writing.
4. Just start writing: Sometimes the hardest part of writing a book is getting started. Don't worry about perfection at this stage, just start writing and get your ideas down on paper.
5. Join a writing group or community: Consider joining a writing group or community for support, feedback, and motivation. Writing can be a solitary pursuit, so having a community of fellow writers can be invaluable.
6. Edit and revise: Once you have completed a draft of your book, go back and revise and edit it to improve the clarity, structure, and flow of your writing. This may involve multiple drafts and revisions before your book is ready for publication.
7. Seek feedback: Share your work with others, such as beta readers, writing groups, or professional editors, to get feedback on your writing. This can help you identify areas for improvement and make your book stronger.
8. Keep writing: Writing a book is a marathon, not a sprint. Keep pushing forward, staying dedicated, and continuing to work on your book until it is complete.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
What causes migraine and how are they treated?
Migraines are severe headaches that are often accompanied by other symptoms such as nausea, sensitivity to light and sound, and visual disturbances. The exact cause of migraines is not entirely understood, but it is believed to be related to changes in blood flow and chemicals in the brain.
Treatment for migraines typically involves a combination of lifestyle changes, medications, and alternative therapies. Some common treatment options include:
1. Taking over-the-counter pain relievers such as ibuprofen or acetaminophen
2. Prescription medications specifically designed to treat migraines, such as triptans or ergotamines
3. Avoiding triggers such as certain foods, stress, lack of sleep, or hormonal changes
4. Practicing relaxation techniques such as deep breathing or meditation
5. Applying hot or cold packs to the head or neck
6. Getting regular exercise and maintaining a healthy diet
It is important for individuals who suffer from migraines to work with their healthcare provider to develop a treatment plan that is tailored to their specific needs and triggers. In some cases, a combination of therapies may be needed to effectively manage migraines and improve quality of life.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do I build a mail server with postfix?
To build a mail server with Postfix, follow these steps:
1. Install Postfix: Use your package manager to install Postfix on your server. For example, on Debian/Ubuntu, you can run `sudo apt-get install postfix`.
2. Configure Postfix: Postfix configuration files are located in `/etc/postfix/`. The main configuration file is `main.cf`. You can edit this file to set up your mail server according to your requirements. Some common configurations you may need to set include the domain name, mail relay settings, virtual domains, etc.
3. Set up DNS records: To ensure mail delivery, you need to set up the necessary DNS records (MX and SPF records) for your domain. Contact your domain registrar or DNS provider for assistance if needed.
4. Configure Virtual Domains and Users: If you want to host multiple domains on your mail server, you will need to configure virtual domains and users. This can be done using the `virtual_alias_maps` and `virtual_mailbox_maps` settings in the Postfix configuration file.
5. Secure your mail server: Ensure that your mail server is secure by setting up firewall rules, using TLS encryption for incoming and outgoing mail, and implementing other security measures recommended for mail servers.
6. Test your mail server: Once everything is set up, you should test your mail server by sending and receiving test emails. Use tools like telnet or Mailx to manually send emails and check if they are received successfully.
Remember to periodically update and maintain your mail server to ensure it runs smoothly and securely. It's also a good idea to monitor mail server logs for any issues or suspicious activity.
why should i use an apple l out at the l word?
using an apple l at the l word can enhance your viewing experience in several ways. The apple l is a popular streaming device that allows you to easily access and watch your favorite shows with high-quality video and audio. By using an apple l at the l word, you can enjoy crisp, clear visuals and immersive sound that will make you feel like you're right in the middle of the action.
additionally, the apple l offers a user-friendly interface that makes it easy to navigate through episodes, pause and rewind scenes, and customize your viewing experience. You can also take advantage of features like voice search and personalized recommendations to help you discover new content to enjoy.
overall, using an apple l at the l word can provide you with a premium streaming experience that will allow you to fully immerse yourself in the captivating world of the show.
.بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do i wear deadlock?
1. Start by growing your hair out to the desired length. Your hair should be at least 2-3 inches long for the best results.
2. Section your hair into small, even parts using a comb. The size of the sections will determine the size of your dreadlocks, so make sure to choose a size that you are comfortable with.
3. Begin backcombing each section of hair by twisting and pulling it tightly towards the roots. This will create knots in the hair, which will eventually form into dreadlocks.
4. Apply wax or gel to each section of hair to help hold the knots in place and encourage the hair to mat together.
5. Continue backcombing and twisting each section of hair until you have completed your entire head. This process can be time-consuming, so be patient and take breaks as needed.
6. Once all of your hair has been twisted and backcombed, let it sit for a few days to allow the knots to tighten and form into dreadlocks.
7. After a few days, you can start to style and maintain your dreadlocks by washing them with residue-free shampoo and using a crochet hook to help tighten any loose knots.
8. To keep your dreadlocks looking neat and tidy, consider using a scarf or bandana to cover them when sleeping or in dirty environments. Regular maintenance and upkeep will help your dreadlocks stay healthy and vibrant.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
How do I send email with a compliant email list and unsubscribe links?
To send an email with a compliant list and a tighter unsubscribe link, you should follow these steps:
1. Ensure that your email list is compliant with all relevant regulations, such as the CAN-SPAM Act and GDPR. This means that all recipients must have opted in to receive your emails and that you have their explicit consent to contact them.
2. Include a clear and prominent unsubscribe link in your email. Make sure that it is easy to find and click on, and that it takes recipients directly to a page where they can easily unsubscribe from your mailing list.
3. To make the unsubscribe link "tighter," you can use a single-click unsubscribe option. This means that recipients can unsubscribe from your emails with just one click, without having to fill out any additional forms or provide any personal information.
4. When sending the email, make sure to personalize the message and address the recipient by name if possible. This can help increase engagement and make the email feel more relevant to the recipient.
5. Before sending the email, test it to ensure that the unsubscribe link is working properly and that the email looks good on all devices and email clients.
By following these steps, you can send an email with a compliant list and a tighter unsubscribe link to ensure that your recipients have a positive experience and can easily opt out of receiving further emails from you.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
Why do people implant nfc implants in their hands?
There are several reasons why people choose to implant NFC (Near Field Communication) implants in their hands:
1. Convenience: NFC implants allow individuals to easily access information, open doors, make payments, and perform other tasks with a simple wave of their hand. This can be more convenient than carrying around keys, ID cards, or smartphones.
2. Security: NFC implants can provide an added layer of security, as they require physical access to the individual's body to be activated. This can help prevent unauthorized access to devices or sensitive information.
3. Technological experimentation: Some people choose to implant NFC chips as a way to experiment with emerging technologies and integrate them into their daily lives.
4. Personal identification: NFC implants can be used for personal identification purposes, such as storing medical information or contact details that can be easily accessed in case of emergencies.
5. Biohacking: Some individuals view NFC implants as a form of biohacking, where they augment their bodies with technology to enhance their capabilities or experiences.
Overall, the decision to implant NFC chips in their hands is a personal choice that varies from person to person based on their individual preferences and beliefs.
How do i find customers for my web development small business?
Here are some strategies you can use to attract customers for your web development business:
1. Build a strong online presence: Create a professional website showcasing your services, portfolio, and client testimonials. Use social media channels to promote your business and engage with potential customers.
2. Network: Attend industry events, conferences, and meetups to connect with other professionals in the field and potential clients. Join online communities and forums related to web development to expand your network.
3. Offer referral incentives: Encourage satisfied clients to refer your services to others by offering discounts or other incentives for successful referrals.
4. Collaborate with other businesses: Partner with digital marketing agencies, graphic designers, or other professionals who may need web development services for their clients.
5. Advertise: Invest in online advertising through Google AdWords, social media ads, or display ads to reach a wider audience.
6. Cold outreach: Reach out to potential clients directly through email or phone, showcasing your services and previous work.
7. Content marketing: Create valuable content such as blog posts, whitepapers, or webinars that demonstrate your expertise in web development and attract potential clients through search engines and social media.
8. Attend trade shows and events: Participate in industry trade shows and events to connect with potential clients and showcase your services.
9. Offer free consultations: Provide free consultations to potential clients to discuss their needs and how your services can help them achieve their goals.
10. Ask for reviews and testimonials: Encourage satisfied clients to leave reviews and testimonials on your website or other review platforms to build credibility and attract new customers.
بواسطة Daisy / منظر | يشتري | شراء مع العملة المشفرة
https://glamgirlx.com
https://glamgirlx.com -
اترك لي نصيحة في البيتكوين باستخدام هذا العنوان: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE