Django框架——配置文件、视图函数

在上篇文章,我们学习了Django框架——第一个Django程序,成功创建并启动Django程序,这篇文章我们学习Django框架——配置文件、视图函数。

配置文件

和Flask框架不同,Django框架项目在创建的时会默认生成配置文件settings.py,在深入学习Django框架前,我们先简单了解settings.py文件内非注释代码,

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent

该代码的作用是获取项目根目录,也就是当前文件的父目录的父目录,我们使用该路径时可以通过:BASE_DIR / ‘目录’的方式使用。

SECRET_KEY = 'django-insecure-wf+mek06k^$$9u08=y+=)!=wwj+k_!lgpuzg!kp+(t-sftvg7('

该代码的作用是项目密钥,当我们需要用到加密或解密的时候可以使用该密钥。

DEBUG = True

DEBUG变量控制着是否使用调试模式,True一般用于开发过程中,表示启用调试模式,False一般用于上线部署,表示不启用调试模式。两者主要区别是修改项目代码后,调试模式会自动重启项目。

ALLOWED_HOSTS = ['*']

该代码表示被允许访问的域名或IP,其中*号表示所有的域名或IP都可以访问。

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

该代码是被安装、定义的应用,目前只有Django内部的应用,当我们创建其他应用时,需要在该地方定义创建的应用。

## 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

## 根路由路径
ROOT_URLCONF = 'Django.urls'

## 模版
TEMPLATES = [
    {
        'BACKEND''django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
            ],
        },
    },
]

## wsgi目录
WSGI_APPLICATION = 'Django.wsgi.application'

## 数据库
DATABASES = {
    'default': {
        'ENGINE''django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

## 密码验证,Django内部自己的验证
AUTH_PASSWORD_VALIDATORS = [
    {  'NAME''django.contrib.auth.password_validation.UserAttributeSimilarityValidator', },
    {  'NAME''django.contrib.auth.password_validation.MinimumLengthValidator', },
    { 'NAME''django.contrib.auth.password_validation.CommonPasswordValidator', },
    { 'NAME''django.contrib.auth.password_validation.NumericPasswordValidator',},
]

在上面的代码中,分别为中间件、根路由路径、模版、wsgi目录、数据库、密码验证,在这里我们简单地了解一下就行了。

LANGUAGE_CODE = 'en-us' 
TIME_ZONE = 'UTC'    
USE_I18N = True
USE_TZ = True

该代码作用是修改国际化、地区、语言,主要当语言修改为zh-hans中文,后台管理系统会变为中文。

STATIC_URL = 'static/'   ## 静态文件(CSS, JavaScript, Images)
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'  ## 默认主键配置类型

该代码表示静态文件路径和默认主键配置类型。

创建应用

在Flask框架中,创建应用只需右键点击创建包即可,但在Django框架中,需要执行如下代码创建应用:

python manage.py startapp Product

其中Product为我们的应用名,如下图所示:

Django框架——配置文件、视图函数


这样就成功创建了应用,创建了应用后,需要在settings.py文件中INSTALLED_APPS变量定义应用,示例代码如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Product.apps.ProductConfig',  # 定义应用
]

视图函数

视图函数的本质是Python中的函数,视图函数负责处理用户的请求并返回响应,该响应可以是网页的HTML内容、重定向、404错误、XML文档、图像或者任何东西,一般在应用中的views.py编写,示例代码如下:

from django.http import HttpResponse

def simpleView(request):
    return HttpResponse('Hello World!')

这里我们创建了名为simpleView的视图函数,该函数通过HttpResponse返回字符串。

注意:每个视图函数需要有个参数,该参数名通常是request。

编写视图函数后,可以在Django文件夹中的urls.py文件使用,也就是在URL路由文件使用,示例代码如下:

from django.contrib import admin
from django.urls import path
from Product.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('Simple/',simpleView)   # 路由Simple调用视图函数simpleView
]

在终端执行如下代码启动Django项目,

python manage.py runserver

点击http://127.0.0.1:8000/,如下图所示:

Django框架——配置文件、视图函数


因为在urls.py文件中的urlpatterns有两个url路径,所以Django不知道返回哪个url的响应,导致了报错,这时我们只要访问http://127.0.0.1:8000/Simple/即可返回simpleView视图函数的响应。

当我们想要返回HTML模板文件,需要使用render对象返回响应,示例代码如下:

def SimpleRender(request):
    return render(request,'Hello World.html')

这里我们在Product文件夹创建了template文件夹并在该文件夹创建名为Hello World.html,该html文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

接下来在urls.py文件中的urlpatterns添加如下代码:

path('SimpleRender/',SimpleRender)

接下来访问http://127.0.0.1:8000/SimpleRender/即可访问到Hello World.html文件。

除了同步的视图函数,我们还可以使用异步视图函数,示例代码如下:

async def SimpleRender(request):
    return render(request,'Hello World.html')

没错,在同步视图函数前加async即可变为异步视图函数,其他东西没区别。

好了,Django框架——配置文件、视图函数就讲到这里,下篇文章我们学习Django框架——请求与响应。

– END –

原文始发于微信公众号(白巧克力LIN):Django框架——配置文件、视图函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/222375.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!