Django项目教程(一、项目建立和环境配置)

前后端分离的优势

  • 后端代码可以复用。
  • 代码逻辑清晰,指责解耦。

安装

如果没有安装Django,先需要通过pip安装Django:

pip3 install django

安装完成后,可以在Python环境中调用以下代码查看Django版本:

>>> import django
>>> django.get_version()
'3.1.7'

我们目前使用的是3.1.7这个版本。

创建项目目录

开始开发一个项目的第一步,是使用Django自带的命令创建一个Django项目:

django-admin startproject mysite<文件目录名称>

得到目录中的文件如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

我们继续在manage.py同一目录下新建log、media、static、templates等目录,最终我们得到的目录如下:

mysite/
    log/
    media/
    static/
    templates/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

以下是这些目录和文件的用处是:

  • 最外层的mysite 根目录:是整个项目的容器,它可以重命名为任何名字。
  • log目录:存放项目日志的文件夹。
  • media目录:存放用户上传文件的文件夹。
  • static目录:存放css、js、image等静态文件的文件夹。
  • templates目录:存放html文件的文件夹。
  • manage.py:是一个管理 Django 项目的命令行工具。
  • 里面一层的 mysite目录:是一个纯 Python 包,里面包含整个项目的代码。
  • mysite/__init__.py:是一个空文件,告诉 Python 这个目录应该被认为是一个Python 包。
  • mysite/settings.py:是Django 项目的配置文件。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。
  • mysite/wsgi.py:作为项目的运行在 WSGI 兼容的Web服务器上的入口。

到了这一步,可以在manage.py同一目录下执行以下命令,用于测试Django项目是否真的创建成功:

python3 manage.py runserver

设置项目templates路径

在我们新建了templates目录以后,我们还需要在settings.py中指定项目templates的路径:

import os
...
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
...

Django静态文件管理

1、STATIC_ROOT

STATIC_ROOT 是在部署静态文件时(即使用pyhton manage.py collectstatic命令时)所有的静态文静聚合的目录,django会把所有的static文件都复制到该目录下。

2、STATICFILES_DIRS

STATIC_ROOT 一般是在部署的时候才发挥作用, 而在实际开发过程中,静态文件的一般安放在以下两处:

  • 一是在每个app目录下对应的static文件夹中,所以在html文件中用到静态文件时,django会自动先在每个app目录下搜索static文件夹,所以static目录名称不要随便写,以保证django能顺利找到。

  • 还有一处,就是在所有的app目录之外,建立一个共用的文件夹,这个文件夹的目录就是通过STATICFILES_DIRS来指定,当然这种做法不是必须的。

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'common_static')
]

STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找(注意, django查找静态文件是惰性查找,查找到第一个,就停止查找了)。

3、STATIC_URL

这个变量定义的是我们在浏览器中访问静态文件时,URL中资源路径开头那段的内容,默认是'static',所以部署中的网页,浏览器访问静态资源的URL都是:

http://xxx.xxx.xxx.xxx:xxxx/static/...

注意:这个STATIC_URL部分实际映射的路径相当于STATIC_ROOT指定的路径。

后台数据库设置

Django后台数据库的连接信息,我们需要在settings.py中指定:

...
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'testdjango',
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'127.0.0.1'
    }
}
...

同步后台数据信息

现在可以执行以下两行命令,将项目的管理信息同步到后台数据库了:

python3 manage.py makemigrations
python3 manage.py migrate

你可能感兴趣的:(Django项目教程(一、项目建立和环境配置))