Django 创建第一个项目

好的!以下是用中文详细讲解如何使用 Django 创建第一个项目的步骤。我会尽量简洁清晰,适合初学者,同时覆盖关键步骤。如果你有任何问题,可以随时提问!


前提条件

  1. 安装 Python:确保你的电脑已安装 Python(建议版本 3.8 或以上)。可以在命令行输入 python --version 检查。
  2. 安装 Django:通过 pip 安装 Django,运行以下命令:
   pip install django

安装完成后,检查 Django 版本:

   django-admin --version

步骤 1:创建 Django 项目

  1. 创建项目目录
    打开终端(Windows 用 CMD 或 PowerShell,Mac/Linux 用 Terminal),进入你希望存放项目的目录。例如:
   cd Desktop
  1. 创建项目
    使用 django-admin 命令创建一个新项目,假设项目名为 myproject
   django-admin startproject myproject

这会在当前目录下生成一个 myproject 文件夹,结构如下:

   myproject/
   ├── manage.py
   └── myproject/
       ├── __init__.py
       ├── settings.py
       ├── urls.py
       ├── asgi.py
       └── wsgi.py
  • manage.py:用于管理项目的命令行工具。
  • myproject/settings.py:项目配置文件(数据库、应用等)。
  • myproject/urls.py:定义 URL 路由。
  • asgi.pywsgi.py:用于部署项目。

步骤 2:运行开发服务器

  1. 进入项目目录:
   cd myproject
  1. 启动 Django 自带的开发服务器:
   python manage.py runserver

默认情况下,服务器运行在 http://127.0.0.1:8000/

  1. 打开浏览器,访问 http://127.0.0.1:8000/,你会看到 Django 的欢迎页面,说明项目创建成功!

步骤 3:创建第一个应用

Django 项目由多个应用(App)组成,每个应用负责特定功能。例如,一个博客网站可能有 blogusers 两个应用。

  1. 创建应用
    在项目目录下运行:
   python manage.py startapp myapp

这会生成一个 myapp 文件夹,结构如下:

   myapp/
   ├── __init__.py
   ├── admin.py
   ├── apps.py
   ├── migrations/
   │   └── __init__.py
   ├── models.py
   ├── tests.py
   └── views.py
  1. 注册应用
    打开 myproject/settings.py,找到 INSTALLED_APPS 列表,添加 myapp
   INSTALLED_APPS = [
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
       'myapp',  # 添加你的应用
   ]

步骤 4:创建第一个视图

  1. 编写视图
    打开 myapp/views.py,添加一个简单的视图函数:
   from django.http import HttpResponse

   def home(request):
       return HttpResponse("欢迎体验 Django!这是我的第一个页面!")
  1. 配置 URL
  • 打开 myproject/urls.py,添加应用的 URL 路由: from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('myapp.urls')), # 添加应用的 URL ]
  • myapp 目录下创建 urls.py 文件,内容如下: from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), # 根路径映射到 home 视图 ]
  1. 重新运行服务器
   python manage.py runserver

访问 http://127.0.0.1:8000/,你会看到页面显示“欢迎体验 Django!这是我的第一个页面!”。


步骤 5:使用模板(可选)

Django 支持模板系统,让页面更动态。

  1. 创建模板文件夹
    myapp 目录下创建 templates/myapp 文件夹,然后新建 home.html
   <!DOCTYPE html>
   <html>
   <head>
       <title>我的 Django 项目</title>
   </head>
   <body>
       <h1>欢迎体验 Django!</h1>
       <p>这是一个简单的模板页面。</p>
   </body>
   </html>
  1. 修改视图
    编辑 myapp/views.py,使用模板渲染:
   from django.shortcuts import render

   def home(request):
       return render(request, 'myapp/home.html')
  1. 配置模板路径(一般无需修改):
    确保 myproject/settings.py 中的 TEMPLATES 配置包含:
   TEMPLATES = [
       {
           'BACKEND': 'django.template.backends.django.DjangoTemplates',
           'DIRS': [],
           'APP_DIRS': True,
           ...
       },
   ]

APP_DIRS: True 确保 Django 自动查找每个应用中的 templates 文件夹。

  1. 重新运行服务器,访问 http://127.0.0.1:8000/,你会看到模板渲染的页面。

步骤 6:使用数据库(可选)

Django 默认使用 SQLite 数据库,适合开发测试。

  1. 创建模型
    编辑 myapp/models.py,定义一个简单的模型:
   from django.db import models

   class Item(models.Model):
       name = models.CharField(max_length=100)
       description = models.TextField()

       def __str__(self):
           return self.name
  1. 生成迁移文件
   python manage.py makemigrations
  1. 应用迁移
   python manage.py migrate
  1. 在 Django 管理后台查看
  • 注册模型到 myapp/admin.pyfrom django.contrib import admin from .models import Item admin.site.register(Item)
  • 创建超级用户:
    bash python manage.py createsuperuser
    按提示输入用户名、邮箱和密码。
  • 运行服务器,访问 http://127.0.0.1:8000/admin/,登录后即可管理 Item 数据。

常见问题

  1. 端口被占用
    如果 runserver 报错端口占用,尝试:
   python manage.py runserver 8001

或杀死占用 8000 端口的进程。

  1. 找不到模板
    确保模板路径正确,且 settings.pyAPP_DIRSTrue
  2. 需要更多功能
    可以继续学习 Django 的 MTV(模型-模板-视图)架构、表单处理、用户认证等。

总结

通过以上步骤,你已经成功创建了一个简单的 Django 项目,包含一个应用、视图和模板。你可以基于此扩展功能,比如添加数据库操作、用户登录或更复杂的页面。

如果你有具体需求(例如添加表单、处理静态文件等),请告诉我,我可以进一步讲解!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注