برنامه‌نویسی وب با پایتون

ایجاد شده توسط دکتر مصطفی جلیلی در آموزش برنامه نویسی پایتون 11 مارس 2025
اشتراک گذاری

1. معرفی فریمورک‌های وب پایتون (Flask و Django)


Flask


Flask یک فریمورک مینیمال و سبک برای توسعه وب با پایتون است. از ویژگی‌های آن می‌توان به سادگی، انعطاف‌پذیری، و قابلیت توسعه آسان اشاره کرد. Flask مناسب برای پروژه‌های کوچک و متوسط است.


ویژگی‌های Flask:



  • سبک و مینیمال

  • بدون نیاز به تنظیمات پیچیده

  • قابلیت توسعه افزونه‌های سفارشی

  • پشتیبانی از قالب‌ها با Jinja2

  • مدیریت درخواست‌ها و مسیرها


نصب Flask:


pip install flask

مثال ساده:


from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'سلام دنیا!'
if __name__ == '__main__':
app.run(debug=True)

Django


Django یک فریمورک قدرتمند و همه‌جانبه برای توسعه وب با پایتون است که شامل بسیاری از امکانات داخلی مانند ORM، مدیریت کاربر، و سیستم قالب‌بندی است.


ویژگی‌های Django:



  • معماری MVC (Model-View-Controller)

  • ORM داخلی برای ارتباط با دیتابیس

  • سیستم احراز هویت داخلی

  • مدیریت خودکار ادمین پنل


نصب Django:


pip install django

ایجاد یک پروژه Django:


django-admin startproject myproject
cd myproject
python manage.py runserver



2. ایجاد یک API ساده با Flask


RESTful API یکی از روش‌های پرکاربرد برای ارتباط بین کلاینت و سرور است. در این بخش، یک API ساده برای مدیریت کاربران ایجاد می‌کنیم.


نصب Flask و Flask-RESTful:


pip install flask flask-restful

کد نمونه:


from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
users = {}
class User(Resource):
def get(self, name):
return users.get(name, {'message': 'User not found'}), 200
def post(self, name):
users[name] = request.json
return users[name], 201
api.add_resource(User, '/user/')
if __name__ == '__main__':
app.run(debug=True)

در این کد، دو متد GET و POST برای دریافت و اضافه کردن کاربران پیاده‌سازی شده است.




3. ارتباط با پایگاه داده در فریمورک‌های وب


ارتباط با پایگاه داده در Flask


برای ارتباط با پایگاه داده در Flask می‌توان از SQLAlchemy استفاده کرد.


نصب SQLAlchemy:


pip install flask-sqlalchemy

مثال:


from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
@app.route('/add_user/')
def add_user(name):
user = User(name=name)
db.session.add(user)
db.session.commit()
return f'User {name} added successfully'
if __name__ == '__main__':
db.create_all()
app.run(debug=True)

ارتباط با پایگاه داده در Django


Django به‌صورت پیش‌فرض از ORM برای ارتباط با دیتابیس استفاده می‌کند.


ایجاد مدل:


from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)

اجرای مایگریشن دیتابیس:


python manage.py makemigrations
python manage.py migrate



4. کار با درخواست‌های HTTP (requests module)


ماژول requests یکی از محبوب‌ترین کتابخانه‌های پایتون برای ارسال درخواست‌های HTTP است.


نصب requests:


pip install requests

ارسال درخواست GET:


import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(response.json())

ارسال درخواست POST:


import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'Hello', 'body': 'World', 'userId': 1}
response = requests.post(url, json=data)
print(response.json())


نظرات (0)

اشتراک گذاری

این پست را با دیگران به اشتراک بگذارید

تنظیمات GDPR

When you visit any of our websites, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and manage your preferences. Please note, that blocking some types of cookies may impact your experience of the site and the services we are able to offer.