目录
2. Error:ModuleNotFoundError: No module named 'django_extensions'
3. Error:raise RuntimeError("populate() isn't reentrant")
4. Exception Type: TemplateDoesNotExist.(D:\XXX\WEB\templates\base.html (Source does not exist))
一、配置环境
(一)创建虚拟环境
(二)安装依赖
二、创建 Django 项目
(一)新建文件夹
某盘中(如D盘),新建一个文件夹。
(二)打开文件夹
用 vscode(或pycharm软件),打开该文件夹。
使用 vscode 可参考另一篇文章:VSCode & PyCharm-CSDN博客
(三)打开运行终端
以 vscode 为例,可用Ctrl键 + ~键的组合快捷开启终端。
接下来的操作,都需提前配置环境(即,该篇文章第一节的配置环境)
(四)创建基础项目
# 终端执行命令
django-admin startproject LyProject
创建基础项目时,有个前提:需要先安装python。 (即,该篇文章第一节的配置环境)
(五)创建 App
创建 App 时,有个前提:需要先安装 Django 依赖。(即,该篇文章第一节的安装依赖)
1. 安装 Django 依赖
(1)终端执行命令
pip install django
# or
python -m pip install django
(2)查看 Django 依赖是否安装
pip list
2. 创建 App
若要创建 App,需要进入具体的基础项目路径(manage.py所在目录):
cd LyProject # 即,之前创建的基础项目 LyProject
执行LyProject里的manage.py文件:
python manage.py startapp LyApp
3. 注册 App
在上一步“创建 App”后,系统会自动生成 LyApp 的文件夹。其中,app.py 文件用于配置 LyApp 应用的基础信息。
# myApp/app.py
from django.apps import AppConfig
class LyappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'lyApp'
然后,需要在 settings.py 中注册该应用。
# myProject/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'lyApp', # 注册项目APP
]
(六)項目框架
可参考另一篇文章:Backend - Django 项目框架浅析-CSDN博客
三、运行 Django 项目
(一)终端命令
python manage.py runserver
# or
python manage.py runserver 127.0.0.1:8000
(二)debug运行项目
需要配置.vscode文件夹(launch.json & settings.json两个文件)
参考另一篇文章:VSCode & PyCharm-CSDN博客
(三)迁移数据库
运行项目时,若出现如下提示:
原因:
创建项目时,会产生 Django 自带的 models。
解决:
需要执行数据库迁移。即,终端执行命令:python manage.py migrate。在执行前,确认自己链接的数据库信息是否正确。
(四)进入浏览器操作界面
打开浏览器,输入路由:http://127.0.0.1:8080/admin
若还未创建登录用户,则先创建用户。
可参考另一篇文章的Django Admin 登录部分: Backend - Django Admin 后台管理_django admin orderby-CSDN博客
(五)相关问题
1. Error:D:\Program Files\python11\python.exe: can't open file 'D:\\test2\\manage.py': [Errno 2] No such file or directory
具体情况:
运行项目python manage.py runserver时,报错没有manage.py文件。
原因:
要在manage.py所在的根目录下进行debug或runserver。
解决:
例如,LyProject是manage.py文件夹的父目录:(venv) D:\test2\LyProject>python manage.py runserver 127.0.0.1:8080
2. Error:ModuleNotFoundError: No module named 'django_extensions'
具体情况:
运行项目python manage.py runserver时,报错没有依赖。
原因:
项目的settings.py文件中的INSTALLED_APPS属性中,配置有django_extensions。但是环境中缺少该依赖。
解决:
安装依赖:pip install django-extensions 或 python -m pip install django-extensions
3. Error:raise RuntimeError("populate() isn't reentrant")
具体情况:
运行项目python manage.py runserver时,报错:populate() isn't reentrant。
解决:
若想查看真正的问题,则打开django/apps/registry.py,并在第 80 行附近进行替换。将raise RuntimeError("populate() isn't reentrant") 替换成 self.app_configs = {}
实现:
这将允许 Django 继续加载,并显示实际错误。
4. Exception Type: TemplateDoesNotExist.(D:\XXX\WEB\templates\base.html (Source does not exist))
具体情况:
在浏览器中,进入某个路由界面,由于templates模板的路径不匹配,导致画面找不到模板。(预想的路径是D:\XXX\WEB\LyApp\templates\base.html,可实际运行的是D:\XXX\WEB\templates\base.html,中间缺少了APP的位置)
解决:
(1)检查 LyApp/app.py 文件里,该应用的配置是否正确
(2)检查 settings.py 中INSTALLED_APPS里,是否注册该应用
5. Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'.
解决:
settings.py 文件中配置主键。即末尾补充:
DEFAULT_AUTO_FIELD='django.db.models.AutoField'