Python自学25 - Django快速上手

Python自学25 - Django快速上手

在前面的学习中,我们已经掌握了 Python 的基础语法、模块、虚拟环境以及一些常见的第三方库。今天,我们要迈入一个全新的领域------Web 开发 。而在 Python 的 Web 框架中,Django 无疑是最具代表性的一员。它功能强大、生态完善,被称为"开箱即用"的框架,非常适合快速构建网站和后台系统。

什么是 Django?

  • 全功能框架:Django 提供了从数据库 ORM、模板引擎、表单处理到用户认证的一整套解决方案。
  • 快速开发:只需几行命令,就能生成一个可运行的 Web 项目。
  • 安全可靠:内置防护机制(如防 SQL 注入、XSS、CSRF 攻击)。
  • 大厂背书:Instagram、Pinterest、Disqus 等知名网站都使用 Django。

⚙️ 环境准备

在开始之前,请确保你已经安装了 Python(推荐 3.9+)和虚拟环境工具。

bash 复制代码
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境 (Windows)
venv\Scripts\activate

# 激活虚拟环境 (Mac/Linux)
source venv/bin/activate

# 安装 Django
pip install django

安装完成后,可以通过以下命令确认版本:

bash 复制代码
django-admin --version

🚀 创建第一个 Django 项目

  1. 新建项目

    bash 复制代码
    django-admin startproject mysite
    cd mysite

    目录结构大致如下:

    复制代码
    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
  2. 运行开发服务器

    bash 复制代码
    python manage.py runserver

    打开浏览器访问 http://127.0.0.1:8000/,你会看到 Django 的欢迎页面。


📝 创建第一个应用 (App)

在 Django 中,**项目(Project)是整体,而 应用(App)**是功能模块。比如一个电商网站可能有 users、products、orders 等应用。

bash 复制代码
python manage.py startapp blog

生成的 blog 目录包含:

复制代码
blog/
    admin.py
    apps.py
    models.py
    views.py
    urls.py (需要手动创建)

🔗 配置 URL 与视图

  1. 在 blog/views.py 中写一个简单的视图函数:

    python 复制代码
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, Django!")
  2. 在 blog/urls.py 中配置路由:

    python 复制代码
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
  3. 在项目的 mysite/urls.py 中引入 blog:

    python 复制代码
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include('blog.urls')),
    ]

现在访问 http://127.0.0.1:8000/blog/,就能看到页面输出 Hello, Django!


🗄️ 使用数据库与模型

Django 内置 ORM,可以直接用 Python 类定义数据库表。

在 blog/models.py 中:

python 复制代码
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

然后执行:

bash 复制代码
python manage.py makemigrations
python manage.py migrate

这样数据库表就创建好了。


🛠️ Django 管理后台

Django 自带一个强大的后台管理系统。

  1. 在 blog/admin.py 注册模型:

    python 复制代码
    from django.contrib import admin
    from .models import Post
    
    admin.site.register(Post)
  2. 创建超级用户:

    bash 复制代码
    python manage.py createsuperuser
  3. 登录后台:访问 http://127.0.0.1:8000/admin/,输入账号密码,就能在后台管理 Post 数据。


🎯 总结

通过以上步骤,我们已经完成了:

  • 安装 Django 并创建项目
  • 新建应用并配置路由
  • 编写视图函数并返回响应
  • 使用 ORM 定义模型并迁移数据库
  • 进入 Django 自带的后台管理系统

这就是 Django 的"快速上手"流程。接下来,你可以尝试:

  • 使用模板系统渲染 HTML 页面
  • 编写表单并处理用户输入
  • 构建一个简单的博客系统
相关推荐
Cc.Y11 分钟前
Java零基础入门:封装与继承 —— 从“裸奔“到“穿衣服“,从“重复造轮子“到“站在巨人肩膀上“
java·开发语言
Escalating_xu13 分钟前
【C 语言】深入理解指针(4):回调函数、qsort、void * 与泛型排序的模拟实现
java·c语言·开发语言
吠品35 分钟前
GitHub 周榜拆解:决策小模型扎堆上位
c语言·开发语言·算法
见叶之秋1 小时前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
逗脑IDE1 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
小师兄吃牛肉1 小时前
C语言篇:内联函数
c语言·开发语言
协皓家具2 小时前
2026年广州岛台吧台椅厂家有啥新变化
大数据·运维·python·devops
yuniko-n2 小时前
【Java】字符串相关坑点
java·开发语言·python
用户019027581612 小时前
如何用 Python 统计 A 股连续涨停(几连板)?
python
外收内放2 小时前
Python基础语法练习题(拓展1)
python·游戏