اكو مقولة جدا جميلة عن المبرمجين
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موقع
راح نستخدم:
- dev.to api حتى نسوي الباك اند
- python كلغة برمجة
- localhost نسوي من خلاله سيرفر بسيط في flask
راح نحتاج ننزل هاي بكجات بايثون حتى نكمل المشروع عن طريق cmdكتابة هاي السطر في
pip install requests flask
بسيط 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)
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>
بعدين خلونا نبدي السيرفر
python app.py
وراح نشوف هذا الشكل http://localhost:5000/create نفتح
dev.to من موقع api key قبل ما نبدي للباك اند نحتاج
https://dev.to/settings/extensions نروح على
-
الي انطونه ياه بالنسبة الي 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)
بالنهاية نضيف الفنكشن للراوت الي سويناه من قبل
@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')
هذا هو كل شي نبدي البرنامج
python app.py
اذا عندك اي مشكلة او سؤال تكدر تسال مني في كومنتات
Top comments (0)