从0到1创建Django项目

 本文参考python - 从零开始:Django项目的创建与配置指南 - 个人文章 - SegmentFault 思否

一、环境准备

1.1下载python

1.2建立虚拟环境

1.3激活虚拟环境

1.4安装Django

1.5设置项目

二、创建一个Django项目

2.1确保已激活虚拟环境(如果使用了虚拟环境)

2.2打开终端或命令提示符

2.3创建新项目

2.4进入项目目录

2.5启动开发服务器

三、项目结构解析

3.1项目文件夹

3.2应用文件夹

3.3数据库迁移文件夹

3.4虚拟环境和依赖文件

四、配置Django项目

4.1设置项目

4.2创建应用

4.3配置应用

4.4注册应用

4.5编写视图

4.6配置URL路由

4.7创建模型(数据库)

4.8运行开发服务器

4.9管理后台

4.10配置其他选项(如静态文件、邮件设置等)

五、数据库配置与迁移

5.1选择数据库引擎

5.2创建数据库

5.3配置数据库连接信息

5.4进行数据库迁移

5.5创建应用的数据库迁移文件(可选)

5.6应用数据库迁移

5.7查看数据库迁移状态(可选)

六、模板与静态文件

6.1模板(Templates)

6.2静态文件(Static Files)

七、部署Django项目

设置服务器:

安装Django:

设置项目和应用:

配置数据库:

迁移数据库:

创建超级用户:

静态文件和媒体文件管理:

部署代码:

启动服务器:

测试应用:

安全性和日志:


一、环境准备

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的安装状态变得不稳定(如部分文件被删除或损坏)

不要着急,过程失败了,删除并重新创建虚拟环境,就可以,再以管理员权限打开命令行:

  1. 退出虚拟环境
    deactivate  

  2. 删除虚拟环境文件夹
    rmdir /S /Q myenv  

  3. 重新创建虚拟环境
    python -m venv myenv  
  4. 然后,记得以管理员权限打开命令行。。。

然后,更新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)

  1. 模板是Django中用于生成HTML内容的文件,通常存放在应用的templates目录下。
  2. Django使用模板语言(Template Language)来动态生成内容,包括变量、标签和过滤器。
  3. 在视图函数中使用render()函数加载模板并传递数据进行渲染,最终返回给用户的是渲染后的HTML页面。
  4. 模板语言中的变量使用{{ variable_name }},标签使用{% tag_name %},过滤器使用{{ value|filter_name }}的方式进行操作。
  5. 继承是模板中常用的技术,通过{% extends 'base.html' %}{% block content %}来实现模板的继承和覆盖。

6.2静态文件(Static Files)

  1. 静态文件包括CSS、JavaScript、图片等不需要经过处理的文件,通常存放在应用的static目录下。
  2. 在模板中使用{% load static %}加载静态文件,然后通过{% static 'path/to/file' %}来引用静态文件。
  3. settings.py中配置STATIC_URL用于指定静态文件的URL前缀,STATICFILES_DIRS用于指定静态文件的存放路径。
  4. 在开发环境中,可以使用django.contrib.staticfiles应用来自动收集静态文件,而在生产环境中,可以使用Web服务器(如Nginx)来提供静态文件服务。
  5. 为了提高性能,可以使用CDN(内容分发网络)来加速静态文件的访问。

七、部署Django项目

部署Django项目通常涉及以下几个步骤,这些步骤可能会根据你的具体需求和环境有所不同:

  1. 设置服务器

    • 选择服务器:你可以选择使用云服务(如AWS、Google Cloud、Heroku等)、虚拟主机(如DigitalOcean、Vultr、Linode等)、或者自己的服务器(如Ubuntu、CentOS等)。

    • 安装操作系统和必要的软件:如Python、Nginx、Gunicorn或uWSGI等Web服务器软件。

  2. 安装Django

    • 在服务器上安装最新版本的Python和Django,使用命令行:

    pip install django
  3. 设置项目和应用

    • 创建一个新的Django项目:

    django-admin startproject project_name
    • 进入项目目录并创建应用:

    cd project_name
    python manage.py startapp app_name
  4. 配置数据库

    • project_name/settings.py文件中,配置数据库连接信息(如PostgreSQL、MySQL、SQLite等)。

  5. 迁移数据库

    python manage.py makemigrations
    python manage.py migrate
  6. 创建超级用户

    python manage.py createsuperuser
  7. 静态文件和媒体文件管理

    • 配置静态文件和媒体文件的存储路径,通常放在staticmedia目录下。

    • 在生产环境中,可能需要使用如Gunicorn、uWSGI、Nginx等服务器配置反向代理和静态文件处理。

  8. 部署代码

    • 将项目文件(包括manage.py)上传到服务器。

    • 使用版本控制系统(如Git)进行版本控制,确保代码更新的可追溯性。

    • 安装必要的依赖(如数据库驱动、Django应用等)。

  9. 启动服务器

    • 使用Gunicorn、uWSGI或Nginx等工具启动Django应用。具体命令取决于你的配置:

    • Gunicorn: gunicorn project_name.wsgi:application

    • uWSGI: uwsgi --http :8000 --module project_name.wsgi:application

    • Nginx: 配置Nginx虚拟主机,并指向项目的wsgi文件。

  10. 测试应用

    • 通过浏览器访问http://your_server_ip:your_port/,确保应用正常运行。

  11. 安全性和日志

    • 安装SSL证书以启用HTTPS。

    • 配置日志记录,以便监控和调试。

以上是一个基本的部署流程,实际部署可能需要根据你的具体需求进行调整,例如使用负载均衡、容器化(Docker)、环境变量管理等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值