مشاركة حلول: انهاء مستودع للمنشورات Post Store

مرحباً جميعاً

المهمة المطلوبة

بإمكانك الإطلاع على المهمة المطلوبة من هنا

كيفية كتابة الأكواد في المنتدى

2 Likes
class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:

    def get_all(self):
        # get all posts
        return posts

    def add(self, post):
        # append post
        posts.append(post)
        return posts


    def get_by_id(self, id):
        # search for post by id - id البحث عن منشور بالمعرف
        result = None
        for post in posts:
            if post.id == id:
                result = post
                break
        return result

    def update(self,id,fields):
        post = self.get_by_id(id)
        post.name = fields["name"]
        post.photo_url = fields["photo_url"]
        post.body =fields["body"]
        return post

    def delete(self,id):
        post = self.get_by_id(id)
        posts.remove(post)
        return posts

1 Like

عمل رائع يا اسماء كالعادة :wink:

1 Like
class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:
    def get_all(self): 
        for post in posts:
            return post

    def add(self, post):
        self.post = post
        posts.append(post)
        return posts

    def get_by_id(self, id):
        result = None
        self.id = id 
        for post in posts:
            if post[0] == id:
                result = post
                break
        return result
    
    def update(self, id, fields):
        post = self.get_by_id(id)
        post.name = fields['name']
        post.photo_url = fields['photo_url']
        post.body = fields['body']
        return post

    def delete(self, id):
        post = self.get_by_id(id)
        posts.remove(post)
        return posts
1 Like

عمل رائع جدا يا يحيى… انتقل للتالي :wink:

1 Like

استاذ اجد صعوبة في فهم المطلوب والشرح بالنسبة لي غير مفهوم بالشكل الكامل حبذا لو تبسط لنا المفاهيم أكثر وعذرا على كلامي لأني صراحة لا أريد أن أتجاوز حل هذه المهام الشيقة

1 Like

بالتأكيد, نحن هنا للمساعدة :wink:

مالذي لم تفهميه بالضبط ؟ ماهو الجزء الذي استصعب عليك ؟

1 Like

شكرا استاذ ياسر عندما وصلت الى حل هذا الجزء لم أعرف كيف أقوم بحله كما فعل الزملاء من أعلى

1 Like

أهاا

الأمر سهل يا سارة, لدينا الدالة get_all التي بدورها سترجع قائمة المنشورات يعني فقط:

def get_all():
     return posts

الدالة add تقوم بإضافة منشور على القائمة بهذا الشكل posts.append

والدالة الأخيرة get_by_id تبحث عن المنشور باستخدام الـ id داخل الـ for loop (كل مرة تتحقق من post.id)

جربي العمل على كل دالة بشكل منفصل, واخبريني لو واجهتك أي مشكلة :wink:

1 Like

نعم شكرا أنا فهمت محتوى الكود بقي فقد ان أتدرب على بايثون لأنها جديدة علي تحياتي

1 Like

لا مشكلة ابداً, التعامل مع الأشياء الجديدة هي وظيفتنا (المبرمجين) :smile:

أنتظر حلك للمهمة :wink:

1 Like

تحياتي لكم جميعا
انا متأحر قليلا لكن لم اتترككم :slightly_smiling_face::slightly_smiling_face::wink:

class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body


posts = []


class PostStore:

    def get_all(self):
        
        return posts

    def add(self, id, photo_url, name, body):
        x = Post(id, photo_url, name, body)
        posts.append(x)

    def get_by_id(self, id):
        for post in posts:
            if post.id == id:
                return post
        return None

    def update(self, id, fields):
        for i,post in  enumerate(posts):
            if post.id== id:
                posts[i].name = fields['name']
                posts[i].photo_url = fields['photo_url']
                posts[i].body = fields['body']



    def delete(self, id):
        for post in posts:
            if post.id == id:
                posts.remove(post)


p = PostStore()
p.add(0, 'http', 'sohep', 'i go to school')
p.add(1, 'https', 'ahmad', 'my name is ahmad')
#print(posts[1].name)
updated_fields = {'name': 'Maryam',
                  'photo_url': 'https://images.pexels.com/photos/736716/pexels-photo-736716.jpeg?auto=compress&cs=tinysrgb&dpr=1&h=100&w=100',
                  'body': 'Lorem Ipsum'}
p.update(0,updated_fields)
x= p.get_by_id(0)
print(x.body)
p.delete(1)
1 Like

لا مشكلة ابدا يا صهيب :wink:

عمل رائع صراحة :+1:

1 Like

class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:
    def get_all(self):
        # get all posts - الحصول على كل المنشورات
        return posts

    def add(self, post):
        # append post - إضافة منشور
        posts.append(post)
        return posts

    def get_by_id(self, id):
        # search for post by id - id البحث عن منشور بالمعرف
        result = None
        for post in posts:
            if post.id == id:
                result = post
                break

        return result

    def update(self, id, fields):
        # update post data - id تعديل منشور بالمعرف
        post = self.get_by_id(id)
        post.name = fields['name']
        post.photo_url = fields['photo_url']
        post.body = fields['body']
        return post

    def delete(self, id):
        # delete post by id - id حذف منشور بالمعرف
        post = self.get_by_id(id)
        posts.remove(post)
        return posts


1 Like

ممتاز يا أحمد :+1:

class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:
    def get_all(self):
        # get all posts - الحصول على كل المنشورات
        return posts

    def add(self, post):
        # append post - إضافة منشور
        self.post = post
        posts.append(post)
        return posts

    def get_by_id(self, id):
        # search for post by id - id البحث عن منشور بالمعرف
        result = None

        for post in posts:
            if self.id == id:
                result = post
                break

            return result
    def update(self, id, fields):
       # update post data - id تعديل منشور بالمعرف
        post = self.get_by_id(id)
        post.name = fields["name"]
        post.photo_url = fields["photo_url"]
        post.body =fields["body"]
        return post

    def delete(self, id):
        # delete post by id - id حذف منشور بالمعرف
        post = self.get_by_id(id)
        posts.remove(post)
        return posts
1 Like

عمل رائع يا مصعب :+1:

1 Like
class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []


class PostStore:
    def get_all(self):
        # get all posts - الحصول على كل المنشورات
        return posts


    def add(self, post):
        # append post - إضافة منشور
        posts.append(post)
        return posts

    def get_by_id(self, id):
        result = None
        for post in posts:
            if post.id==id:
                result=post
                break
        return result

    def update(self,id,fields):
        post = self.get_by_id(id)
        post.name = fields["name"]
        post.photo_url = fields["photo_url"]
        post.body =fields["body"]
        return post

    def delete(self,id):
        post = self.get_by_id(id)
        posts.remove(post)
        return posts

2 Likes

عمل مضبوط يا أحمد :+1:

1 Like
class Post:

    def __init__(self, id, photo_url, name, body):
        
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:

    def get_all(self):
         # get all posts - الحصول على كل المنشورات
        for post in posts :
            return post

    def add(self, post):
        # append post - إضافة منشور
        self.post = post
        posts.append(post)
        return posts

    def get_by_id(self, id):
        # search for post by id -id البحث عن منشور بالمعرف 
        result = None
        self.id = id
        for post in posts :
            if post.id == id :
                result = post
                break
        return result

    def update(self, id, fields):
        # update post data - id تعديل منشور بالمعرف 
        post = self.get_by_id(id)
        post.photo_url = fields['photo_url']
        post.name = fields['name']
        post.body = fields['body']
        return post
       
    def delete(self, id):
        # delete post by id - id حذف المنشور بالمعرف   
        post = self.get_by_id(id)
        posts.remove(post)
        return posts
2 Likes