Django安装与项目创建

Django

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能

Django安装与项目创建

安装

Django官网下载页面

windows 直接用pip进行安装
pip install django==1.11.11  # 安装django1.11.11版本

创建一个django项目

下面的命令创建了一个名为"mysite"的Django 项目

django-admin startproject mysite  # mysite为项目名称

目录介绍

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

运行Django项目

python manage.py runserver 127.0.0.1:8000

模板文件配置

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"),  # 静态文件存放位置
]

form表单时403错误解决方法

跨站请求伪造

django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成

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',
]
settings.py

{% csrf_token %}

在页面上 form表单 里面 写上 {% csrf_token %},解决form表单提交时403错误,当你提交POST数据的时候,它帮你做校验,如果校验不通过就拒绝这次请求。

APP

创建app

一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码。

命令行创建

python manage.py startapp app01

使用PyCharm创建

在下方弹出的命令窗口输入:

startapp app01

app目录结构

# 目录结构
mysite/
├── manage.py  # 管理文件
└── mysite  # 项目目录
└── app01  # App目录
       ├── migrations   # 数据库操作记录(只是修改表结构的记录)
       ├── __init__.py  # 表示python数据包(python3中有无均可)
       ├── admin.py     # Django为我们提供的后台管理
       ├── apps.py       # 配置当前app
       ├── models.py   # 创建数据库表结构,写指定的类,通过命令可以创建数据库结构
       ├── tests.py      # 单元测试
       ├── views.py     # 写业务逻辑代码,最重要的就是这个文件了

 admin配置app显示中文名称

#配置app下的apps。py文件

from django.apps import AppConfig

class CrmConfig(AppConfig):
    name = 'app01'
    verbose_name = u'中文名称'  # 配置admin显示app中文名称

settings.py配置

Django的settings.py配置 >> 点我

url(路由系统)

Django路由系统 >> 点我 

View视图系统

Django视图系统 >> 点我

Template模板

模板(Template)系统 >> 点我

model(模型)

Model的ORM介绍和字段及字段参数 >> 点我

Model的ORM相关操作>> 点我

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": "a", "hobby": ["篮球", "足球"]})

redirect

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

例如:

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

重定向是怎么回事?

posted @ 2019-01-25 11:05  he。  阅读(193)  评论(0编辑  收藏  举报