كلنا نفعل ذلك، وإذا كنت مبتدئًا، فيجب عليك أن تأخذ ميزات الاشتراك في البريد الإلكتروني التالية بعين الاعتبار.
يعد نظام تسجيل البريد الإلكتروني القوي ضروريًا لتطبيقات الويب والنشرات الإخبارية وتنزيلات الهدية الترويجية والدعوات إلى المجموعات الخاصة وتوليد العملاء المحتملين. دعونا لا نعتمد على استخدام خدمات الجهات الخارجية مثل Auth0 أو Facebook أو Google للوصول إلى تطبيقك. احتفظ ببيانات تطبيقك ملكًا لك!
لكي تبدأ، يجب أن يكون لديك بعض الخبرة في بايثون لأننا سنستخدم إطار عمل Flask مع قاعدة بيانات MySQL. سيكون هذا أكثر متعة من استخدام Wordpress، نظام إدارة المحتوى الأكثر شهرة. سيتعين عليك الدفع مقابل بعض مكونات Wordpress الإضافية للحصول على نفس القدرة التي يتمتع بها ملحق Flask المجاني. لقد قمت بالبناء مسبقًا على كليهما وأفضل Python Flask لتطبيقات الويب على الرغم من أن Wordpress قادر جدًا على إنشاء تطبيقات الويب.
سيتم شرح كل مقتطف كود ويتضمن بعض التعليقات في الكود. في حالة عدم قيامك بإنشاء تسجيل مستخدم أو معرفة الإجراءات الداخلية، فسوف أصف لك التفاصيل. وفيما يلي ملخص للميزات التي سنقوم بتنفيذها كما ورد في الفقرة الأولى:
يمكن التحقق من عنوان بريد إلكتروني صالح عن طريق تحليل سلسلة الإدخال من المستخدم باستخدام تعبير عادي أو ملحق Flask. لن نسمح بنصوص عشوائية أو نوع حقن SQL للاختراق.
يمكن منع الروبوتات من خلال حقل مخفي لا يظهر للمستخدم ولكن عادةً ما يتم ملؤه تلقائيًا بواسطة الروبوتات التي تزحف إلى نماذج التسجيل الضعيفة.
تتطلب طريقة الاشتراك المزدوج من المستلم أن يمنحك الإذن بإرسال بريد إلكتروني إليه عن طريق تلقي رابط التحقق في صندوق الوارد الخاص به. يُستخدم هذا بشكل أساسي لمنع شخص آخر من استخدام عنوان بريدك الإلكتروني. يمنع هذا أيضًا المستخدمين الاختباريين الذين قاموا بالتسجيل والتخلي عن حساباتهم.
إنشاء دليل عمل:
mkdir signup cd signupأنشئ بيئة Python الخاصة بك باستخدام python3 -m venv الاشتراك أو conda create -n الاشتراك python3. انا افضل كوندا.
قم بإنشاء جدول MySQL لتخزين المستخدمين لديك. الحقل الذي تم التحقق منه مخصص للاشتراك المزدوج:
mkdir signup cd signupتثبيت التبعيات:
قارورة النقطة قارورة البريد الآمن SQLAlchemy Flask-WTF Flask-SQLAlchemy mysql-connector-python
وبدلاً من ذلك، يمكنك إدراج نفس الملف في ملف require.txt وتشغيل pip install -r require.txt
mkdir signup cd signupأدخل بيانات تكوين الخادم الخاص بك باستخدام هذه السطور:
mkdir signup cd signupفي النهاية، يجب أن تكون لديك معلومات التكوين الخاصة بك في ملف .env.
يستخدم القسم التالي بنية ORM الخاصة بـ SQLAlchemy للاستعلام عن قاعدة البيانات نيابةً عنك. لاحظ أن
يجب أن يتطابق اسم الفئة مع اسم جدول قاعدة البيانات الخاصة بك وإلا فسوف تحصل على خطأ. يمثل db.model إعدادات الجدول الخاصة بك والتي تتضمن اسم العمود ونوعه وطوله ومفتاحه وقيمته الخالية:
mkdir signup cd signupإذا لم تكن قد أنشأت جدول قاعدة بيانات MySQL يدويًا بالفعل، فيمكنك القيام بذلك باستخدام رمز Flask مباشرة بعد كتلة رمز المستخدم للفئة:
mkdir signup cd signupلإيجاز هذا البرنامج التعليمي، نحن نتخطى صفحة الفهرس أو ما تريد أن نسميه الصفحة الرئيسية لتطبيقك ونعرض فقط صفحة الاشتراك باستخدام وظيفة ديكور بايثون لمسار الصفحة:
mkdir signup cd signupقبل إضافة نموذج تسجيل html، فلنكمل الواجهة الخلفية عن طريق إضافة المسار للتحقق من صحة ميزة الاشتراك المزدوج. يستخدم هذا المسار المتغير s الذي أنشأناه سابقًا والذي يقوم بإنشاء الرمز السري الحساس للوقت. راجع المستندات للحصول على التفاصيل
الحد الأقصى للعمر هو الثواني التي تسبق انتهاء صلاحية الرابط، وفي هذه الحالة، يكون لدى المستخدم 20 دقيقة لتأكيد عنوان بريده الإلكتروني.
mkdir signup cd signupالآن بالنسبة للبيان الرئيسي الموجود في كل مكان والذي يخبر Python بتنفيذ البرنامج النصي إذا تم تنفيذ الملف مباشرة (على عكس الوحدة النمطية المستوردة):
mkdir signup cd signupقبل أن نكمل رمز الواجهة الخلفية هذا، ما زلنا بحاجة إلى HTML للواجهة الأمامية لإدخال المستخدم. سنقوم بذلك باستخدام قالب Jinja المدمج في Flask. قم بإنشاء ملف باسم templates/signup.html والذي يجب أن يتطابق اسمه مع المسار الذي قمت بإنشائه مسبقًا في app.py. افتراضيًا، يستخدم Jinja الدليل /القوالب لملفات html. يمكنك تغيير هذا الإعداد ولكن في هذا البرنامج التعليمي، سنستخدم الدليل /templates الخاص بالتطبيق.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3