您好,登录后才能下订单哦!
# Django入门项目操作实例
## 前言
Django作为Python最流行的Web框架之一,以其"开箱即用"的特性和完善的文档体系深受开发者喜爱。本文将通过一个完整的博客系统开发实例,带您快速掌握Django的核心开发流程。
## 环境准备
### 1. 安装Python
确保系统已安装Python 3.6+:
```bash
python --version
python -m venv myenv
source myenv/bin/activate # Linux/Mac
myenv\Scripts\activate # Windows
pip install django
django-admin startproject myblog
cd myblog
项目结构说明:
myblog/
manage.py
myblog/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
python manage.py startapp blog
需在settings.py
中注册应用:
INSTALLED_APPS = [
...
'blog.apps.BlogConfig',
]
编辑blog/models.py
:
from django.db import models
from django.contrib.auth.models import User
class Category(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True)
def __str__(self):
return self.title
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
编辑blog/admin.py
:
from django.contrib import admin
from .models import Category, Post
admin.site.register(Category)
admin.site.register(Post)
访问http://127.0.0.1:8000/admin
即可管理数据
编辑blog/views.py
:
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_list(request):
posts = Post.objects.all().order_by('-created_at')
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(myblog/urls.py
):
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
应用级URL(新建blog/urls.py
):
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
path('post/<int:pk>/', views.post_detail, name='post_detail'),
]
blog/
templates/
blog/
base.html
post_list.html
post_detail.html
base.html
:
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}My Blog{% endblock %}</title>
</head>
<body>
<header>
<h1><a href="/">My Blog</a></h1>
</header>
<main>
{% block content %}
{% endblock %}
</main>
</body>
</html>
post_list.html
:
{% extends 'blog/base.html' %}
{% block content %}
{% for post in posts %}
<article>
<h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
<p>{{ post.content|truncatechars:200 }}</p>
<time>Published: {{ post.created_at }}</time>
</article>
{% endfor %}
{% endblock %}
post_detail.html
:
{% extends 'blog/base.html' %}
{% block content %}
<article>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<time>Published: {{ post.created_at }}</time>
{% if post.category %}
<p>Category: {{ post.category.name }}</p>
{% endif %}
</article>
{% endblock %}
blog/
static/
blog/
style.css
style.css
:
body {
font-family: Arial, sans-serif;
line-height: 1.6;
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
article {
margin-bottom: 40px;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
在模板头部添加:
{% load static %}
<link rel="stylesheet" href="{% static 'blog/style.css' %}">
python manage.py runserver
http://127.0.0.1:8000/
http://127.0.0.1:8000/post/1/
通过这个完整的博客系统实例,我们实践了Django开发的主要流程: 1. 项目创建与环境配置 2. 数据模型设计与迁移 3. 后台管理界面配置 4. 视图函数与URL路由 5. 模板系统与静态文件处理
Django的MTV模式(Model-Template-View)提供了清晰的代码组织方式,其丰富的内置功能可以显著提高开发效率。建议读者在此基础上继续探索Django的更多高级特性,如中间件、信号系统、缓存机制等。 “`
注:本文实际约1500字,通过调整示例代码的详细程度或扩展功能建议部分可精确控制字数。如需完整1550字版本,可适当增加以下内容: 1. 用户认证部分的详细实现 2. 分页功能的代码示例 3. Django调试技巧章节 4. 部署到生产环境的简要说明
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。