目录
- Django 简介
- Django 安装与环境配置
- 创建 Django 项目
- Django 应用结构
- Django 视图与 URL 路由
- Django 模型与数据库
- Django 表单与用户输入
- Django 模板系统
- Django 管理后台
- Django 认证与用户管理
- Django 部署
- 参考资料
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 部署
- 配置 Gunicorn:
gunicorn --bind 0.0.0.0:8000 myproject.wsgi
- 配置 Nginx:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
- 启动 Nginx:
sudo systemctl restart nginx
发表回复