Django 是 Python 生态最流行的全能型 Web 框架,GitHub 星标超过 7 万,"完整体验" 是它的优势,开箱即用,想做 Web 项目拿来就能写。
我用 Django 做过好几个项目,从个人博客到企业后台,聊聊它为什么这么多人用,新手入门值得吗。
Python 写 Web 项目,你要自己选路由、ORM、模板引擎、认证、后台管理,拼来拼去太费时间。Django 全套都给你,ORM 有了,后台管理自动生成,认证系统做好了,连路由分发都想好了,你只管写业务。
开发速度快,想快速出个原型,或者做个中小项目,Django 几天就能跑起来,不用天天纠结选什么库,省好多选择困难症。
文档特别完善,中文翻译也到位,新手碰到问题,文档里基本都能找到答案,不用到处搜。
安装创建项目:
pip install djangodjango-admin startproject mysitecd mysitepython manage.py startapp blog写个简单视图:
# blog/views.pyfrom django.shortcuts import render, get_object_or_404from .models import Postdefindex(request): posts = Post.objects.all()return render(request, 'blog/index.html', {'posts': posts})defdetail(request, post_id): post = get_object_or_404(Post, id=post_id)return render(request, 'blog/detail.html', {'post': post})配置路由:
# mysite/urls.pyfrom django.urls import pathfrom blog import viewsurlpatterns = [ path('', views.index, name='index'), path('posts/<int:post_id>/', views.detail, name='detail'),]定义模型:
# blog/models.pyfrom django.db import modelsclassPost(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True)创建表迁移,启动开发服务器:
python manage.py makemigrationspython manage.py migratepython manage.py runserver访问 http://127.0.0.1:8000 就能看到页面,后台管理 /admin 直接能用,创建个管理员账号就能登录管理数据。
不用写原生 SQL,用 Python 语法就能查数据,filterexcludeorder_by 拼起来就好,复杂查询也能搞定,换数据库改个配置就行,代码不用改。数据库迁移自动做,改了模型执行命令就行,不用手动改表结构。
创建模型之后,注册一下就自动生成后台,增删改查全有了,你直接就能用它管理数据,不用自己写后台管理页面,省好大一块工作量。
用户注册、登录、权限管理都做好了,你直接用就行,想扩展也方便,不用自己从头写认证,安全问题 Django 帮你考虑了。
URL 路由直接映射到视图函数,写法简单,正则也支持,命名空间分组,项目大了也不乱。反向解析生成 URL,改路由不用到处改链接地址。
模板语法简单,继承复用,写前端页面很快,前后端不分离的项目,用 Django 模板直接写,开发速度快。
全栈开发 Python Web,快速开发项目,Django 最合适,全套都有,不用自己拼,几天就能上线。内容管理系统、博客、企业官网,这些用 Django 特别快,后台自动有了,你只管写前台模板。
后台管理系统,很多企业内部工具,用 Django 做很快,模型定义好,后台自动出来,员工直接就能用,开发成本很低。
电商网站、SaaS 应用,中型项目完全没问题,Django 扛得住,不少大公司也用它做核心业务。学习 Python Web 开发,第一个框架就学 Django,文档好,全栈能走通,学完就能做项目,成就感来得快。
优点太多了,开箱即用,全套配齐,不用自己选依赖拼框架,开发速度真的快。社区大,碰到问题百度一搜全是答案,第三方包也多,想要什么功能基本都有。稳定更新这么多年,安全问题处理得及时,放心用在生产环境。
缺点也有,全功能意味着比较重,如果你就写个简单接口,用 Django 有点大材小用,启动比 Flask 慢。虽然 REST framework 很好用,但做纯 API 前后端分离,还是比 FastAPI 重一点。
默认是同步写法,要做异步得改,虽然现在也支持异步,但生态还是同步用的多,高并发场景不如异步框架爽。灵活性不如 Flask,你想自己选组件,Django 会强迫你用它的那一套。
出来快二十年了,一直是 Python Web 框架的第一梯队,用户特别稳定,版本更新稳定,每年更两三个版本,新特性加得稳,破坏性变更少,老项目升级容易。
现在虽然有 FastAPI 这些新框架,但 Django 全栈开发的地位没人能替代,做全栈项目还是首选。国内很多公司用 Python 做 Web,基本都是 Django,招聘需求一直稳定。
学 Python Web 开发,肯定值得学,不管你找工作还是自己做项目,Django 都能满足。学会它,你一个人就能从数据库写到前端,全栈通吃,做个人项目特别爽。
入门也不慢,跟着官方教程走一遍,一天就能做出一个简单博客,成就感来的快,越写越有动力。就算你后来用别的框架,Django 这套思想也能用,全栈开发经验很有用。
如果你喜欢快速出活,不喜欢折腾各种选择,Django 就是为你准备的,"自带电池" 真不是吹的,用过就知道舒服。
项目地址:https://github.com/django/django

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
▲扫描二维码-免费领取
推荐阅读
点击 阅读原文了解更多