Django之起步

安装Django

pip3 install django==2.2
pip3 install pymysql
pip3 install mysqlclient
pip install pillow

创建项目

# 第一步运行 manage.py
django-admin startproject 项目名称
# 创建 app,并配置setting.py
django-admin startapp app1

# setting.py
INSTALLEND_APPS =[
	.....
	'app1',
	# 或者
	'app.apps.App1Config',
]
# 创建路由,配置映射
# urls.py
path('', views.index),
# 启动服务
python manage.py runserver 8000 #端口 

基本的路由和分发

urlpatterns = [
    path('', views.index, name='index'),
    # 以下两个路由都是在 app1 中的urls引入
    path('', include('app1.urls') 
    path('', include(('app1.urls','app1'),namespace='app1'))# 运用时 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}
		# 有中文出现加此句
    )

重定向

#利用 redirect
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 }}

你可能感兴趣的:(Django,框架)