Django + MySQL 项目创建步骤

2020/2/8 DjangoPythonMySQL

# 环境配置

# 创建虚拟环境

使用 condavirtualenv 创建虚拟环境。

# 安装 django

在虚拟环境中使用 pip 安装 django

pip install django

# 安装 MySQL

MySQL 数据库的安装方法请参考

# 创建项目

命令行切换到你要创建项目的目录,命令行执行下面的语句创建项目,project_name 为你的项目名称,也是即将创建的项目目录的名称:

django-admin startproject project_name

执行完上述命令后,可以看到在指定的目录位置创建了一个项目目录,此目录结构为:

project_name
├── manage.py
└── project_name
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    ├── wsgi.py
    └── __init__.py

项目目录结构说明:

  • manage.py: Django 命令行工具,可让你以各种方式与该项目进行交互;
  • project_name/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包;
  • project_name/settings.py: 该 Django 项目的设置/配置;
  • project_name/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录";
  • project_name/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目.

# 运行项目

进入项目目录,运行下面的指令,启动服务器:

python manage.py runserver

在浏览器输入 http://127.0.0.1:8000/,结果如下:

Snipaste_2022-05-12_00-02-17.png

# 数据库配置

# 安装模块

pip install mysqlclient

Django2.2 版本之前需要安装的是 pymysql 模块,这里使用的是 mysqlclient

# 创建数据库

create database database_name default charset utf8 collate utf8_general_ci; 

database_name 为该项目需要使用的数据库名称。

# 修改配置

在项目的 settings.py 文件中找到 DATABASES 配置项,修改配置:

可将 django 默认的 sqlite3 引擎配置注释

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        # ENGINE指定数据库的后端引擎
        'ENGINE': 'django.db.backends.mysql',
        # NAME指定要连接的数据库的名称
        'NAME': 'database_name',
        # USER指定登录到数据库的用户名
        'USER': 'root',
        # PASSWORD接数据库时使用的密码
        'PASSWORD': 'password',
        # HOST连接数据库的主机
        'HOST': '127.0.0.1',
        # PORT连接数据库时使用的端口
        'PORT': '3306'
    }
}

# 创建 APP

# 创建 APP

在项目根目录下运行以下命令,创建一个 app, app_name 为该 app 名称

python manage.py startapp app_name

目录结构如下:

app_name
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── views.py
├── __init__.py
└── migrations
    └── __init__.py

# 丰富模型

打开 mdels.py 文件,根据功能和需要添加数据模型,这里以一个用户信息模型为例

class User(models.Model):
    name = models.CharField(max_length=50)
    password = models

# 注册 APP

setting.pyINSTALLED_APPS 中添加创建的 app_name

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_name'
]

# 迁移数据库

命令行中依次运行以下语句

python manage.py makemigrations
python manage.py migrate

# python manage.py makemigrations

该指令用于生成数据库迁移文件,初次运行该指令后会在当前 app 下的 migrations 目录下生成 0001_initial.py,在每次改动模型之后,重新运行该指令,会接继续生成 0002_initial.py0003_initial.py……

# python manage.py migrate

该指令用于同步数据库,成功同步数据库后控制台输出如下:

Snipaste_2022-05-12_00-58-02.png

# 创建模板和视图

在 django 中,视图对 WEB 请求进行回应

视图接收 reqeust 对象作为第一个参数,包含了请求的信息

视图就是一个Python函数,被定义在views.py中

模板基本上就是一些输出动态值的经过特殊格式化的HTML文本,支持简单的逻辑结构如循环等。当一个视图要返回一个HTML文档时,它通常会指定一个模板,提供给它所要显示的信息,并在响应里使用模板渲染的结果。

最近更新: 7 个月前