Django 常用配置

环境信息

  • Python 3.10
  • Django 4.1

常用配置

创建项目及 app

开始使用 Django 时,需要初始化配置,执行以下命令生成初始化的工程环境 [1]

django-admin startproject mysite

创建 Project 成功后,会生成以 Project 命名的根目录(此处为 mysite),根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。以下为目录结构 [1]

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

其中:

  • mysite/mysite/settings.py 为项目配置文件,包括配置 app,数据库等。

创建 App

python manage.py startapp myapp

创建 app 后,会在项目根目录下生成 app 命名的目录。创建 app 后,需要将 app 添加到项目配置文件 settings.py 中的 INSTALLED_APPS

项目配置文件 settings.py 常用配置说明

ALLOWED_HOSTS = ['*']

访问控制,默认只允许从本地访问 Django Server,如果需要远程访问,需要配置远程主机地址,* 可以配置允许任一客户端访问。

配置 mysql 数据库

要为项目配置使用 Mysql 数据库,可以使用以下配置。

settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "vb",
'USER': "root",
"PASSWORD": "dBVgcKGnn0",
'HOST': "127.0.0.1",
"PORT": '3306',
},

}

配置语言为中文

settings.py
LANGUAGE_CODE = 'zh-hans'

配置时区

settings.py
TIME_ZONE = 'Asia/Shanghai'

配置默认的登陆 url 为 Django 后台的登陆 url

如果需要限制只有登陆的用户才能访问 url。可以在视图函数中使用 login_required 装饰器

from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required

# Create your views here.
@login_required
def index(request):
return render(request, 'cloudclient/index.html')

使用了 login_required 装饰器后,未登录的用户会跳转到登陆页面,要配置登陆页面使用 Django Admin 的登陆 url,需要在 settings.py 中添加以下配置

settings.py
LOGIN_URL = 'admin:login'

配置登陆用户自动注销

要配置登陆用户在指定时间内未操作(发送 url 请求)后自动注销,使用以下配置

settings.py
# 设置会话的过期时间为10分钟(以秒为单位)
SESSION_COOKIE_AGE = 600 # 10分钟

# True: 用户的会话在每个请求时都会刷新会话过期时间
SESSION_SAVE_EVERY_REQUEST = True

Django 管理后台配置

  1. 创建 project 后,要使用 Django 管理后台,需要首先初始化数据库并创建 superuser
    python manage.py makemigrations
    python manage.py migrate
    python manage.py createsuperuser
  2. 为 admin 添加路由
    在工程目录中的 urls.py 文件中配置以下内容
    urls.py
    from django.contrib import admin
    from django.urls import path
    from .views import index

    urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
    # 项目根 url 既是后台
    # path('', admin.site.urls),
    ]

    如果要在访问项目 / 时,重定向到管理后台,可以在项目的 views.py 文件中添加以下内容,将 / 重定向到 /admin/
    views.py
    from django.shortcuts import redirect

    def index(request):
    return redirect('admin/')

    访问项目 url,此时可以看到登陆后台页面。

脚注