اذهب إلى المحتوى

Hussein Ouda

الأعضاء
  • المساهمات

    44
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة Hussein Ouda

  1. أقوم بتطوير قالب PHP wordpress ووصلت لصفحة category.php و archive.php 
    وعند طلب الصفحة يظهر أول مقال فقط وليس كل مقالات الموقع بناء على (category / author / tag) 
    أريد أن يظهر تكرر المقالات بشكل بلوك begnation 
    رغم أني كتبت لوب في الكود : 
     

    <?php 
    // The Loop
    if (have_posts()) :
        while (have_posts()) :
            the_post(); //post
    ?>
    
    <main id="main">
        <!-- ======= Title Section ======= -->
        <section id="" class="">
            <div class="">
                <div class="content">
                    <h3>
                        <!-- طباعة واستدعاء الفئة (category) الحالية -->
                        <?php single_cat_title() ?>
                    </h3>
                </div>
            </div>
        </section>
        <!-- End Why Us Section -->
    
        <!-- ======= Content Section ======= -->
        <section id="" class="">
            <div class="container">
                <?php the_category(', ') ?>
                <h3><?php the_title() ?></h3>
                <p><?php /* دالة لاستدعاء تاريخ البوست */ echo get_the_date() ?> by: <strong><?php /* دالة لاستدعاء مؤلف البوست */ the_author_link() ?></strong></p>
                <p>
                    <?php 
                    // دالة لاستدعاء وصف البوست 
                    the_excerpt() ?>
                </p>
                <p>
                    <a href="<?php /* دالة ترجع رابط البوست */ the_permalink() ?>">Continue reading</a>
                </p>
            </div>
        </section>
        <!-- End Skills Section -->
    </main>
    <!-- End #main -->
    
    <?php 
    // End Loop
        endwhile;
    endif;
    ?>

     

    أرجو المساعدة

     

     

  2. تم حل الإشكالية 

    تبين عند دخولي إلى كود مكتبة pytube في github وجدت جميع التعليقات تؤكد أن المشكلة من نفس المكتبة ولكن تم تحديث المكتبة
    والان قمت بتحديث المكتبة وفعلاً اشتغل البرنامج بدون مشاكل 
    أكتب 

    pip install --upgrade pytube


    ستعمل بدون مشاكل بإذن الله 

  3. قمت ببرمجة برنامج بايثون لتحميل الفيديوهات من اليوتيوب

    وبعد وضع الرابط وبدء التحميل يخرج لي الخطأ التالي :

    
    
    Exception in Tkinter callback
    
    Traceback (most recent call last):
    
      File "C:\lib\tkinter\__init__.py", line 1892, in __call__
    
        return self.func(*args)
    
      File "d:\Youtube-Downloader.py", line 36, in DownloadVideo
    
        select = yt.streams.filter(progressive=True).first()
    
      File "C:\lib\site-packages\pytube\__main__.py", line 292, in streams
    
        return StreamQuery(self.fmt_streams)
    
      File "C:\lib\site-packages\pytube\__main__.py", line 177, in fmt_streams
    
        extract.apply_signature(stream_manifest, self.vid_info, self.js)
    
      File "C:\lib\site-packages\pytube\extract.py", line 409, in apply_signature
    
        cipher = Cipher(js=js)
    
      File "C:\lib\site-packages\pytube\cipher.py", line 43, in __init__
    
        self.throttling_plan = get_throttling_plan(js)
    
      File "C:\lib\site-packages\pytube\cipher.py", line 387, in get_throttling_plan
    
        raw_code = get_throttling_function_code(js)
    
      File "C:\lib\site-packages\pytube\cipher.py", line 301, in get_throttling_function_code
    
        code_lines_list = find_object_from_startpoint(js, match.span()[1]).split('\n')
    
    AttributeError: 'NoneType' object has no attribute 'span'
    
    

     

    أرفق لكم الكود التالي : 

    # Youtube Downloader
    from cgitb import text
    from logging import root
    from random import choices
    from secrets import choice
    from tkinter import *
    from tkinter import ttk
    from tkinter import messagebox
    from tkinter import filedialog
    from typing_extensions import Self
    from numpy import save
    from pytube import YouTube
    from soupsieve import select #pip install pytube3
    
    Folder_Name = ""
    
    #file location
    def openLocation():
        global Folder_Name
        Folder_Name = filedialog.askdirectory()
        if(len(Folder_Name) > 1):
            locationError.config(text=Folder_Name, fg="green")
        else:
            locationError.config(text="اختر المجلد", fg="red")
    
    #donwload video
    def DownloadVideo():
        choice = ytdchoices.get()
        url = ytdEntry.get()
    
        if(len(url)>1):
            ytdError.config(text="")
            yt = YouTube(url)
    
            if(choice == choices[0]):
                select = yt.streams.filter(progressive=True).first()
    
            elif(choice == choices[1]):
                select = yt.streams.filter(progressive=True, file_extension='mp4').last()
    
            elif(choice == choices[2]):
                select = yt.streams.filter(only_audio=True).first()
    
            else:
                ytdError.config(text="ألصق الرابط مجدداً", fg="red")
    
        #download function
        select.download(Folder_Name)
        ytdError.config(text="تم الانتهاء من التحميل!!")
    
    # -------- دالة من نحن --------
    def about():
        messagebox.showinfo("Techmakers - Hussein Ouda", "husseinaoda@mail.com : مرحبا بكم في برنامج تحميل الفيديوهات والصوتيات")
    
    root = Tk()
    root.title("Techmakers: v 1.0 Youtube Downloader")
    root.geometry("650x410+340+10") #set window
    root.resizable(False, False)
    root.columnconfigure(0, weight=1) #set all content in center.
    
    f1=Frame(root, width=580, height=100, bg='whitesmoke', bd=3, relief=GROOVE)
    f1.place(x=30, y=130)
    f2=Frame(root, width=580, height=55, bg='whitesmoke', bd=3, relief=GROOVE)
    f2.place(x=30, y=250)
    
    #Ytd Link Label
    t = Label(root, text="برنامج تحميل الفيديوهات والصوتيات", bg='#FF5F00', fg='#EEEEEE', font=("Tajawal", 15, 'bold'))
    t.pack(fill='x')
    
    ytdLabel = Label(root, text="ألصق رابط الفيديو",fg='#00092C', font=("Tajawal", 15, 'bold'))
    ytdLabel.pack()
    
    #Entry Box
    ytdEntryVar = StringVar()
    ytdEntry = Entry(root, width=52, justify='center', font=("Tajawal", 15), bg='#B20600', fg='#00092C', textvariable=ytdEntryVar)
    ytdEntry.pack()
    
    #Error Msg
    ytdError = Label(root, text="ملاحظات التحميل", fg="#B20600", font=("Tajawal", 10))
    ytdError.pack()
    
    #Asking save file label
    saveLabel = Label(root, text="اختر مكان حفظ الفيديو", bg="whitesmoke", fg='#00092C', font=("Tajawal", 15, 'bold'))
    saveLabel.place(x=390, y=140)
    
    #btn of save file
    saveEntry = Button(root, width=20, font=("Tajawal", 10, 'bold'), bg="#00092C", fg="#EEEEEE", text="مسار الحفظ", command=openLocation, cursor='sizing')
    saveEntry.place(x=410, y=180)
    
    #Error Msg location
    locationError = Label(root, text="لم يتم اختيار مسار حفظ الفيديو", bg='whitesmoke', fg="#B20600", font=("Tajawal", 15))
    locationError.place(x=100, y=190)
    
    #Download Quality
    ytdQuality = Label(root, text="", bg='whitesmoke', font=("Tajawal", 15, 'bold'))
    ytdQuality.place(x=430, y=255)
    
    #combobox
    choices = ["720p", "144p", "صوت فقط"]
    ytdchoices = ttk.Combobox(root, values=choices)
    ytdchoices.place(x=260, y=265)
    
    #download btn
    downloadbtn = Button(root, text="بدء التحميل", width=20, font=("Tajawal", 10, 'bold'), bg="#00092C", fg="#EEEEEE", command=DownloadVideo, cursor='clock')
    downloadbtn.place(x=40, y=255)
    
    #developer Label
    about_btn = Button(root, text='من نحن', width=20, font=("Tajawal", 10, 'bold'), bg='#FF5F00', fg='#EEEEEE', bitmap='info',command=about, cursor='heart')
    about_btn.place(x=350, y=350, height=30)
    
    #Close program
    exit_btn = Button(root, text='إغلاق البرنامج', width=20, font=("Tajawal", 10, 'bold'), bg='#FF5F00', fg='#EEEEEE', cursor='cross', command=root.quit)
    exit_btn.place(x=265, y=350, width=80, height=30)
    
    
    root.mainloop()
    

    أرجو المساعدة

     

  4. 
    
    import requests
    import time
    
    #global variables
    api_key = '15******-ce*0-42*d-9c*6-17******49*0'
    bot_key = '51******56:A*H-o_hf******Gm******ON******M4*bg'
    chat_id = '10******03'
    limit = 59000 #لو قل المبلغ عن هذا الرقم ارسل رسالة على بوت التلغرام
    time_interval = 60 * 5 #الاتصال بالموقع لمعرفة السعر كل 5 دقائق
    
    
    # دالة لمخاطبة الموقع وجلب السعر
    def get_price():
        url = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
        parameters = {
            'start':'1',
            'limit':'2',
            'convert':'USD'
        }
        headers = {
            'Accepts': 'application/json',
            'X-CMC_PRO_API_KEY': api_key,
        }
        response = requests.get(url, headers=headers, params=parameters).json()
        btc_price = response['data'][0]['quote']['USD']['price']
        return btc_price
    
    
    # دالة ترسل رسالة لو قل المبلغ عن الرقم المحدد ارسل رسالة على بوت التلغرام
    def send_update(chat_id, msg):
        url = f'https://api.telegram.org/bot{bot_key}/sendMessage?chat_id={chat_id}&text={msg}'
        requests.get(url)
    
    
    # دالة لتشغيل الدوال السابقة
    def main():
        while True:
            price = get_price()
            print(price)
            if price < limit:
                send_update(chat_id, f"سعر البتكوين:{price}")
            time.sleep(time_interval)
    main()
    

     

    بتاريخ On 18‏/3‏/2022 at 08:48 قال Abdollahi Mohammed:

    برجاء ارفاق شيفرة البرنامج ليتم معرفة مكان الخطأ حتى نستطيع معالجة المشكلة

    شكرا لك,

    code: 

    
    
    import requests
    import time
    
    #global variables
    api_key = '15******-ce*0-42*d-9c*6-17******49*0'
    bot_key = '51******56:A*H-o_hf******Gm******ON******M4*bg'
    chat_id = '10******03'
    limit = 59000 #لو قل المبلغ عن هذا الرقم ارسل رسالة على بوت التلغرام
    time_interval = 60 * 5 #الاتصال بالموقع لمعرفة السعر كل 5 دقائق
    
    
    # دالة لمخاطبة الموقع وجلب السعر
    def get_price():
        url = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
        parameters = {
            'start':'1',
            'limit':'2',
            'convert':'USD'
        }
        headers = {
            'Accepts': 'application/json',
            'X-CMC_PRO_API_KEY': api_key,
        }
        response = requests.get(url, headers=headers, params=parameters).json()
        btc_price = response['data'][0]['quote']['USD']['price']
        return btc_price
    
    
    # دالة ترسل رسالة لو قل المبلغ عن الرقم المحدد ارسل رسالة على بوت التلغرام
    def send_update(chat_id, msg):
        url = f'https://api.telegram.org/bot{bot_key}/sendMessage?chat_id={chat_id}&text={msg}'
        requests.get(url)
    
    
    # دالة لتشغيل الدوال السابقة
    def main():
        while True:
            price = get_price()
            print(price)
            if price < limit:
                send_update(chat_id, f"سعر البتكوين:{price}")
            time.sleep(time_interval)
    main()
    

     

    • أعجبني 1
  5. زملائي الأكارم

    عملت بوت على التلغرام بالغة بايثون لمعرفة سعر البتكوين ..

    عملت البوت واشتغل عندي ورفعته على سيرفر علشان يبقى شغال على طول وفعلاً ,

    لكن المشكلة انو لما حد جديد يشترك في البوت يتم الاشتراك لكن ما تظهر عنده رسائل البوت!!
    ما المشكلة؟

  6. بتاريخ 19 ساعات قال Wael Aljamal:

    يمكن التأكد من أن المتغير ليس فارغ لتنجب وضع %% وراء بعضهم

    
    se_var_val = "_"
    
    if str(self.se_var.get()) != ""
    	se_var_val = str(self.se_var.get())
    
    
    
    str(self.se_by.get())+" LIKE " + '%' + se_var_val + '%')

     

    قمت بتعريف المتغير في أعلى البرنامج : 

    # -------- variable = بيانات البحث في البرنامج --------
            self.se_by = StringVar()
            self.se_var = StringVar()

    👆

  7. قمت بكتابة دالة للبحث في البرنامج : 

    def search(self):
            con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ')
            cur = con.cursor()
            cur.execute("select * from employees where " +
            str(self.se_by.get())+" LIKE '%"+ str(self.se_var.get())+"%'")
            rows = cur.fetchall()
            if len (rows) !=0:
                self.student_table.delete(*self.student_table.get_children())
                for row in rows:
                    self.student_table.insert("", END, value=row)
                con.commit()
            con.close()

     

    ولا تعمل! حيث تعطي الخطأ التالي : 

    pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%'' at line 1")

    الرجاء المساعدة

     

    • أعجبني 2
  8. قمت بكتابة دالة بايثون لتعديل بيانات ومعلومات مدخله في قاعدة البيانات

    def update(self):
            con = pymysql.connect(
                host = 'localhost',
                user = 'root',
                password = '',
                database = 'employ')
            cur = con.cursor()
            cur.execute("update employees set family_members=%s, social_status=%s, gender=%s, date_birth=%s, id_number=%s, mail=%s, name=%s where id=%s",(
                        self.family_members_var.get(),
                        self.social_status_var.get(),
                        self.gender_var.get(),
                        self.date_birth_var.get(),
                        self.id_number_var.get(),
                        self.mail_var.get(),
                        self.name_var.get(),
                        self.id_var.get()
                        ))
            con.commit()
            self.fetch_all()
            self.clear()
            con.close()

    وخرج لي الخطأ التالي :

    pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1")

     

    • أعجبني 1
  9.  

    وجدت حل الإشكالية 

    يقول الخطأ 

    أنه يتوقع الحصول على iterable أي مؤشر على غرض معين،

    بينما يستقبل دالة، لذلك يجب استدعاء الدالة بوضع أقواس () لها 

    self.student_table.delete(*self.student_table.get_children())
                                                              ^^

    شكر لك يا طيب على مرورك المتفاعل 

     

     

  10. كتبت كود برنامج على python tkinter خاص ببيانات الموظفين 
    وتم الاتصال بقواعد البيانات وادخال المعلومات على الجدول بنجاح, 

    from tkinter import *
    from tkinter import ttk
    import pymysql
    
    class Employee:
        # ----------- إنشاء نافذة البرنامج -----------
        def __init__(self, root):
            self.root = root
            self.root.geometry('1300x650+22+22') # الأرقام الإضافية بعد الطول والعرض (22) هي توصيت الشاشة مسافة من اليسار ومن الأعلى
            self.root.title('برنامج إدارة الموظفين')
            self.root.configure(background="#316df4")
            self.root.resizable(False, False)
            title = Label(self.root,
                          text='[بيانات الموظفين]',
                          bg='#316df4',
                          font=('monospace',18),
                          fg='white'
                          )
            title.pack(fill='x')
    
            # ----------- variable -----------
            # -------- variable = البيانات الشخصية --------
            self.id_var = StringVar()
            self.name_var = StringVar()
            self.mail_var = StringVar()
            self.id_number_var = StringVar()
            self.date_birth_var = StringVar()
            self.gender_var = StringVar()
            self.social_status_var = StringVar()
            self.family_var = StringVar()
            # -------- variable = معلومات الاتصال --------
            self.nationality_var = StringVar()
            self.id_photo_var = StringVar()
            self.country_var = StringVar()
            self.governorate_var = StringVar()
            self.city_var = StringVar()
            self.phone_var = StringVar()
            self.skype_var = StringVar()
            self.telegram_var = StringVar()
    
            # ----------- تقسيم لأختيارات علوية -----------
            nb = ttk.Notebook(self.root)
            nb.place(x=900,y=34, width=400, height=460)
    
            f1 = Frame(nb, width='500', height='100', bg='#fff')
            nb.add(f1, text='بيانات شخصية')
    
            f2 = Frame(nb, width='500', height='100', bg='#fff')
            nb.add(f2, text='معلومات الاتصال')
    
            # ----------- أدوات التحكم  في البيانات الشخصية 1 -----------
            # Manage_Frame = Frame(self.root, bg='white')
            # Manage_Frame.place(x=10,y=190, width=200, height=460)
            lbl_ID = Label(f1, text='الرقم التسلسلي', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_ID.pack()
            ID_Entry = Entry(f1, textvariable=self.id_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            ID_Entry.pack()
    
            lbl_name = Label(f1, text='اسم الموظف', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_name.pack()
            Name_Entry = Entry(f1, textvariable=self.name_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Name_Entry.pack()
    
            lbl_email = Label(f1, text='البريد الإلكتروني', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_email.pack()
            Email_Entry = Entry(f1, textvariable=self.mail_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Email_Entry.pack()
    
            lbl_ID_Number = Label(f1, text='رقم الهوية', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_ID_Number.pack()
            ID_Number_Entry = Entry(f1, textvariable=self.id_number_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            ID_Number_Entry.pack()
    
            lbl_Date_Birth = Label(f1, text='تاريخ الميلاد', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Date_Birth.pack()
            Date_Birth_Entry = Entry(f1, textvariable=self.date_birth_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Date_Birth_Entry.pack()
    
            lbl_Gender = Label(f1, text='الجنس', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Gender.pack()
            combo_Gender = ttk.Combobox(
                f1,
                value=('ذكر', 'أنثى'),
                state='readonly',
                textvariable=self.gender_var
            )
            combo_Gender.pack()
    
            lbl_Social_Status = Label(f1, text='الحالة الاجتماعية', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Social_Status.pack()
            combo_Social_Status = ttk.Combobox(
                f1,
                value=('أعزب', 'متزوج'),
                state='readonly',
                textvariable=self.social_status_var
            )
            combo_Social_Status.pack()
    
            lbl_Family_Members = Label(f1, text='عدد أفراد الأسرة', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Family_Members.pack()
            Family_Members_Entry = Entry(f1, textvariable=self.family_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Family_Members_Entry.pack()
    
            # ----------- أدوات التحكم  في معلومات الاتصال 2 -----------
            # Manage_Frame = Frame(self.root, bg='white')
            # Manage_Frame.place(x=900, y=190, width=200, height=460)
            lbl_Nationality = Label(f2, text='الجنسية', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Nationality.pack()
            Nationality_Entry = Entry(f2, textvariable=self.nationality_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Nationality_Entry.pack()
    
            lbl_ID_Photo = Label(f2, text='صورة الهوية', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_ID_Photo.pack()
            ID_Photo_Entry = Entry(f2, textvariable=self.id_photo_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            ID_Photo_Entry.pack()
    
            lbl_Country = Label(f2, text='الدولة', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Country.pack()
            Country_Entry = Entry(f2, textvariable=self.country_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Country_Entry.pack()
    
            lbl_State = Label(f2, text='الولاية / المحافظة', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_State.pack()
            State_Entry = Entry(f2, textvariable=self.governorate_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            State_Entry.pack()
    
            lbl_City = Label(f2, text='المدينة', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_City.pack()
            City_Entry = Entry(f2, textvariable=self.city_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            City_Entry.pack()
    
            lbl_Phone_Number = Label(f2, text='رقم الموبايل', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Phone_Number.pack()
            Phone_Number_Entry = Entry(f2, textvariable=self.phone_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Phone_Number_Entry.pack()
    
            lbl_Skype = Label(f2, text='سكايب', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Skype.pack()
            Skype_Entry = Entry(f2, textvariable=self.skype_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Skype_Entry.pack()
    
            lbl_Telegram = Label(f2, text='تلغرام', bg='#fff', fg='#05234f', font=('monospace', 14))
            lbl_Telegram.pack()
            Telegram_Entry = Entry(f2, textvariable=self.telegram_var, bd='2', bg='#05234f', fg='#fff', justify='center')
            Telegram_Entry.pack()
    
            # ----------- buttons الأزرار -----------
            btn_Frame = Frame(self.root, bg="#fff")
            btn_Frame.place(x=900, y=500, width=400, height=148)
            title2 = Label(btn_Frame, text='لوحة التحكم', font=('monospace', 16), bg='#316df4', fg='#fff')
            title2.pack(fill='x')
    
            add_btn = Button(btn_Frame, text='إضافة موظف', bg='#05234f', fg='#fff', cursor='plus', command=self.add_student)
            add_btn.place(x=280, y=50, width=80, height=30)
    
            del_btn = Button(btn_Frame, text='حذف موظف', bg='#05234f', fg='#fff', cursor='target')
            del_btn.place(x=165, y=50, width=80, height=30)
    
            update_btn = Button(btn_Frame, text='تعديل بيانات', bg='#05234f', fg='#fff', cursor='circle')
            update_btn.place(x=50, y=50, width=80, height=30)
    
            clear_btn = Button(btn_Frame, text='إفراغ الحقول', bg='#05234f', fg='#fff', cursor='sizing')
            clear_btn.place(x=280, y=100, width=80, height=30)
    
            exit_btn = Button(btn_Frame, text='إغلاق البرنامج', bg='#05234f', fg='#fff', cursor='cross')
            exit_btn.place(x=165, y=100, width=80, height=30)
    
            about_btn = Button(btn_Frame, text='من نحن', bg='#05234f', fg='#fff', cursor='heart', bitmap='info')
            about_btn.place(x=50, y=100, width=80, height=30)
    
            # ----------- search manage البحث -----------
            search_Frame = Frame(self.root, bg="#fff")
            search_Frame.place(x=2, y=35, width=896, height=50)
    
            lbl_search = Label(search_Frame, text='البحث', font=('monospace', 16), bg='#fff', fg='#05234f')
            lbl_search.place(x=830, y=12)
    
            combo_search = ttk.Combobox(search_Frame, justify='right')
            combo_search['value']=('الرقم التسلسلي', 'الاسم', 'الإيميل', 'رقم الهوية', 'الجنس', 'الحالة الاجتماعية', 'المدينة', 'رقم الهاتف', 'المؤهل العلمي', 'الجامعة', 'نوع المهارة', 'المسمى الوظيفي', 'المعرفة المهنية', 'برامج التصميم', 'برامج المونتاج', 'مهارات البرمجة')
            combo_search.place(x=680, y=14)
    
            search_Entry = Entry(search_Frame, bd='2', bg='#05234f', fg='#fff', justify='right')
            search_Entry.place(x=545, y=14)
    
            search_btn = Button(search_Frame, text='بحث', bg='#05234f', fg='#fff', cursor='circle')
            search_btn.place(x=460, y=10, width=80, height=30)
    
            # ----------- dietals عرض النتائج والبيانات -----------
            Dietals_Frame = Frame(self.root, bg="#fff")
            Dietals_Frame.place(x=2, y=88, width=896, height=560)
                # -------- scroll --------
            scroll_x = Scrollbar(Dietals_Frame, orient=HORIZONTAL)
            scroll_y = Scrollbar(Dietals_Frame, orient=VERTICAL)
                # -------- treeview --------
            self.student_table = ttk.Treeview(Dietals_Frame,
                columns=('Telegram', 'Skype', 'Phone', 'City', 'Governorate', 'Country', 'ID photo', 'Nationality',
                         'Family', 'Social Status', 'Gender', 'Date Birth', 'ID Number', 'E-mail', 'Name', 'ID'),
                xscrollcommand=scroll_x.set,
                yscrollcommand=scroll_y.set)
            self.student_table.place(x=20, y=2, width=890, height=540)
            scroll_x.pack(side=BOTTOM, fill='x')
            scroll_y.pack(side=LEFT, fill='y')
            scroll_x.config(command=self.student_table.xview)
            scroll_y.config(command=self.student_table.yview)
            self.student_table['show'] = 'headings'
    
            self.student_table.heading('Telegram', text='تلغرام')
            self.student_table.heading('Skype', text='سكايب')
            self.student_table.heading('Phone', text='رقم الموبايل')
            self.student_table.heading('City', text='المدينة')
            self.student_table.heading('Governorate', text='المحافظة')
            self.student_table.heading('Country', text='الدولة')
            self.student_table.heading('ID photo', text='صورة الهوية')
            self.student_table.heading('Nationality', text='الجنسية')
    
            self.student_table.heading('Family', text='عدد أفراد الأسرة')
            self.student_table.heading('Social Status', text='الحالة الاجتماعية')
            self.student_table.heading('Gender', text='الجنس')
            self.student_table.heading('Date Birth', text='تاريخ الميلاد')
            self.student_table.heading('ID Number', text='رقم الهوية')
            self.student_table.heading('E-mail', text='البريد الإلكتروني')
            self.student_table.heading('Name', text='الاسم')
            self.student_table.heading('ID', text='الرقم التسلسلي')
    
            # ----------- con + add -----------
            self.fetch_all()
        def add_student(self):
            con = pymysql.connect(
                host = 'localhost',
                user = 'root',
                password = '',
                database = 'stud')
            cur = con.cursor()
            cur.execute("insert into student values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",(
                        self.id_var.get(),
                        self.name_var.get(),
                        self.mail_var.get(),
                        self.id_number_var.get(),
                        self.date_birth_var.get(),
                        self.gender_var.get(),
                        self.social_status_var.get(),
                        self.family_var.get(),
    
                        self.nationality_var.get(),
                        self.id_photo_var.get(),
                        self.country_var.get(),
                        self.governorate_var.get(),
                        self.city_var.get(),
                        self.phone_var.get(),
                        self.skype_var.get(),
                        self.telegram_var.get()
                        ))
            con.commit()
            con.close()
    
        def fetch_all(self):
            con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ')
            cur = con.cursor()
            cur.execute('select * from employees')
            rows = cur.fetchall()
            if len (rows) !=0:
                self.student_table.delete(*self.student_table.get_children)
                for row in rows:
                    self.student_table.insert("", END, value=row)
                con.commit()
            con.close()
    
    
    root = Tk()
    ob = Employee(root)
    root.mainloop()


    ولكن بعد كتابة دالة جديدة لعرض تلك المدخلات على واجهة البرنامج :

    def fetch_all(self):
            con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ')
            cur = con.cursor()
            cur.execute('select * from employees')
            rows = cur.fetchall()
            if len (rows) !=0:
                self.student_table.delete(*self.student_table.get_children)
                for row in rows:
                    self.student_table.insert("", END, value=row)
            	con.commit()
            con.close()

    وعند استدعاء الدالة :

    self.fetch_all()

    يعطيني الخطأ التالي: 

    line 560, in fetch_all
        self.student_table.delete(*self.student_table.get_children)
    TypeError: tkinter.ttk.Treeview.delete() argument after * must be an iterable, not method

    أرجو الإفادة

     

  11. هناك نشاط أو اختبار بلغة بايثون عن تحليل البيانات Data Analysis 

    6150e33a93093_WhatsAppImage2021-09-26at6_53_07PM.thumb.jpeg.bcc6565d9a7ef2bb9d16f6c34f64f984.jpeg

    اقتباس

     

    استخدم بيانات USA_Housing.txt وقم بتنفيذ المهام التالية:

    1. تحليل البيانات الاستكشافية (تأكد من كتابة استنتاجك من أي تحليل تقوم به)

    2. إنشاء بيانات التدريب والاختبار باستخدام 80٪ من بيانات التدريب و 20٪ من بيانات الاختبار

    3. استخدم مكتبة scipy أو statsmodels.api لإنشاء نموذج الانحدار الخطي

    4. الإبلاغ عن أي مقياس تقييم واحد لبيانات الاختبار

    5. كرر الخطوات 2 و 3 و 4 مع بيانات القطار والاختبار مع 95٪ من بيانات التدريب و 5٪ من بيانات الاختبار.

    اشرح النموذج الذي تعتقد أنه أفضل ولماذا.

     

     

    ارجو المساعدة ممن لديهم الخبرة في المجال

     

    • أعجبني 1
  12. اقتباس

     

    <?php
    $text = new Text("your string");

    $chars_num = $text->charachters_num();
    $words_num = $text->words_num();
    $lines_num = $text->lines_num();

    ?>

     

    لو أردنا أن نجعل هذا البرنامج يعمل مع 

    <!DOCTYPE HTML>  
    <html>
    	<head>
    	</head>
    	<body>  
    		<h2>Text Analyzer</h2>
    		<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    		  <textarea name="comment" rows="5" cols="40"></textarea>
    		  <br><br>
    		  <input type="submit" name="submit" value="Analyzer!">  
    		</form>
    	</body>
    </html>

    فورم ادخال نص وارساله ليرجع لنا قيم البرنامج

    ماذا يمكن أن نضيف في الكود 

     

  13. كتابة نص بلغة PHP يقبل قيمة نصية وله 3 وظائف : 

    أ. الأحرف (): إرجاع عدد الأحرف.

    ب. الكلمات (): إرجاع عدد الكلمات.

    ج. الأسطر (): إرجاع عدد الأسطر.

    اقتباس

    Write a PHP class "Text" that accept a text value and have 3 methods:
        a. characters(): Return the number of characters.
        b. words(): Return the number of words.
        c. lines(): Return the number of lines.
        
    Usage Example: $text = new Text("This is a dummy text."); $words = $text->words();

    الرجاء الإفادة فضلاً 

    • أعجبني 1
  14. بتاريخ On 7‏/4‏/2021 at 14:28 قال Salah Eddin Berriani:

    ما يمكن أن يسبب المشكل هو تسمية الملف بنفس اسم المكتبة مثلا pytube.py اذا كنت تسميه بهذه الطريقة فغير الاسم .

    ان لم يكن ذلك ما يسبب الخطأ بالنسبة لك فقم بحذف المكتبة وثبتها مجددا  

    
    pip uninstall pytube 
    
    pip install pytube

    ان لم يفلح معك ذلك قم بحذف المكتبة مجددا وثبت pytube3 f بدالها

    
    pip uninstall pytube 
    
    pip install pytube3

     

    صحيح تمام 

    بارك الله فيك 

     

  15. عند تشغيل كود البرنامج التالي :

    from pytube import YouTube
    
    link = 'https://youtu.be/UxaUgDcZ2KI'
    # link = input("Please enter the video url: ")
    
    video = YouTube(link)
    
    print(f"The video title is:\n{video.title} \n------------------------------")
    print(f"The video description is:\n{video.description} \n------------------------------")
    print(f"The video views are:\n{video.views} \n------------------------------")
    print(f"The video rating is:\n{video.rating} \n------------------------------")
    print(f"The video duration is:\n{video.length} seconds \n------------------------------")
    
    # print(video.streams)

    يظهر الخطأ التالي : 

    line 1, in <module>
        from pytube import YouTube
    ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:لدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py)
    
    Process finished with exit code 1

    ما المشكلة هنا؟ 

     

  16. بتاريخ On 4‏/4‏/2021 at 19:10 قال سامح أشرف:

    هل يمكنك تنفيذ الأمر التالي للتأكد إن كان قد تم تثبيت المكتبة:

    
    pip freeze

    من المفترض أن تعطي نتيجة كالتالي:

    6069e473119ab_Screenshot2021-04-04180810.png.4acd5142d9c40b6d058802817eb920b0.png

    إن لم تكن المكتبة مثبتة فيمكنك محاولة تثبيتها من خلال الأمر التالي:

    
    python -m pip install pytube

     

    قمت بتثبيتها على طريقة المهندس (Hasan Dayoub) 

    وعلى ما يبدو أنه تم تثبيتها لأنه ظهرت النتيجة التالية : 

    altgraph==0.17
    future==0.18.2
    pefile==2019.4.18
    pyinstaller==4.2
    pyinstaller-hooks-contrib==2021.1
    pytube==10.6.1
    pytube3==9.6.4
    pywin32-ctypes==0.2.0
    typing-extensions==3.7.4.3

    كما في الصورة : 

    pytube.JPG.efc270a602b22cc48ba254e924e706a0.JPG

     

    لكن هناك مشكلة عندما اشغل الكود يظهر التالي : 

    line 1, in <module>
        from pytube import YouTube
    ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:لدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py)
    
    Process finished with exit code 1

    كما في الصورة : 

    error.thumb.JPG.371a5ae939ffe7ba934e81cf1ea4a48e.JPG

    ما المشكلة هنا؟ 

    بتاريخ 2 ساعات قال Hasan Dayoub:

    اضغط على اشارة ال + في اسفل الشاشة، فتنقلك الى المكان المخصص لتنزيل المكتبة. 

    على ما يبدو أنه تم تثبيتها لأنه ظهرت النتيجة التالية :  

    ٠٥/٠٤/٢١
    ٠٩:٣١ م	Packages installed successfully: Installed packages: 'pip'
    
    ٠٩:٣٤ م	Packages installed successfully: Installed packages: 'pytube'
    
    ٠٩:٣٤ م	Packages installed successfully: Installed packages: 'pytube3'

     

    كما في الصورة :  

    inst.JPG.de5c6bef7c7487a81936f495ba86e1a3.JPG

     

    لكن هناك مشكلة عندما اشغل الكود يظهر التالي : 

    line 1, in <module>
        from pytube import YouTube
    ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:لدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py)
    
    Process finished with exit code 1

     

    كما في الصورة : 

    error.thumb.JPG.1e52370669936c11b098ddc47d682588.JPG

     

     

  17. بتاريخ On 31‏/3‏/2021 at 22:27 قال سامح أشرف:

    الخطأ الأول يقول أنه سيتم إستخدام 'setup.py install' بدلًا من تحميل ملف wheel وذلك لأن المكتبة wheel ليست مثبته، ويمكنك تثبيتها من خلال الأمر:

    
    pip install wheel

    وفي الجزء الثاني يخبرك أنك لا تستعمل آخر نسخة من pip 

    
    WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.

    ويمكنك أن تقوم بتحديثه من خلال فتح CMD كمدير Run As Administrator وكتابة الأمر التالي:

    
    pip install --upgrade pip

    أو الأمر:

    
    python -m pip install --upgrade --user pip

    في النهاية يمكنك تثبيت مكتبة pytube من خلال الأمر:

    
    pip install pytube

    بالتوفيق.

    قمت بكتابة بعض الأوامر على CMD قبل قراءة الرد وأصبح تعارض في إضافات plugins !! 

    فقمت بحذف ال Pycharm وتحميلة من جديد ثم رجعت بعد فتح ال CMD ووضعت الأمر : 

    pip install git+https://github.com/pytube/pytube

    فأعطاني النتيجة التالية : 

    Collecting git+https://github.com/pytube/pytube
      Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-6d6qt7ko
      Running command git clone -q https://github.com/pytube/pytube 'C:\Users\jit\AppData\Local\Temp\pip-req-build-6d6qt7ko'
    
    

    !!! 

    صورة توضيحية 

    pypypy.thumb.JPG.82e5388725e4bc125c97aab18c391653.JPG

     

     

     

    بتاريخ On 31‏/3‏/2021 at 22:36 قال Hasan Dayoub:

    يوجد عدة احتمالات للمشكلة.
    احيانا يمكن حل المشكلة من خلال تحميل بعض المكتبات الداعمة للويندوز من هنا
    كما يمكنك ان تقوم بتحميل المكتبة من خلال برنامج Pycharm ، وذلك بالذهاب الى 
    File > Settings > Python interpreter  ثم البحث عن المكتبة و إضافتها. 

    قمت بفتح ال Pycharm ثم تتبعت الأوامر File > Settings > Python interpreter 

    فظهر لي خيار المكتبة ولكن ام يظهر أمر تنزيل 

    اخترت المكتبة ولم يتغير شيء!! 

    صورة توضيحية : 

    settings.thumb.JPG.9cdc769cedbeeda78d26626844838f98.JPG

    • أعجبني 1
  18. أريد تنزيل مكتبة من مكتبات بايثون تدعى (pytube) 

    وعندما أضع أمر التنزيل [pip install git+https://github.com/pytube/pytube] في لوحة cmd يخرج الناتج التالي: 

    Collecting git+https://github.com/pytube/pytube
      Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-w3q3fwqn
    
    Requirement already satisfied (use --upgrade to upgrade): pytube==10.6.1 from git+https://github.com/pytube/pytube in c:\users\jit\appdata\local\programs\python\python39\lib\site-packages
    Using legacy 'setup.py install' for pytube, since package 'wheel' is not installed.
    
    WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
    You should consider upgrading via the 'c:\users\jit\appdata\local\programs\python\python39\python.exe -m pip install --upgrade pip' command.

    فأقوم بكتابة ما يطلبة الناتج [pip install --upgrade pip] في لوحة cmd يخرج الناتج التالي: 

    Installing collected packages: pip
      Attempting uninstall: pip
        Found existing installation: pip 20.2.3
        Uninstalling pip-20.2.3:
          Successfully uninstalled pip-20.2.3
    ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'C:\\Users\\jit\\AppData\\Local\\Temp\\pip-uninstall-pnqylmmj\\pip.exe'
    Consider using the `--user` option or check the permissions.

    صورة توضيحية : 

    pytube.thumb.JPG.c8099c6582f4b567e7b45a9456ae5741.JPG

     

    وفي محاولة أخرى لتثبيتها قمت بكتابة الأمر في ال (Terminal) داخل برنامج (PyCharm) يخرج الناتج التالي: 

    Collecting git+https://github.com/pytube/pytube
      Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-o5uke_cl
      Running command git clone -q https://github.com/pytube/pytube 'C:\Users\jit\AppData\Local\Temp\pip-req-build-o5uke_cl'
    

    صورة توضيحية : 

    Terminal.thumb.JPG.31a9b27c373cfdba8806fcbf7760ec63.JPG

    ولم أنجح في تثبيت المكتبة! وما السبب في ذلك؟ وكيف اصل إلى الحل؟ 

     

  19. السلام عليكم ورحمه الله 
    أحتاج مساعدة في عمل برنامج Credit Card php

    checker cvv and expiration date with Php

    المطلوب : 
    فحص البطاقة والتاريخ و cvv
    واذا التاريخ غلط يطبع invalid expire dat 
    واذا السي في في غلط يطبع invalid Cvv 
    واذا صحيح يطبع Successful card 

    ممكن نعملهم على برنامجين على نفس الموقع 
    برنامج expire date 
    وبرنامج cvv

    ... ... ... 

    كود البرنامج موجود مرفق creditCard.php لكن نحتاج عمل الفورم وبعض التعديلات على الكود.

    على من يجد عنده الكفاءة لذلك الرجاء الرد أو المراسلة. 

    وجزاكم الله خير

×
×
  • أضف...