网站首页 > 技术文章 正文
为什么选择 Django?
Django = 高效 + 全能 + 开箱即用
内置功能 | 说明 |
ORM | 数据库操作更高效 |
Admin | 管理后台 1 分钟搭好 |
Auth | 登录认证/权限管理自动搞定 |
路由、表单、静态资源 | 通通内置 |
一句话:你能想到的,它基本都有!
学习本来就不是一蹴而就的事,不过只要你肯练、敢用,坚持,你一定能看到变化!
快速构建 Django 项目
pip3 install django
django-admin startproject mysite
cd mysite
python manage.py runserver
访问 http://127.0.0.1:8000,看到欢迎页
创建应用 & 路由注册
python manage.py startapp blog
注册到 settings.py > INSTALLED_APPS:
INSTALLED_APPS = [
'blog',
...
]
定义视图 blog/views.py:
from django.http import HttpResponse
def index(request):
return HttpResponse("抗战胜利80周年纪念活动十项安排")
配置路由 mysite/urls.py:
from blog import views
urlpatterns = [
path('', views.index),
]
模型设计 & 数据操作
blog/models.py:
from django.db import models
class Post(models.Model):
objects = None
title = models.CharField(max_length=100)
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
迁移表结构:
python manage.py makemigrations
python manage.py migrate
使用 ORM 写入数据:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Fish
@File :main.py
@Date :2025/6/29 20:20
@Author : malijie
"""
import os
import django
# 设置 Django 配置模块
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()
# 注意:必须在 setup 之后再导入模型
from blog.models import Post
Post.objects.create(title="Hello Django", content="第一篇文章")
print(" 创建成功!")
查询所有:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Fish
@File :main.py
@Date :2025/6/29 20:20
@Author : malijie
"""
import os
import django
# 设置 Django 配置模块
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()
# 注意:必须在 setup 之后再导入模型
from blog.models import Post
posts = Post.objects.all()
print(" 当前文章记录:")
for post in posts:
print(f"{post.id}: {post.title} - {post.content}")
管理后台:不用写前端,自动生成!
python manage.py createsuperuser
访问 /admin/,登录后自动管理文章!
如需展示模型:
# blog/admin.py
from .models import Post
admin.site.register(Post)
表单数据提交(简洁又强大)
定义表单:
from django import forms
class PostForm(forms.Form):
title = forms.CharField()
content = forms.CharField(widget=forms.Textarea)
在视图中接收 POST 表单:
from .forms import PostForm
def post_create(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
# 保存逻辑
print(form.cleaned_data)
else:
form = PostForm()
RESTful 接口(配合 Django REST Framework)
安装:
pip install djangorestframework
配置:
INSTALLED_APPS = [
'rest_framework',
...
]
定义序列化器:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Fish
@File :main.py
@Date :2025/6/29 20:20
@Author : malijie
"""
import os
import django
from rest_framework import serializers, viewsets
from rest_framework.routers import DefaultRouter
# 设置 Django 配置模块
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()
# 注意:必须在 setup 之后再导入模型
from blog.models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
# 假设你有一个 Post 对象
post = Post.objects.first()
# 序列化这个对象
serializer = PostSerializer(post)
# 打印序列化后的数据
print(serializer.data)
定义接口:
from django.http import HttpResponse
from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer
def index(request):
return HttpResponse("抗战胜利80周年纪念活动十项安排")
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
路由注册(使用 router):
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Fish
@File :urls.py
@Date :2025/6/30 20:25
@Author : malijie
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import PostViewSet
router = DefaultRouter()
router = DefaultRouter()
router.register(r'posts', PostViewSet)
urlpatterns = [
path('', include(router.urls)),
]
访问
http://127.0.0.1:8000/posts/,接口搞定!
开发必备技巧
功能 | 示例代码 |
获取 GET 参数 | request.GET.get("id") |
获取 POST 参数 | request.POST.get("title") |
返回 JSON 响应 | return JsonResponse({...}) |
上传文件处理 | request.FILES['file'] |
登录验证 | @login_required |
设置 Cookie | response.set_cookie(...) |
Session 使用 | request.session['uid'] = 1 |
实际场景应用
自动化测试平台
管理后台系统
多人博客系统
数据可视化平台(配合 matplotlib、echarts)
结合前端框架做 API 后端(React、Vue)
总结一句话
Django 是 Python 后端开发的王炸级别框架,功能全,生态大,能快能稳能跑通上线。
从个人项目到企业系统,它都能轻松胜任!
下期预告:
《每天一个 Python 库:FastAPI 异步接口超丝滑,效率爆表!》
如果你觉得有用,点赞关注不迷路,后续更新更多自动化测试经验,我们一起成长!欢迎评论区留言!
猜你喜欢
- 2025-07-03 pytorch v2.7.0震撼发布!Blackwell GPU支持+编译性能狂飙,AI开发
- 2025-07-03 PyWebView:用 Python 构建桌面应用的神器
- 2025-07-03 最受欢迎 Top 12 Python 开源框架,你都用过吗?
- 2025-07-03 Python Web 框架(pythonweb框架django)
- 2025-07-03 用 Python 和 Pywebview 打造现代可视化 GUI 界面
- 2025-07-03 RabbitMQ架构详解(7大架构原理模型图解)
- 2025-07-03 【Python程序开发系列】使用Flask实现前后端分离(案例)
- 2025-07-03 FastUI:用Python构建高性能React应用,告别JavaScript
- 2025-07-03 UI自动化测试框架:Playwright 官方教程(三)—— 架构与通信机制
- 2025-07-03 Python 失宠!Hugging Face 用 Rust 新写了一个 ML框架,现已低调开源
你 发表评论:
欢迎- 586℃几个Oracle空值处理函数 oracle处理null值的函数
- 580℃Oracle分析函数之Lag和Lead()使用
- 568℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 564℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 561℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 553℃【数据统计分析】详解Oracle分组函数之CUBE
- 539℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 534℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)