目录
在当今的 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__.py
asgi.py
settings.py
urls.py
wsgi.py
manage.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__.py
admin.py
apps.py
models.py
tests.py
views.py
migrations/
__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. 编写视图函数
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, Django!")
这里定义了一个简单的视图函数index,当用户访问对应的 URL 时,会返回 “Hello, Django!” 的响应。
2. 配置 URL
在myapp目录下创建一个urls.py文件(如果不存在),用于定义应用的 URL 模式:
from django.urls import path
from. import views
urlpatterns = [
path('', views.index, name='index'),
]
然后在项目的myproject/urls.py文件中,将应用的 URL 配置包含进来:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
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 应用。