安装Django
pip3 install django==2.2
pip3 install pymysql
pip3 install mysqlclient
pip install pillow
创建项目
django-admin startproject 项目名称
django-admin startapp app1
INSTALLEND_APPS =[
.....
'app1',
'app.apps.App1Config',
]
path('', views.index),
python manage.py runserver 8000
基本的路由和分发
urlpatterns = [
path('', views.index, name='index'),
path('', include('app1.urls')
path('', include(('app1.urls','app1'),namespace='app1')),
]
正则表达式
. 除了\n \r 的所有字符
\d 数字
\D 非数字
\w 字母和下划线
\W 非字母和下划线
\s 空格(包括制表符、换页符)
------------------------
* 出现次数 >=0
+ 出现次数 >=1
{n}出现次数=n
{n,m}m>=出现次数>=n
^ 以开头
$ 以结尾
请求与响应
Request对象
关键字 |
说明 |
method |
返回请求的方式(GET |
path |
返回页面的路径(不包括域名) |
META |
封装请求头的数据 (字典类型,key大写,下换线连接) |
REMOTE_ADDR |
客户端的IP地址 |
CONTENT_TYPE |
请求正文的MIME类型 - text/html HTML - text/plain 普通文本 - application/json Json |
GET |
封装GET请求数据的QueryDict对象 |
POST |
封装POST请求数据的QueryDict对象 |
FILES |
封装上传文件数据 |
COOKIES |
封装请求的cookies,类似字典的对象 |
session |
可以读写的类似字典的对象 |
HttpResponse对象
HttpResponse(
content='响应体',
content_type='MIME类型',
status='状态码',
)
MIME类型 |
解释 |
text/html |
HTML |
text/plain |
普通文本 |
application/json |
Json |
状态码 |
解释 |
200 |
请求成功 |
302 |
临时重定向 |
400 |
客户端请求语法错误 |
403 |
服务器拒绝请求 |
404 |
没有找到对应的页面 |
500 |
服务器内部错误 |
JsonResponse对象
from django,http import JsonResponse
def json_handler(request):
return JsonResponse(
{'edu':'CSDN'},
{'course':'Python'},
json_dumps_params={"ensure_ascii":False}
)
重定向
from django.shortcuts import redirect
def re(request):
return redirect('/user')
return redirect(reverse('user:index'))
模板渲染
模板调用
index.html
视图函数中
def index(request):
return render(request, "index.html")
模板传参
def index(request);
context={
"user":"name1",
"pwd":"pass1"
}
return render(request,"index.html",context)
模板语法
{# 循环语句 #}
{% for foo in foo_list%}
{% endfor%}
{# 判断 #}
{% if 条件%}
.....
{% elif 条件%}
...
{% else %}
....
{% endif%}
{#函数地址#}
{% url "namespace:name " 传递参数%}{#参数有则加#}
模板过滤器
过滤器的配合:
{{ 变量|过滤器1|过滤器2 }}
关键字 |
说明 |
safe |
禁止HTML转义 |
length |
长度 |
date |
日期(Y-m-d H:i:s) |
default |
默认值(变量default:默认值) |
upper |
转大写 |
lower |
转小写 |
模板继承
{% extends "基于模板的路径" %}
{# block 块定义与重写 #}
{% block 代码块名称 %}
{% endblock %}
{# 调用父模板的代码 #}
{{ block.supper }}