Python Flask Web Framework - Detailed Complete Guide
1. Flask Framework Parichay
Flask ek lightweight web framework hai jo Python me web applications banane ke liye use kiya jata hai. Flask ko micro-framework bhi kaha jata hai kyunki yeh minimalistic hai aur developers ko freedom deta hai apne application ko customize karne ke liye.
Werkzeug web server aur Jinja2 templating engine use karta hai, jo web requests handle karna aur HTML rendering me madad karte hain.
2. Flask Installation
Flask install karne ke liye aap command line me ye command run karein:
pip install flask
3. Flask Application Structure
Flask application ka simple structure is prakar hota hai:
/project_folder /app.py /templates/ home.html /static/ style.css
Ye folder structure basic hai jisme application ka main code app.py
me hota hai, HTML templates templates
folder me, aur CSS/JS images static
folder me.
4. Flask Application Banana
Sabse pehla Flask program kaisa hota hai dekhein:
from flask import Flask app = Flask(name) @app.route("/") def home(): return "Hello, Flask!" if name == "main": app.run(debug=True)
Yah code ek basic web server banata hai jo root URL /
ke liye "Hello, Flask!" return karta hai. debug=True
se development mode on hota hai, jo code me changes detect karke automatic reload karta hai aur detailed error messages dikhata hai.
5. Routing Kaise Kaam Karta Hai?
Routing se hum URL ko functions ke sath map karte hain. Har route ek URL path ko represent karta hai.
@app.route("/about") def about(): return "About Page"
Isse agar user /about
URL par jaye to "About Page" display hoga.
6. URL Variable Rules
Aap URL me variables bhi rakh sakte hain:
@app.route("/user/") def show_user(username): return f"User: {username}"
Yeh dynamic route ko support karta hai jahan username URL se liya jata hai.
7. Templates Aur Dynamic Content
Flask me HTML pages ko alag template files me store karte hain jo templates
folder me rahte hain. Jinja2 engine ke zariye dynamic data bheja jata hai.
Example:
# app.py me from flask import Flask, render_template app = Flask(__name__) @app.route("/") def home(): return render_template("home.html", name="Student") templates/home.htmlWelcome, {{ name }}!
8. Static Files (CSS, JS, Images)
CSS, JavaScript aur images ko static
folder me rakha jata hai. Ye url se accessible hote hain.
Template me CSS link karne ka tarika:
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
9. Forms Aur HTTP Methods
Flask me forms submit karne ke liye aap GET
aur POST
methods ka use karte hain.
from flask import Flask, request, render_template app = Flask(name) @app.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": username = request.form["username"] return f"Welcome, {username}!" return render_template("login.html") login.html me form:
10. Redirects aur URL Building
Requests ke baad user ko redirect karne ke liye redirect
aur url_for
ka use hota hai.
from flask import redirect, url_for @app.route("/submit", methods=["POST"]) def submit(): # process return redirect(url_for('home'))
11. Flask me Session Management
Session data user ke browser me temporary store karne ke liye Flask ka session
object use hota hai, jisme secret key zaruri hoti hai.
from flask import Flask, session app = Flask(name) app.secret_key = "supersecretkey" @app.route("/set/") def set_session(): session["user"] = "Student" return "Session Set" @app.route("/get/") def get_session(): user = session.get("user", "Not set") return f"User is {user}"
12. Flask Extensions
Flask ki functionality badhane ke liye bahut saare extensions available hain:
- Flask-SQLAlchemy: Database ORM support ke liye.
- Flask-WTF: Forms ko handle karne ke liye.
- Flask-Login: User authentication ke liye.
13. Debugging Aur Testing
Development ke dauran debug=True
rakhna chaiye jisse error messages aur auto reload milta hai.
Unit testing ke liye Flask ka test client use kar sakte hain.
14. Deployment
Flask applications ko production me deploy karne ke liye aap Gunicorn jaise WSGI servers aur platforms jese Heroku, AWS, DigitalOcean use kar sakte hain.
15. Summary
Flask ek lightweight powerful framework hai jo beginners ke liye ideal hai simple se complex web apps banane ke liye. Iska flexibility aur simplicity explain karta hai ki kaise aap fast web development kar sakte hain. Routing, templating, forms, sessions jese core features se aap full-fledged apps bana sakte hain. Extensions aur deployment options se Flask professional projects me bhi fit baithta hai. Dhyan se seekhkar aur practice karke aap Flask me expert ban sakte hain!