django 快速入门
实验环境
软件准备
| 软件 | 说明 |
|---|---|
Python3.8 | Python 编译器 |
PyCharm 2024.3.5 | 开发工具 |
mysql | 数据库 |
模块
| 模块 | 说明 |
|---|---|
django ≥ 2.5 | django 版本 |
pymysql | mysql 模块 |
安装 django
| 模块 | 说明 |
|---|---|
django ≥ 2.5 | django 版本 |
pymysql | mysql 模块 |
终端执行以下代码
#检查是否有python环境,并记住该环境方便后续检查
python
#退出python环境
exit()
# django框架下载
pip install django -i https://pypi.mirrors.ustc.edu.cn/simple/
# mysql 依赖
pip install pymysql -i https://pypi.mirrors.ustc.edu.cn/simple/
开发流程
创建 Django 项目
# cd 目标路径
cd Desktop
# 创建指令
# django-admin startproject 项目名字
django-admin startproject djangoProject
启动 Web
# cd 项目名称
cd djangoProject
# python django启动文件 runserver ip:端口
# python ./manage.py runserver 0.0.0.0:4090
python ./manage.py runserver
创建及注册 app
-
创建
app指令# 创建 app 指令 # python ./manage.py startapp app名称 python ./manage.py startapp indexApp -
在
项目同名文件夹/settings.py的INSTALLED_APPS列表中配置安装此应用# 项目同名文件夹/settings.py INSTALLED_APPS = [ # 其他省略 ... # 新添加的app, app名字.apps.类名 'indexApp.apps.IndexappConfig', # 直接添加 注册 app 名即可(注意:版本差异会导致部分不可用) 'indexApp', ]
django 项目结构
默认项目文件下
| 文件名 | 描述 |
|---|---|
manage.py | django 启动入口,不需要做任何改动 |
| 项目同名文件夹 | django 项目配置文件夹 |
media | 存放上传文件。需要手动创建文件夹 |
static | CSS、JS、图片都放在这里边,存放静态文件。可能需要手动创建文件夹 |
templates | 里边存放 Html 文件。可能需要手动创建文件夹 |
app | 这里存放每一个 app。需要手动创建文件夹 |
middleware | 中间件。需要手动创建软件包(注意:创建软件包) |
utils | 存放公共的工具模块。需要手动创建软件包(注意:创建软件包) |
项目同名文件夹
| 文件名 | 描述 |
|---|---|
asgi.py | 用于支持异步接口(ASGI,即 Asynchronous Server Gateway Interface)的配置文件 |
wsgi.py | 主要用于定义项目的 WSGI(Web Server Gateway Interface)入口点,以便将 Django 应用程序与 WSGI 兼容的 Web 服务器(如 Gunicorn 或 uWSGI)进行通信。 |
settings.py | 项目配置文件 |
urls.py | 路由配置 |
每个 app 下的文件目录
| 文件名 | 描述 |
|---|---|
urls.py | 分布式路由。需要手动创建.py文件 |
templates | 里边存放 Html 文件。需要手动创建文件夹 |
views.py | 后台业务代码 |
models.py | 数据库模型编写 |
migrations | 存放数据库创建文件 |
apps.py | 这个文件的主要作用是为应用提供一个集中化的配置点,允许开发者自定义应用的行为和元数据。 |
admin.py | 用于定义该应用的模型(Models)在 Django 管理后台(Admin)中的显示和管理方式 |
tests.py | 用于编写和运行测试代码的标准文件 |
整体结构如下
视图开发
在创建 app 的文件中,找到 views.py 文件
from django.http import HttpResponse
# 编写视图函数
def hello(request):
return HttpResponse("<h1>你好 Django</h1>")
注册路由
-
在同名的项目文件中找到
urls.py,如果使用其他路由技术请看对应的文档from django.contrib import admin from django.urls import path, include # 记得引入对应的模块 from indexApp import views urlpatterns = [ path('admin/', admin.site.urls), # 注册路由 # 这里函数就是我们自己写的 视图开发函数 path('hello', views.hello), ] -
启动Web后,请求服务器地址
http://127.0.0.1:8000/hello/
启动 web
启动web指令
python ./manage.py runserver
PyCharm 手动设置启动项
启动文件手动添加模块
报错提示
ModuleNotFoundError: No module named '***',提示说找不到模块。
解决方案
# 根目录下/manage.py
import os
import sys
# 引入模块
from pathlib import Path
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject.settings')
# 添加此处的代码即可解决
sys.path.append(os.path.join(Path(__file__).resolve().parent, 'app'))
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()