美文网首页python大法攻略
Django项目教程(一、项目建立和环境配置)

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

作者: 眼君 | 来源:发表于2021-11-17 15:40 被阅读0次

    前后端分离的优势

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

    安装

    如果没有安装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项目教程(一、项目建立和环境配置)

        本文链接:https://www.haomeiwen.com/subject/ncwltrtx.html