Django:一个王者级Web开发Python框架

大家好啊!今天我要和大家分享Python世界中的"网站开发利器"——Django框架。它就像是一个全能的网站建筑师,不仅自带了后台管理系统、数据库接口、用户认证等功能,还能帮我们处理各种安全问题。使用Django,我们可以快速搭建一个功能完善的网站。无论你是想做个人博客,还是想开发企业级网站,Django都能帮你实现!

1. Django快速入门

首先,我们需要安装Django:

# 安装Django
pip install django

# 创建新项目
django-admin startproject mysite

# 创建新应用
cd mysite
python manage.py startapp blog

小贴士:项目(project)和应用(app)的区别:一个项目可以包含多个应用,就像一个网站可以有博客、论坛、商城等多个模块。

基本项目结构

mysite/
    ├── manage.py           # 项目管理脚本
    ├── mysite/            
    │   ├── __init__.py
    │   ├── settings.py    # 项目设置
    │   ├── urls.py        # URL配置
    │   └── wsgi.py        # WSGI配置
    └── blog/
        ├── __init__.py
        ├── admin.py       # 后台管理
        ├── models.py      # 数据模型
        ├── views.py       # 视图函数
        └── apps.py        # 应用配置

2. Models:定义数据模型

在blog/models.py中创建我们的第一个模型:

from django.db import models
from django.contrib.auth.models import User

class BlogPost(models.Model):
    title = models.CharField(max_length=200)  # 标题
    content = models.TextField()              # 内容
    created_at = models.DateTimeField(auto_now_add=True)  # 创建时间
    author = models.ForeignKey(User, on_delete=models.CASCADE)  # 作者
    
    def __str__(self):
        return self.title

小贴士:别忘了在settings.py中注册你的应用,然后执行数据库迁移:

python manage.py makemigrations
python manage.py migrate

3. Views:编写视图函数

在blog/views.py中创建视图:

from django.shortcuts import render, get_object_or_404
from .models import BlogPost

def post_list(request):
    # 获取所有博客文章
    posts = BlogPost.objects.all().order_by('-created_at')
    return render(request, 'blog/post_list.html', {'posts': posts})

def post_detail(request, pk):
    # 获取特定文章或返回404
    post = get_object_or_404(BlogPost, pk=pk)
    return render(request, 'blog/post_detail.html', {'post': post})

4. Templates:创建模板

在blog/templates/blog/post_list.html中:

{% raw %}
<!DOCTYPE html>
<html>
<head>
    <title>我的博客</title>
</head>
<body>
    <h1>博客文章列表</h1>
    {% for post in posts %}
        <div class="post">
            <h2>{{ post.title }}</h2>
            <p>{{ post.content|truncatewords:30 }}</p>
            <p>作者:{{ post.author.username }} | 发布时间:{{ post.created_at }}</p>
        </div>
    {% endfor %}
</body>
</html>
{% endraw %}

5. 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'),
]

记得在主项目的urls.py中包含应用的URLs:

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

6. Forms:处理表单

创建blog/forms.py:

from django import forms
from .models import BlogPost

class BlogPostForm(forms.ModelForm):
    class Meta:
        model = BlogPost
        fields = ['title', 'content']

添加新的视图函数:

from django.shortcuts import redirect
from .forms import BlogPostForm

def post_new(request):
    if request.method == "POST":
        form = BlogPostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = BlogPostForm()
    return render(request, 'blog/post_edit.html', {'form': form})

小贴士:

  1. 开发时记得打开DEBUG模式,但部署时一定要关闭

  2. 使用django-debug-toolbar可以帮助调试

  3. 善用Django的Admin后台管理系统

  4. 注意保护用户数据和密码安全

练习小题目:

  1. 为博客添加评论功能

  2. 实现文章分类和标签功能

  3. 添加用户注册和登录功能

进阶提示:

  • 学习Django REST framework构建API

  • 了解Django的缓存机制

  • 探索Django的测试框架

  • 研究Django的部署方案

小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。祝大家学习愉快,Python学习节节高!

更多内容请关注微信公众号SurzZ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值