本文参考python - 从零开始:Django项目的创建与配置指南 - 个人文章 - SegmentFault 思否
一、环境准备
1.1下载python
访问Python官网(https://www.python.org/downloads/)下载3.x版本
1.2建立虚拟环境
为了保持项目环境的独立性,推荐使用虚拟环境(venv或conda)。
win+R,输入cmd进入命令行中
先切盘,再切到你的项目目录
然后运行以下命令创建虚拟环境,python命令依据版本或者批处理文件可能有所不同
python -m venv myenv
好了长这样
myenv
是虚拟环境名称
1.3激活虚拟环境
在Windows上,运行
myenv\Scripts\activate
1.4安装Django
在激活的虚拟环境中,使用pip安装Django,安装完成后确认Django版本
pip install Django
django-admin --version
一点小问题tips:
1.如果pip提示更新,让你更新就更新pip install --upgrade pip
2.如果提示权限错误(WinError5):
- 这表示你在尝试卸载旧版本的
pip
时没有足够的权限。可能的原因包括:
- 你没有以管理员身份运行命令提示符(我是这个TOT,笨蛋了)
- 其他程序正在使用当前的
pip
,导致无法卸载。3.如果提示找不到模块的错误(ModuleNotFoundError: No module named 'pip'):
- 这个错误意味着在尝试执行
pip.exe
时,Python无法找到pip
模块。这个问题可能是由于第一次尝试升级pip
失败后,pip
的安装状态变得不稳定(如部分文件被删除或损坏)
不要着急,过程失败了,删除并重新创建虚拟环境,就可以,再以管理员权限打开命令行:
- 退出虚拟环境
deactivate
- 删除虚拟环境文件夹
rmdir /S /Q myenv
- 重新创建虚拟环境
python -m venv myenv
-
然后,记得以管理员权限打开命令行。。。
然后,更新pip
python.exe -m pip install --upgrade pip
装好了长这样
1.5设置项目
创建一个新的Django项目,使用命令
django-admin startproject myproject
ps:这将创建一个名为myproject
的文件夹,其中包含Django项目的基本结构
现在,已经准备好开始使用Django了。接下来可以深入学习项目的配置和应用的创建
二、创建一个Django项目
2.1确保已激活虚拟环境(如果使用了虚拟环境)
确保你已经通过相应命令(如Windows的myenv\Scripts\activate
或Unix/Mac的source myenv/bin/activate
)激活了虚拟环境
2.2打开终端或命令提示符
在包含项目的文件夹中打开终端或命令提示符
2.3创建新项目
运行以下命令创建一个新的Django项目,假设我们将其命名为myproject
django-admin startproject myproject
2.4进入项目目录
cd myproject
2.5启动开发服务器
python manage.py runserver
能在浏览器中访问http://127.0.0.1:8000/
,看到Django的默认欢迎页面
至此,你已经成功创建了一个基本的Django项目。接下来可以开始创建应用(app)并进行进一步的开发了
三、项目结构解析
在Django中,一个项目(project)是由一个或多个应用(app)组成的。一个项目包含了整个网站的配置、URL路由、设置以及其他全局功能,而应用则是网站的特定功能模块。
Django项目的基本结构如下
3.1项目文件夹
项目文件夹是通过django-admin startproject projectname
命令创建的,其中projectname
是项目的名称。在项目文件夹中,你会发现以下文件和文件夹:
manage.py
:这是一个命令行工具,可以帮助你与Django项目进行交互,比如运行开发服务器、创建数据库迁移等。projectname/
:这是项目的包含目录,其中包含了项目的设置和配置文件。projectname/__init__.py
:一个空文件,用于标识projectname
目录为Python包。projectname/settings.py
:包含了Django项目的设置,比如数据库配置、静态文件路径、模板路径等。projectname/urls.py
:定义了项目的顶级URL路由。projectname/wsgi.py
:用于将Django项目部署到WSGI兼容的Web服务器上的入
3.2应用文件夹
在Django项目中,应用是可重用的Web应用程序,可以包含特定功能的模型、视图、模板等。每个应用都有自己的文件夹,通常包含以下文件和文件夹:
appname/
:应用的包含目录,其中包含了应用的代码和资源文件。appname/__init__.py
:标识appname
目录为Python包。appname/admin.py
:用于注册模型到Django的后台管理界面。appname/apps.py
:包含应用的配置信息。appname/models.py
:定义应用的数据模型。appname/views.py
:包含应用的视图函数或类。appname/templates/
:存放应用的HTML模板文件。appname/static/
:存放应用的静态文件,如CSS、JavaScript和图像文件。
3.3数据库迁移文件夹
Django使用迁移(migration)来管理数据库模式的变更,迁移文件夹通常位于应用的目录下,包含了数据库模式变更的Python脚本文件。
3.4虚拟环境和依赖文件
在实际开发中,通常会使用虚拟环境来隔离项目的依赖。虚拟环境通常位于项目文件夹外部,而依赖文件(如requirements.txt
)则包含了项目所需的Python包列表。
四、配置Django项目
4.1设置项目
打开project_name/settings.py
文件,配置项目的基本信息,如数据库设置、静态文件路径、中间件、URL模式等。例如,设置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql', # 更改为你的数据库类型
'NAME': 'your_database_name', # 数据库名称
'USER': 'your_database_user', # 数据库用户名
'PASSWORD': 'your_database_password', # 数据库密码
'HOST': 'localhost', # 数据库主机,如果在其他服务器上,填写服务器地址
'PORT': '5432', # 数据库端口
}
}
4.2创建应用
在project_name
目录下,创建新的应用,app_name
是你的应用名称
python manage.py startapp app_name
4.3配置应用
- 在应用的
app_name/settings.py
中,添加应用到INSTALLED_APPS
列表中- Django会为你创建一个新的应用目录,里面包含了一些默认的文件。你可以在这个目录下编写视图、模型、模板等文件来实现应用的功能。
4.4注册应用
在项目的settings.py
文件中,找到INSTALLED_APPS
设置,将你新创建的应用添加到这个列表中
INSTALLED_APPS = [
...
'your_app_name',
]
4.5编写视图
在你的应用目录下的views.py
文件中编写视图函数,处理用户请求并返回相应的响应。
4.6配置URL路由
在你的应用目录下创建一个urls.py
文件,用于配置应用的URL路由。然后在项目的主urls.py
文件中,包含你的应用URL配置
# 应用的urls.py
from django.urls import path
from . import views
urlpatterns = [
path('your_url_path/', views.your_view_function, name='your_url_name'),
]
# 项目的urls.py
from django.urls import path, include
urlpatterns = [
...
path('your_app/', include('your_app_name.urls')),
]
4.7创建模型(数据库)
如果你的应用需要与数据库交互,可以在应用目录下的models.py
文件中定义模型类,代表数据库中的表结构。
4.8运行开发服务器
使用python manage.py runserver
启动开发服务器,然后在浏览器中访问http://localhost:8000
(默认端口)查看项目是否启动
python manage.py runserver
4.9管理后台
访问http://localhost:8000/admin/
,使用默认的管理员账户登录(用户名:admin
,密码:password
),可以创建和管理模型。
4.10配置其他选项(如静态文件、邮件设置等)
根据项目需求,在settings.py
中添加其他配置,如静态文件的托管、邮件服务器设置等。
五、数据库配置与迁移
5.1选择数据库引擎
Django支持多种数据库引擎,例如SQLite、MySQL、PostgreSQL等。在settings.py
文件中的DATABASES
设置中选择适合你的数据库引擎,并填写相应的连接信息。
ps:但是我想连的是MSSQL(TOT)
5.2创建数据库
根据你选择的数据库引擎,在数据库服务器上创建一个空数据库。如果使用SQLite,可以跳过此步骤,因为SQLite数据库是以文件形式存储的。
5.3配置数据库连接信息
在settings.py
文件中的DATABASES
设置中,根据你的数据库引擎填写连接信息。例如,对于MySQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_database_name',
'USER': 'your_database_user',
'PASSWORD': 'your_database_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
5.4进行数据库迁移
在项目根目录下,运行以下命令来创建数据库表和结构:
python manage.py migrate
5.5创建应用的数据库迁移文件(可选)
如果你在应用中创建了新的模型或对现有模型进行了更改,需要为这些更改创建数据库迁移文件。在应用目录下运行以下命令(其中app_name
是你的应用名称)
python manage.py makemigrations app_name
5.6应用数据库迁移
python manage.py migrate
5.7查看数据库迁移状态(可选)
python manage.py showmigrations
六、模板与静态文件
6.1模板(Templates)
- 模板是Django中用于生成HTML内容的文件,通常存放在应用的
templates
目录下。- Django使用模板语言(Template Language)来动态生成内容,包括变量、标签和过滤器。
- 在视图函数中使用
render()
函数加载模板并传递数据进行渲染,最终返回给用户的是渲染后的HTML页面。- 模板语言中的变量使用
{{ variable_name }}
,标签使用{% tag_name %}
,过滤器使用{{ value|filter_name }}
的方式进行操作。- 继承是模板中常用的技术,通过
{% extends 'base.html' %}
和{% block content %}
来实现模板的继承和覆盖。
6.2静态文件(Static Files)
- 静态文件包括CSS、JavaScript、图片等不需要经过处理的文件,通常存放在应用的
static
目录下。- 在模板中使用
{% load static %}
加载静态文件,然后通过{% static 'path/to/file' %}
来引用静态文件。- 在
settings.py
中配置STATIC_URL
用于指定静态文件的URL前缀,STATICFILES_DIRS
用于指定静态文件的存放路径。- 在开发环境中,可以使用
django.contrib.staticfiles
应用来自动收集静态文件,而在生产环境中,可以使用Web服务器(如Nginx)来提供静态文件服务。- 为了提高性能,可以使用CDN(内容分发网络)来加速静态文件的访问。
七、部署Django项目
部署Django项目通常涉及以下几个步骤,这些步骤可能会根据你的具体需求和环境有所不同:
-
设置服务器:
-
选择服务器:你可以选择使用云服务(如AWS、Google Cloud、Heroku等)、虚拟主机(如DigitalOcean、Vultr、Linode等)、或者自己的服务器(如Ubuntu、CentOS等)。
-
安装操作系统和必要的软件:如Python、Nginx、Gunicorn或uWSGI等Web服务器软件。
-
-
安装Django:
-
在服务器上安装最新版本的Python和Django,使用命令行:
pip install django
-
-
设置项目和应用:
-
创建一个新的Django项目:
django-admin startproject project_name
-
进入项目目录并创建应用:
cd project_name python manage.py startapp app_name
-
-
配置数据库:
-
在
project_name/settings.py
文件中,配置数据库连接信息(如PostgreSQL、MySQL、SQLite等)。
-
-
迁移数据库:
python manage.py makemigrations python manage.py migrate
-
创建超级用户:
python manage.py createsuperuser
-
静态文件和媒体文件管理:
-
配置静态文件和媒体文件的存储路径,通常放在
static
和media
目录下。 -
在生产环境中,可能需要使用如Gunicorn、uWSGI、Nginx等服务器配置反向代理和静态文件处理。
-
-
部署代码:
-
将项目文件(包括
manage.py
)上传到服务器。 -
使用版本控制系统(如Git)进行版本控制,确保代码更新的可追溯性。
-
安装必要的依赖(如数据库驱动、Django应用等)。
-
-
启动服务器:
-
使用Gunicorn、uWSGI或Nginx等工具启动Django应用。具体命令取决于你的配置:
-
Gunicorn:
gunicorn project_name.wsgi:application
-
uWSGI:
uwsgi --http :8000 --module project_name.wsgi:application
-
Nginx: 配置Nginx虚拟主机,并指向项目的wsgi文件。
-
-
测试应用:
-
通过浏览器访问
http://your_server_ip:your_port/
,确保应用正常运行。
-
-
安全性和日志:
-
安装SSL证书以启用HTTPS。
-
配置日志记录,以便监控和调试。
-
以上是一个基本的部署流程,实际部署可能需要根据你的具体需求进行调整,例如使用负载均衡、容器化(Docker)、环境变量管理等。