Django
2021-03-11 16:47:42 3 举报
AI智能生成
最全Django思维导图
作者其他创作
大纲/内容
模型层Model
使用ORM模型,建表,写函数
一般对数据的操作和统计相关的功能写到模型类里,一些逻辑处理放到视图里面
settings设置INSTALLED_APPS
模型类
QuerySets
querysets方法参照
视图层View
函数视图 FBV(function base views)
类视图 CBV(class base views)
通用类视图 GCBV(Classy Class-Based Views)
GCBV
装饰器
官网介绍
装饰器要求视图仅接受特定的请求方法用法:(请求方法应为大写)
装饰器要求视图仅接受GET方法:require_GET()
装饰器要求视图仅接受POST方法:require_POST()
装饰器要求视图仅接受GET和HEAD方法:require_safe()
中间件
请求,响应对象
请求:HttpRequest
响应:HttpResponse
生成CSV | 生成PDF
生成CSV
生成PDF
文件上传
forms.py
views
报错
404:找不到页面
500:服务器错误
403:禁止HTTP
400:错误请求
模板层Templates
介绍
模板是文本文件。它可以生成任何基于文本的格式(HTML,XML,CSV等)。
静态文件
css
images
js
sass
变量
{{ variable }}
标签
标签和过滤器
开始和结束标签:{% tag %} ... tag contents ... {% endtag %}
for标签:{% for i in is %} {%endfor%} ,还有if,elif和else等
关掉自动转义:{% autoescape on %} {{ body }} {% endautoescape %}
CSRF保护:{% csrf_token %}
过滤器
将文本转换为小写:{{ name|lower }} {{ name }}lower|
转义文本内容:{{ text|escape|linebreaks }}<p>
过滤器过滤参数,显示变量的前30个字:{{ bio|truncatewords:30 }}bio
包含空格的过滤器参数必须用引号引起来,例如使用逗号和空格加入列表:{{ list|join:\
add:{{ value|add:\"2\" }}
cut:{{ value|cut:\" \" }}
data:{{ birthday|date:\"Y/m/d\" }}
注释
注释一行,使用:{# #}
注释模块,使用:{% comment %}{% endcomment %},注意:comment 标签不能嵌套。
模板继承
继承base骨架:{% extends \"base.html\" %} {% block title %}{% endblock %} {% block content %}{% endblock %}
自动HTML转义
要禁用单个变量的自动转义,请使用safe 过滤器:{{ data|safe }}
要控制模板的自动转义,将模板包装在autoescape标记中:{% autoescape off %}Hello {{ name }}{% endautoescape %}
自定义标签和过滤器库
自定义库和模板继承
表单Forms
开发进程
WSGI服务器
ASGI服务器
span style=\
通过电子邮件跟踪代码错误
部署清单
Django
MVC
Django是一个遵循MVC设计模式的框架,MVC是Model、View、Controller的三个单词的简写。分别代表模型、视图、控制器。
Django也是一个MTV的设计模式。MTV是Model、Template、View三个单词的简写。分别代表模型、模版、视图
项目结构
manage.py
以后和项目交互基本上都是基于这个文件。一般都是在终端输入python manage.py [子命令]。可以输入python manage.py help看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。
settings.py
本项目的设置项,以后所有和项目相关的配置都是放在这个里面。
urls.py
这个文件是用来配置URL路由的。比如访问http://127.0.0.1/news/是访问新闻列表页,这些东西就需要在这个文件中完成。
wsgi.py
项目与WSGI协议兼容的web服务器入口,部署的时候需要用到的,一般情况下也是不需要修改的。
虚拟环境
virtualenv
安装virtualenv
pip install virtualenv
创建虚拟环境
virtualenv [虚拟环境的名字]
进入环境
进入到虚拟环境的Scripts文件夹中,然后执行activate
退出虚拟环境
deactivate
virtualenv wrapper
安装virtualenvwrapper
*nix:pip install virtualenvwrapper。windows:pip install virtualenvwrapper-win
mkvirtualenv my_env
切换到某个虚拟环境
workon my_env
退出当前虚拟环境
删除某个虚拟环境
rmvirtualenv my_env
列出所有虚拟环境
lsvirtualenv
进入到虚拟环境所在的目录
cdvirtualenv
数据库
连接数据库
1.在settings.py中,配置好DATABASES,做好数据库相关的配置。
2.在app中的models.py中定义好模型,这个模型必须继承自django.db.models。
3.将这个app添加到settings.py的INSTALLED_APP中。
4.在命令行终端,进入到项目所在的路径,然后执行命令python manage.py makemigrations来生成迁移脚本文件。
5.同样在命令行中,执行命令python manage.py migrate来将迁移脚本文件映射到数据库中。
mysql
Mongdb
Redis
ORM
常用Web程序工具
Celery
websoket
cookie/session
配置文件
DATABASES
'default': {'ENGINE': 'django.db.backends.mysql'span style=\"font-size: 1em;\
模板
TEMPLATE_DIRS = (span style=\"font-size: 1em;\
STATICFILES_DIRS = (span style=\"font-size: 1em;\
setting中添加当前app
拓展包
Django项目快速创建
Cookiecutter
编辑器
MarkDown
Django的WebSocket
Channels
Channels路由Routing
Consumer
ASGI
使用asgi代替wsgi
WebScoket自动断开重连
reconnecting-websocket
搜索包
Haystack
添加app,设置apps.py
总url设置haystack.url路由
设置里加上HAYSTACK_CONNECTOINS配置
Elasticsearch(es服务端的安装)
依赖java
启动Elasticsearch不允许使用root用户
Elasticsearch的2版本与Django兼容,新版本不兼容
安装成功,检查9200端口是否返回数据
curl http: //localhost:9200
序列化
serializers
0 条评论
回复 删除
下一页