目录

  1. Django 简介
  2. Django 安装与环境配置
  3. 创建 Django 项目
  4. Django 应用结构
  5. Django 视图与 URL 路由
  6. Django 模型与数据库
  7. Django 表单与用户输入
  8. Django 模板系统
  9. Django 管理后台
  10. Django 认证与用户管理
  11. Django 部署
  12. 参考资料

1. Django 简介

Django 是一个 Python Web 框架,主要特点包括:

  • 快速开发(Batteries-included,开箱即用)
  • MVC 设计模式(Django 采用 MTV 模式)
  • 内置 ORM(对象关系映射),支持多种数据库
  • 强大的 URL 路由系统
  • 内置身份验证和管理后台
  • 高扩展性,可用于构建小型网站或大型应用

2. Django 安装与环境配置

2.1 安装 Python 和 Django

确保 Python 版本为 3.6+,然后使用 pip 安装 Django:

pip install django

检查 Django 是否安装成功:

django-admin --version


3. 创建 Django 项目

使用 django-admin 命令创建新项目:

django-admin startproject myproject
cd myproject

运行开发服务器:

python manage.py runserver

在浏览器访问 http://127.0.0.1:8000/,看到 Django 欢迎页面表示成功运行。


4. Django 应用结构

myproject/
│── manage.py          # 项目管理脚本
│── myproject/         # 项目主目录
│   ├── __init__.py
│   ├── settings.py    # 项目配置
│   ├── urls.py        # URL 路由
│   ├── asgi.py
│   └── wsgi.py

Django 项目可以包含多个 应用(App),使用以下命令创建:

python manage.py startapp myapp

应用结构如下:

myapp/
│── models.py         # 数据库模型
│── views.py          # 视图
│── urls.py           # 应用路由
│── admin.py          # 后台管理
│── forms.py          # 表单
│── templates/        # 模板文件
│── static/           # 静态资源(CSS、JS)


5. Django 视图与 URL 路由

views.py 添加视图函数:

from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello, Django!")

urls.py 配置路由:

from django.urls import path
from myapp.views import home

urlpatterns = [
    path('', home),
]

访问 http://127.0.0.1:8000/,即可看到 “Hello, Django!”。


6. Django 模型与数据库

Django 默认使用 SQLite,可以修改 settings.py 配置数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydb',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

创建数据库模型(models.py):

from django.db import models

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

运行迁移:

python manage.py makemigrations
python manage.py migrate


7. Django 表单与用户输入

forms.py 定义表单:

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

views.py 处理表单:

from django.shortcuts import render
from .forms import ContactForm

def contact(request):
    form = ContactForm()
    return render(request, 'contact.html', {'form': form})


8. Django 模板系统

templates/home.html

<!DOCTYPE html>
<html>
<body>
    <h1>Hello, {{ name }}</h1>
</body>
</html>

views.py

def home(request):
    return render(request, 'home.html', {'name': 'Django'})


9. Django 管理后台

创建超级用户:

python manage.py createsuperuser

访问 http://127.0.0.1:8000/admin/ 进入 Django 后台。


10. Django 认证与用户管理

启用用户登录:

from django.contrib.auth import authenticate, login

def user_login(request):
    user = authenticate(username='admin', password='password')
    if user is not None:
        login(request, user)


11. Django 部署

11.1 使用 Gunicorn 运行

pip install gunicorn
gunicorn myproject.wsgi

11.2 Nginx + Gunicorn 部署

  1. 配置 Gunicorn:
gunicorn --bind 0.0.0.0:8000 myproject.wsgi

  1. 配置 Nginx:
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

  1. 启动 Nginx:
sudo systemctl restart nginx


12. 参考资料

出站链接

站内链接