0555333017

اهلا بكم فى الموقع الرسمى للمهندس خالد ابو ابراهيم

 المدير التنفيذي للمضيف الاول للاتصالات وتقنية المعلومات (ون هوست) والخبير في مواقع التواصل الاجتماعي 

إطار العمل فلاسك

Flask هو إطار عمل مصغر مبني بلغة البايثون يمكننا من برمجة المواقع الإلكترونية بشكل سهل وسريع

مميزات Flask:
توفر مكاتب كثيرة جدا تسهل عليك بناء بعض الاكواد البرمجية من الصفر
سهل التعلم
سهل البرمجة والتطوير
الدعم المستمر
عيوب Flask:
القيود بمعنى الالتزام بالهيكلة المخصصة للعمل
 
يحتاج الى سيرفر خاص (vps) لرفعه على الإنترنت وهذه المشكلة في أغلب إطارات العمل حتى باللغات البرمجية الأخرى
 
للتفاصيل أكثر عن إطار Flask يمكنكم الاطلاع على هذه التغريده
 
 
عشان تبدأ تبرمج في إطار Flask يحتاج لك معرفه بلغة python لأن الإطار مبني عليها لذلك الكود المكتوب سوف يكون بلغة python لذلك يجب أن تكون ملم باللغة
تثبيت الإطار
pip install flask
تنظيم العمل:
1-تنشأ مجلد للمشروع
2-تنشأ مجلد داخل المشروع static
3-تنشأ مجلد داخل المشروع templates
4-تنشأ ملف في جذر المشروع بصيغة py
مجلد static
يكون داخل ملفات ومجلدات التصميم او القالب  مثل css,js,json,xml,images
الخ
 
مجلد templates
يكون داخله ملفات html
 
ملف ال python
هو ملف المشروع الي حيكون فيه شغلنا
بداية العمل:
from flask import * 
app = Flask(_name_)
 
@app.route("/")
def index():
    return "Hello!"
 
في الأول إستعدينا الإطار
ثم app
هذا المتغير المستند في للإطار
app.route("/")
الي داخل علامة التنصيص هذا رابط الصفحة
def index()
إسم الدالة
return "Hello!"
قيمة الدالة او النتيجة الي حتطلع لنا اذا طلبنا رابط الصفحة هذي
 
اذا نبغا نوجهه الصفحة الى صفحة html نغير
return
يصبح كذا
return render_template('index.html')

لإرسال البيانات منbeck end واستقبالها في ملف html:
return render_template('index.html', name=“ali”)
نفتح ملف html المرتبط بالصفحة ونروح للمكان الي نبغا نطبع فيه المتغير الي ارسلناه من back end
 
 
<html>
  <head>
        <title>index</title>
  </head>
  <body>
    <h1>{{ name }}</h1>
  </body>
</html>
تعرفنا على طريقة العمل بشكل خفيف
الحين بنتعرف على كيف نرسل طلبات لل back end
أنشئت صفحة جديده
 
 
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
     username=request.form[‘username’]
        return render_template('login.html', username = username)
    else:
        return render_template('login.html')
 
 
أضفنا methods=['GET', 'POST'] في الرابط نفسه عشان الصفحة تستقبل requests
عملنا شرط بسيط فكرته اذا جا طلب من نوع POST بيصير الاجراء التالي:
عرفنا متغير واسندنا له قيمة username الي جايه من الفورم
 
وبيوجهنا الى صفحة login وفيه القيمة المدخلة في الفورم
 
واذا ماتحقق الشرط بيوجهنا على صفحة login لكن مافيها اي قيمة
كود html
 
نفتح ملف html ونروح للمكان الي نبغا نطبع فيه المتغير الي ارسلناه من back end
 
<html>
  <head>
     <title>login</title>
  </head>
  <body>
    <h1> username : {{ username }} </h1>
    <form action=‘/login’ method=‘post’>
       username:
      <input type="text" name="username">
      <input type="submit" value="Submit">
   </form>
  </body>
</html>
 
من مميزات flask  ان ملفات html تستخدم نوع
من القوالب اسمه jinja2 جميل جدا ويوفر جهد رهيب من مميزاته تقدم تستخرج البيانات على الصفحة في front end تقدر تعمل تكرار تقدر تعمل شروط وشغلات كثيرة جداا
 
الحين هنا يحتاج لنا نعمل تحسين لإظهار username لأننا كاتبين قبله كلمه ف اذا مكان فيه post ف يطلع لنا username: ثم مسافة فاضية لأنه مح يظهر  username الى اذا ارسلنا في username post
الحل:
نستخدم الشروط في ملف html
ويكون بالطريقة التالية
 
<html>
  <head>
     <title>index</title>
  </head>
  <body>
    {% if username %}
       <h1> username : {{ username }} </h1>
    {% endif %}
     <form action=‘/login’ method=‘post’>
       username:
       <input type="text" name="username">
       <input type="submit" value="Submit">
     </form>
  </body>
</html>
 
وضعنا المتغير الي رسلناه من back end  داخل شرط
بمعنى اذا المتغر ارسل من back end بيظهر بيدخل على الشرط واذا ما ارسل بيجاوزه
 
هذه مقدمة بسيطة عن إطار العمل Flask بشرح بعض المكتبات المهمه والي تساعدك على العمل وتسهله لك بشكل كبير
flask-sqlalchemy
‏مكتبة تسهل التعامل مع قواعد البيانات بشكل رهيب ومختصر في العمليات بإستخدام تقنية ORM تدعم اغلب انواع قواعد بيانات SQL مثل MySQL,SQLite الخ
 
flask-login
‏مكتبة ضخمه وتقدر تستخدها في شغلات كثير مثلا صفحة معينه وتبغى الي يوصلها لازم يكون مسجل دخول
 
Flask-WTF
‏ مكتبة للتعامل مع Forms فكرتها تنشأ form من Back End تضيف كل الخواص الي تحتاجاه مثل class,type,id,name وتعمل حتى فلترة للمدخلات وتستعيد ال class الي انشأت Forms فيه كمان تحمي ال Forms من ثغرة csrf
 
Flask-Bcrypt
‏مكتبة لتشفير كلمات المرور بإستخدام Hash Function
 
Flask-Mail
‏مكتبة لإرسال رسائل بريد إلكتروني
 
Flask-RESTful
‏مكتبة يستخدمها الكثير لعمل API
 
Flask-Uploads
‏مكتبة لتسهيل عمليات الرفع مثل الصور مقاطع الفيديو وعمل نمط معين لإستقبال صيغ ملفات محددة وتحديد حجم الملفات
 
 Flask-excel
‏مكتبة لتصيدر البيانات على صيغة Excel ,Csv بشكل سريع وسهل جدا وخواصل عديده في التصدير
 
Flask-Limiter
‏مكتبة لتحديد عدد معين ووقت معين يسمح يسمح لك زيارة الصفحة يستخدم كثير في الحماية من DDos Attack
 
يوجد غيرها الكثير من المكتبات مثل
flask-user
flask-admin
flask-script
Flask-Cache
 
‏وغيرهم الكثير من المكتبات يمكنك الاطلاع عليها واستخدامها