{{ post.title }}
{{ post.content|linebreaksbr }}
Published on: {{ post.published_date }}
Django 是一个高级 Python Web 框架,它鼓励快速开发和简洁、实用的设计。本教程将引导你从零开始构建一个功能齐全的动态网站,涵盖 Django 的核心概念和常用技巧。
一、环境搭建
安装 Python: 确保你的系统上安装了 Python 3.7 或更高版本。可以从 Python 官网下载安装包。
创建虚拟环境: 使用虚拟环境可以隔离项目依赖,避免版本冲突。
bash
python3 -m venv myenv # 创建名为 myenv 的虚拟环境
source myenv/bin/activate # 激活虚拟环境 (Linux/macOS)
myenv\Scripts\activate # 激活虚拟环境 (Windows)
bash
pip install django
二、创建项目和应用
bash
django-admin startproject mysite
blog
的应用。bash
cd mysite
python manage.py startapp blog
mysite/settings.py
中的 INSTALLED_APPS
列表中添加 'blog'
。python
INSTALLED_APPS = [
# ...
'blog',
]
三、定义模型
在 blog/models.py
中定义博客文章的模型:
```python
from django.db import models
from django.utils import timezone
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
```
四、创建数据库迁移
bash
python manage.py makemigrations blog
python manage.py migrate
五、创建管理员用户
bash
python manage.py createsuperuser
六、定义视图
在 blog/views.py
中定义视图函数:
```python
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__isnull=False).order_by('-published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
```
七、配置 URL 路由
blog/urls.py
:```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
path('post/
]
```
包含应用的 URL 到主项目 URL 配置 mysite/urls.py
:
```python
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
```
八、创建模板
在 blog
应用目录下创建 templates/blog
目录,并在其中创建 post_list.html
和 post_detail.html
文件:
```html
{% extends 'base.html' %}
{% block content %}
{% for post in posts %}
{% endfor %}
{% endblock %}
```
```html
{% extends 'base.html' %}
{% block content %}
{{ post.content|linebreaksbr }}
Published on: {{ post.published_date }}
{% endblock %}
```
```html
```
九、运行开发服务器
bash
python manage.py runserver
十、进阶学习
本教程提供了一个构建简单博客的入门指南。 Django 提供了丰富的功能和强大的工具,可以帮助你构建各种类型的 Web 应用程序。 通过不断学习和实践,你可以掌握 Django 的精髓,并构建出功能丰富、性能优异的动态网站。 记住要查阅 Django 官方文档,它是最全面和权威的学习资源. 探索 Django 的世界,释放你的创造力!