1. Django项目的创建
首先,你需要安装Django并创建一个新的项目。通常使用以下命令:
django-admin startproject <项目名>
这将创建一个包含以下结构的目录:
<项目名>/
manage.py
<项目名>/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
关键文件解释:
- manage.py: 管理脚本,用于执行项目的命令,如启动开发服务器、迁移数据库等。
- __init__.py: 表示该目录是一个Python包。
- settings.py: 项目的配置文件,包含数据库配置、应用的注册、静态文件路径等。
- urls.py: URL配置,定义URL路径及其对应的视图函数。
- asgi.py/wsgi.py: 应用服务器接口,用于部署时的配置。WSGI是适用于大多数服务器的,ASGI用于处理异步请求。
2. Django中的应用(App)
Django项目可以包含多个“应用”(App),一个App相当于一个功能模块,多个App组合形成整个项目。
创建一个App的命令:
python manage.py startapp <应用名>
这将生成以下结构:
<应用名>/
__init__.py
admin.py
apps.py
models.py
views.py
tests.py
migrations/
__init__.py
App中的关键文件:
- admin.py: 用于注册模型,以便通过Django Admin管理。
- apps.py: 配置App的元数据,如App名称。
- models.py: 定义数据模型,模型会映射到数据库的表。
- views.py: 定义业务逻辑,通过它响应HTTP请求。
- tests.py: 用于编写测试代码。
- migrations/: 保存数据库迁移文件(根据模型的变化生成)。
3. 自动生成的文件和文件夹
- migrations/: 这个文件夹在创建App时会自动生成,用于管理数据库迁移。迁移文件通过
python manage.py makemigrations
和python manage.py migrate
自动生成。 - __init__.py: 这个文件在创建包时会自动生成,表示该目录是Python包的一部分。
4. 增加功能和新应用
在已有项目上增加功能,通常是通过添加新的App来实现:
1) 创建新App
python manage.py startapp <新应用名>
2) 在项目中启用新App
在settings.py
的INSTALLED_APPS
列表中添加新创建的App:
INSTALLED_APPS = [
# 其它已注册的App
'<新应用名>',
]
3) 为新App配置URL
创建新应用后,需要为它配置URL。通常有两种方式:
- 局部URL配置:在App的
urls.py
文件中定义它的路由(需要手动创建urls.py
文件)。 - 全局URL配置:在项目的根
urls.py
中包含App的URL配置,如:from django.urls import path, include urlpatterns = [ path('新应用路径/', include('<新应用名>.urls')), ]
5. 绑定和联系
Django项目是通过模型、视图、URL路由和模板紧密结合在一起的:
- **模型(Model)**定义数据结构,数据库中的表。
- **视图(View)**处理业务逻辑,获取模型中的数据,渲染模板或返回JSON等格式。
- **模板(Template)**用于生成HTML页面,显示数据。
- **URL路由(URLconf)**用于将特定的URL映射到视图函数。
通过上述机制,每个App的功能可以集成到项目中,使得各个模块既独立又能彼此配合。
6. 如何增加新功能
- 定义新的模型:在新App的
models.py
中创建新的数据模型。 - 添加视图逻辑:在
views.py
中编写视图函数或类视图处理业务逻辑。 - 配置URL:在App的
urls.py
中配置URL映射到视图函数,并在项目的全局urls.py
中包含它。 - 编写模板:如果需要生成HTML,创建对应的模板文件(放在
templates
文件夹下),并在视图中使用它。 - 数据库迁移:如果修改了模型,需要运行以下命令生成并应用迁移:
python manage.py makemigrations python manage.py migrate
通过这种结构化的方式,可以逐步扩展Django项目的功能,添加新的App和功能模块,同时与原有代码紧密结合。
希望这些内容能帮助你理解Django项目的基本架构,并顺利在企业级项目中增加功能。