DEV Community

Cover image for انشاء منشور باستخدام بايثون في devto
omar.dev
omar.dev

Posted on

انشاء منشور باستخدام بايثون في devto

اكو مقولة جدا جميلة عن المبرمجين

I always choose a lazy programmer to do the difficult job, because lazy programmer will find an easy way to do it.
bill gates.

قد تسالني كيف يمكن ان يكون الكسل شيء جيد؟ راح نجاوب هذا السؤال في هذا البوست من خلال بناء مشروع ينشىء بوست جديد في باستخدام لغة برمجة بايثون dev.toموقع


راح نستخدم:

  1. dev.to api حتى نسوي الباك اند
  2. python كلغة برمجة
  3. localhost نسوي من خلاله سيرفر بسيط في flask

اول شي نحضر الفايلات
createing files


راح نحتاج ننزل هاي بكجات بايثون حتى نكمل المشروع عن طريق cmdكتابة هاي السطر في

pip install requests flask 
Enter fullscreen mode Exit fullscreen mode

بسيط flask هسة خلونا نحضر البكجات بايثون ونسوي سيرفر

# بكجات 
from flask import Flask, render_template
import requests

# برنامجنا
app = Flask(__name__)


# الي سويناه html هنا نسوي فد راوت في موقع راح يرجعنا فايل 
@app.route("/create", methods=['GET', 'POST'])
def get_create():
    if request.method == 'GET':
        return render_template('create.html')


# هذا كود نكتبه حتة السيرفر يشتغل
if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

html حلو, سيرفر جاهز بس بعدنا ما كاتبين شي في فايل

html فخلونا نكتب اشوية

<!-- /templates/html احنا في  --->
<!-- علمود اشوية ستايل tailwindcss طبعا راح استخدم  --->

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://cdn.tailwindcss.com"></script>
  </head>
  <body>
    <div class="root text-white bg-slate-900 h-screen w-full">
      <div class="text-center text-3xl pt-5 font-bold">create a new post</div>

      <form
        class="flex text-blue-600 flex-col gap-2 mx-auto w-max pt-20"
        action="http://127.0.0.1:5000/create"
        method="post"
      >
        <input required type="text" name="title" placeholder="title" />
        <textarea
          type="text"
          name="body_markdown"
          placeholder="body_markdown"
        ></textarea>
        <input required type="text" name="published" placeholder="published" />
        <input required type="text" name="tags" placeholder="tags" />
        <input
          required
          type="text"
          name="cover_image"
          placeholder="cover_image"
        />
        <input type="submit" value="submit" />
      </form>
    </div>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

بعدين خلونا نبدي السيرفر

python app.py
Enter fullscreen mode Exit fullscreen mode

وراح نشوف هذا الشكل http://localhost:5000/create نفتح
first look in webpage


dev.to من موقع api key قبل ما نبدي للباك اند نحتاج

  1. https://dev.to/settings/extensions نروح على

  2. generate api key ننزل لاخر شي في الصفحة نكتب اسم و نضغط
    generateing api key

  3. الي انطونه ياه بالنسبة الي api key ننسخ

    HtLrrPjaAfJdhxpTUJ5jKMxd


backend سوينا البناء الاساسي هسة اشوية

## هذا فنكشن راح يسوي بوست جديد
def Post_to_dev_to(title, body, tags, published, cover):
    headers = {
    'api-key': 'HtLrrPjaAfJdhxpTUJ5jKMxd', # اكتب رمز الي عندك بدال هذا
    }

    json_data = {
        'article': {
            'body_markdown': """
            ---
            title: {}
            published: {}
            tags: {}
            cover_image: {}
            ---
            {}
            """ .format(title, published, tags, cover, body),
        },
    }


    response = requests.post('https://dev.to/api/articles', headers=headers, json=json_data)
Enter fullscreen mode Exit fullscreen mode

بالنهاية نضيف الفنكشن للراوت الي سويناه من قبل

@app.route("/create", methods=['GET', 'POST'])
def get_create():
    if request.method == 'POST':
        title = request.form['title']
        body_markdown = request.form['body_markdown']
        published = request.form['published']
        tags = request.form['tags']
        cover_image = request.form['cover_image']

        Post_to_dev_to(title, body_markdown, tags, published, cover_image)
        return redirect(url_for('get_create'))
    else:
        return render_template('create.html')
Enter fullscreen mode Exit fullscreen mode

هذا هو كل شي نبدي البرنامج

python app.py
Enter fullscreen mode Exit fullscreen mode

اذا عندك اي مشكلة او سؤال تكدر تسال مني في كومنتات

Top comments (0)