2019-03-26 Django大纲

2019-03-26  本文已影响0人  woming

Django

虚拟环境

创建:virtualenv --no-site-packages -p python.exe的路径 环境名

安装与使用

安装:pip install django==2.1.7

创建Django项目:django-admin startproject 项目名

创建django应用:python manage.py startapp 应用名

启动,修改IP和端口

数据库简单配置与迁移

管理后台

模型

迁移

模型定义

模型操作

模型关系

一对一

一对多

多对多

字段中的on_delete参数值

模板

父模板:用于挖坑{% block name %} {% endblock %}

子模板:负责继承父模板后,进行填坑

标签:{% 标签 %}

变量:{{ 变量名 }}

过滤器

路由规则

path

re_path

include

urlpatterns = [ path('admin/', admin.site.urls), # 包含 # TODO:Django2.0以下写法, path('goods/', include('goods.urls')), path('app/', include('app.urls')) ]

请求与响应

请求

响应

用户USER

使用django自带的USER模块

自定义USER模块

中间件MIDDLEWARE

process_request(self, request):请求进来时直接进行拦截(应用场景:登录校验)

process_view(self, request, view_func, view_args, view_kwargs):调用view方法之前进行拦截调用

process_exception(self, request, exception):不主动调用,只有出现异常时才执行

process_response(self, response):最后响应浏览器时才调用

process_template_response():没有应用场景

执行顺序

文件上传

安装:pip install pillow

模型中定义字段:

icon = models.ImageField(upload_to='upload')

设置media文件夹路径:

MEDIA_URL = 'media' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

展示图片需要在工程目录的urls.py文件中指定静态文件路由:

static(MEDIA_URL, document_root=MEDIA_ROOT)

展示图片:

前端中定义属性<form enctype='multipart/form-data'>

表单验证

定义

class UserForm(forms.Form):
forms.CharField
forms.IntegerField
forms.ImageField

def clean(self):
    # 自动调用
    return self.cleaned_data

def clean_字段(self):
    # 校验指定字段
    return self.cleaend_data

forms = UserForm(request.POST, request.FILES)

验证:form.is_valid()

验证错误信息:form.errors

分页

from django.core.paginator import Paginator

paginator = Paginator(所有数据,条数)

page_data = paginator.page(页码)

越界会报错

权限

RBAC

用户表--权限表--角色表:

都是多对多关联关系

用户和权限:user_permissions字段

用户和角色:groups字段

角色和权限:permissions字段

权限列表

权限获取

权限校验装饰器

模板中

上一篇下一篇

猜你喜欢

热点阅读