创建第一个Djiago

Djiago

目录介绍

mysite/
├── manage.py  # 管理文件
└── mysite  # 项目目录
    ├── __init__.py
    ├── settings.py  # 配置
    ├── urls.py  # 路由 --> URL和函数的对应关系
    └── wsgi.py  # runserver命令就使用wsgiref模块做简单的web server

模板文件配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "template")],  # template文件夹位置
        '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',
            ],
        },
    },
]

静态文件配置:

STATIC_URL = '/static/'  # HTML中使用的静态文件夹前缀
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),  # 静态文件存放位置
]

刚开始学习时可在配置文件中暂时禁用csrf中间件,方便表单提交测试。

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',
]

Django基础必备三件套

from django.shortcuts import HttpResponse, render, redirect

HttpResponse

内部传入一个字符串参数,返回给浏览器。
例如:

def index(request):
    # 业务逻辑代码
    return HttpResponse("OK")

render

除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。

将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)

例如:

def index(request):
    # 业务逻辑代码
    return render(request, "index.html", {"name": "alex", "hobby": ["烫头", "泡吧"]})

redirect

接受一个URL参数,表示跳转到指定的URL。

例如:

def index(request):
    # 业务逻辑代码
    return redirect("/home/")

重定向是怎么回事?

文档结构

urls

用来创建服务器地址列表,当用户访问时,根据匹配到的地址执行相应的函数,函数在view的py文件中

from django.conf.urls import url
from ..view.code import index,login,text


urlpatterns = [
    #服务器的路径列表,用户访问时执行相应的函数
    url(r'^home/$', index),
    url(r'^login/$', login),
    url(r'^text/$',text),
]

code

from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect

def index(request):
    return  render(request,'Dashboard Template for Bootstrap.html')

def login(request):
    #判断请求方法是get还是post
    if request.method=='POST':
        #获取表单提交的用户名和密码
        name = request.POST.get('email', None)
        pwd = request.POST.get('pwd', None)
        #对密码进行判断
        if name == 'kingfan' and pwd == '123':
            #登录成功则重定向网页
            return redirect('/home/')
        else:
            #不成功则修改网页中的特殊字符返回网页
            return render(request, '登陆实例.html', {'msg': '用户密码错误'})
    return render(request,'登陆实例.html')

def text(request):
    return HttpResponse('HELLO Kingfan')
原文地址:https://www.cnblogs.com/Kingfan1993/p/9850208.html