当前位置: 首页 > backend >正文

Django 项目创建全攻略

目录

一、环境准备​

1. 安装 Python​

2. 安装虚拟环境(可选但推荐)​

3. 安装 Django​

二、创建 Django 项目​

1. 使用命令创建项目​

2. 运行开发服务器​

三、创建 Django 应用​

1. 创建应用​

2. 注册应用​

四、配置项目​

1. 数据库配置​

2. 静态文件配置​

3. 时区和语言配置​

五、编写视图和 URL​

1. 编写视图函数​

2. 配置 URL​

六、数据库迁移​

1. 生成迁移文件​

2. 执行迁移​


在当今的 Web 开发领域,Django 以其 “内置电池” 的设计理念和高效的开发模式,成为众多开发者的首选框架之一。无论是搭建小型博客系统,还是构建复杂的企业级应用,Django 都能提供完善的解决方案。本文将带领你从零开始,逐步完成一个 Django 框架项目的创建,让你快速上手 Django 开发。​

一、环境准备​

在创建 Django 项目之前,我们需要确保开发环境中已经安装了 Python。Django 对 Python 版本有一定要求,目前主流版本支持 Python 3.6 及以上,建议使用 Python 3.8 - 3.11 之间的版本,以获得最佳兼容性和性能。​

1. 安装 Python​

如果你还没有安装 Python,可以前往Python 官方网站下载对应操作系统的安装包(Windows、macOS 或 Linux)。安装过程中,记得勾选 “Add Python to PATH” 选项,这样可以方便在命令行中使用 Python 命令。​

2. 安装虚拟环境(可选但推荐)​

虚拟环境能够为每个项目创建独立的 Python 运行环境,避免不同项目之间的依赖冲突。常用的虚拟环境工具有venv(Python 内置)和virtualenv。​

使用 venv 创建虚拟环境:​

在命令行中进入你想要创建项目的目录,然后执行以下命令:​

python -m venv myenv​

这将在当前目录下创建一个名为myenv的虚拟环境。激活虚拟环境的命令因操作系统而异:​

  • 在 Windows 上:​
myenv\Scripts\activate​
  • 在 macOS 和 Linux 上:​
source myenv/bin/activate​

激活虚拟环境后,命令行提示符前面会出现虚拟环境的名称,例如(myenv) your_username@your_machine:~/project_directory$ ,表示当前处于虚拟环境中。​

使用 virtualenv 创建虚拟环境:​

pip install virtualenv​

首先安装virtual

然后创建虚拟环境:​

virtualenv myenv​

激活方式与venv类似:​

  • 在 Windows 上:​
myenv\Scripts\activate​
  • 在 macOS 和 Linux 上:​
source myenv/bin/activate​

3. 安装 Django​

在激活的虚拟环境中,使用pip命令安装 Django:​

pip install django​

安装完成后,可以通过以下命令检查 Django 是否安装成功以及查看版本信息:​

django-admin --version​

二、创建 Django 项目​

当环境准备就绪后,就可以开始创建 Django 项目了。​

1. 使用命令创建项目​

在命令行中,确保处于你希望存放项目的目录,然后执行以下命令:​

django-admin startproject myproject​

这里的myproject是项目的名称,你可以根据实际需求替换为其他名称。执行该命令后,会在当前目录下生成一个名为myproject的项目目录,其结构如下:​

myproject/myproject/__init__.pyasgi.pysettings.pyurls.pywsgi.pymanage.py
  • manage.py:一个命令行工具,用于与 Django 项目进行交互,例如创建应用、运行开发服务器、执行数据库迁移等。​
  • myproject/目录:包含项目的配置文件。​
  • __init__.py:一个空文件,告诉 Python 该目录是一个 Python 包。​
  • asgi.py:ASGI(异步服务器网关接口)配置文件,用于部署异步 Django 应用。​
  • settings.py:项目的配置文件,包含数据库设置、应用注册、静态文件配置等重要信息。​
  • urls.py:URL 配置文件,定义了项目的 URL 模式以及对应的视图函数。​
  • wsgi.py:WSGI(Web 服务器网关接口)配置文件,用于部署 Django 应用到生产环境的 Web 服务器。​

2. 运行开发服务器​

进入项目目录myproject,使用以下命令启动 Django 开发服务器:​

python manage.py runserver​

默认情况下,开发服务器会在http://127.0.0.1:8000/ 地址上运行。打开浏览器,访问该地址,如果看到 Django 默认的欢迎页面,说明项目创建成功。​

如果希望修改开发服务器的端口,可以在命令中指定,例如:​

python manage.py runserver 8080​

这将把开发服务器运行在http://127.0.0.1:8080/ 地址上。​

三、创建 Django 应用​

一个 Django 项目通常由多个应用组成,每个应用负责特定的功能模块,比如博客项目中的文章管理、用户管理等。​

1. 创建应用​

在项目目录myproject下,执行以下命令创建一个名为myapp的应用:​

python manage.py startapp myapp​

执行命令后,会生成一个名为myapp的应用目录,其结构如下:​

myapp/__init__.pyadmin.pyapps.pymodels.pytests.pyviews.pymigrations/__init__.py
  • admin.py:用于注册模型到 Django 管理后台,方便进行数据管理。​
  • apps.py:应用的配置文件,定义应用的相关信息。​
  • models.py:定义数据模型,用于与数据库进行交互。​
  • tests.py:编写单元测试的文件,用于测试应用的功能。​
  • views.py:定义视图函数,处理用户请求并返回响应。​
  • migrations/目录:用于存放数据库迁移文件,记录模型结构的变更历史。​

2. 注册应用​

创建应用后,需要在项目的settings.py文件中注册该应用,以便 Django 能够识别和管理它。在INSTALLED_APPS列表中添加应用的名称:​

INSTALLED_APPS = [​...​'myapp',​...​]​

四、配置项目​

Django 项目的配置主要在settings.py文件中完成,下面介绍一些常见的配置项。​

1. 数据库配置​

Django 默认使用 SQLite 数据库,如果你需要使用其他数据库,如 MySQL、PostgreSQL 等,需要进行相应的配置。​

配置 MySQL 数据库:​

首先安装mysqlclient库:​

pip install mysqlclient​

然后在settings.py中修改数据库配置:​

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME':'mydatabase','USER': 'root','PASSWORD': 'password','HOST': '127.0.0.1','PORT': '3306',}
}

将mydatabase、root、password替换为实际的数据库名称、用户名和密码。​

配置 PostgreSQL 数据库:​

安装psycopg2库:​

pip install psycopg2​

在settings.py中修改数据库配置:​

DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql','NAME':'mydatabase','USER': 'postgres','PASSWORD': 'password','HOST': '127.0.0.1','PORT': '5432',}
}

同样,将相关参数替换为实际值。​

2. 静态文件配置​

静态文件(如 CSS、JavaScript、图片等)是 Web 应用不可或缺的部分。在settings.py中配置静态文件的存放路径:​

STATIC_URL ='static/'​STATICFILES_DIRS = [​os.path.join(BASE_DIR,'static'),​]​STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')​​

STATIC_URL定义了静态文件在浏览器中访问的 URL 前缀;STATICFILES_DIRS指定了项目中存放静态文件的目录;STATIC_ROOT是用于收集静态文件的目录,在部署到生产环境时会用到。​

3. 时区和语言配置​

根据项目需求,设置时区和语言:​

LANGUAGE_CODE = 'zh-hans' # 中文简体​TIME_ZONE = 'Asia/Shanghai' # 上海时区​USE_I18N = True​USE_L10N = True​USE_TZ = True​

五、编写视图和 URL​

1. 编写视图函数​

在myapp/views.py文件中编写视图函数,例如:​

from django.http import HttpResponsedef index(request):return HttpResponse("Hello, Django!")

这里定义了一个简单的视图函数index,当用户访问对应的 URL 时,会返回 “Hello, Django!” 的响应。​

2. 配置 URL​

在myapp目录下创建一个urls.py文件(如果不存在),用于定义应用的 URL 模式:​

from django.urls import path
from. import viewsurlpatterns = [path('', views.index, name='index'),
]

然后在项目的myproject/urls.py文件中,将应用的 URL 配置包含进来:​

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('myapp/', include('myapp.urls')),
]

这样,当用户访问http://127.0.0.1:8000/myapp/ 时,就会调用myapp/views.py中的index视图函数。​

六、数据库迁移​

如果在models.py中定义了数据模型,需要进行数据库迁移操作,将模型结构同步到数据库中。​

1. 生成迁移文件​

在项目目录myproject下,执行以下命令:​

python manage.py makemigrations myapp​

这将根据myapp/models.py中的模型定义,在myapp/migrations/目录下生成迁移文件。​

2. 执行迁移​

执行以下命令将迁移应用到数据库:​

python manage.py migrate​

如果是首次迁移,该命令会创建 Django 默认的一些数据库表,如用户认证相关的表等。后续每次修改模型后,都需要重复这两个步骤来更新数据库结构。​

至此,一个基本的 Django 框架项目就创建完成了。你可以在此基础上继续扩展功能,添加更多的应用、视图、模型和模板,打造出满足需求的 Web 应用。

http://www.xdnf.cn/news/7079.html

相关文章:

  • R for Data Science(3)
  • oppo手机安装APK失败报错:安装包异常
  • 常见的数据库问题
  • Binary Prediction with a Rainfall Dataset-(回归+特征工程+xgb)
  • 【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率
  • Popeye
  • UnLua源码分析(一)初始化流程
  • 13.Ext系列文件系统
  • 【2025版】SpringCloud Gateway网关快速入门
  • 相机Camera日志分析之十二:高通相机Camx hal拍照1帧logcat日志capture拍照帧详解
  • 基于CNN的猫狗识别(自定义CNN模型)
  • AIDA64 extreme7.5 版本注册激活方法
  • 掌握LINQ:查询语法与方法语法全解析
  • 什么是 Flink Pattern
  • 内容中台的AI基石是什么?
  • TDengine 在新能源领域的价值
  • 前端动画库 Anime.js 的V4 版本,兼容 Vue、React
  • OpenHarmony外设驱动使用 (四),Face_auth
  • 蓝牙通讯协议学习
  • 内容社区系统开发文档(中)
  • 继MCP、A2A之上的“AG-UI”协议横空出世,人机交互迈入新纪元
  • windows环境下c语言链接sql数据库
  • Kubernetes控制平面组件:Kubelet详解(六):pod sandbox(pause)容器
  • JSON Schema 高效校验 JSON 数据格式
  • 微服务项目->在线oj系统(Java版 - 2)
  • c++编写中遇见的错误
  • 【AWS入门】Amazon SageMaker简介
  • 4:OpenCV—保存图像
  • 解决 Tailwind CSS 代码冗余问题
  • 机器学习(12)——LGBM(1)