美文网首页
57.2-Django之GET和POST调试、模板原理

57.2-Django之GET和POST调试、模板原理

作者: BeautifulSoulpy | 来源:发表于2020-08-06 11:13 被阅读0次
趁你现在还有时间,尽最大努力做你最想做的那件事,过你最想过的那种生活。也许我们始终都是一个小人物,但这并不妨碍我们选择用什么方式去生活,这个世界永远比你想的要更精彩!

总结:

  1. Django最常用的东西都涵盖了;
  2. 前后端分离:前端:JS、css、react;后端:Django 纯粹解决数据问题;
  3. ctrl+B 查看模块源代码;<hr> 横线

Django模板

如果使用react实现前端页面, 其实Django就没有必须使用模板, 它其实就是一个后台服务程序, 接收请求, 响应数据。接口设计就可以是纯粹的Restful风格。

WSGI server处理response转换为html是一个复杂的过程;网页主体模板大体是相似的,改变的是数据;

模板的目的就是为了可视化,将数据按照一定布局格式输出,而不是为了数据处理,所以一般不会有复杂的处理逻辑。模板的引入实现了业务逻辑和显示格式的分离,这样,在开发中,就可以分工协作,页面开发完成页面布局设计,后台开发完成数据处理逻辑的实现。

Python的模板引擎默认使用Django template language(DTL) 构建(语言)

采用postman调试 :请求方法Method

GET 请求获取URL对应的资源,请求的第一行(头、URL)
POST 提交数据至服务器端, post部分内容在body中;
HEAD 和GET类似,不过不返回消息response正文,只返回头部信息;

1.Get方法

查询字符串是通过get方法;


2. POST方法

CSRF解决安全问题;


CSRF报错关掉 MIDDLEWARE # django.middlewarre.csrff.CsrfViewMiddleware
id=100-&name=tom&name=jerry&name=ben 在 post / body中form-data 修改为
id:100
name:tom
name:jerry
name:ben

<QueryDict:{'id':['100'],'name':['tom','jerry','ben']}>   #正确格式;
1. 模板配置

blog12/下新建templates目录,在settings.py中, 设置模板项目的路径;

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],     #  templates模块路径 ;
        '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',
            ],
        },
    },
]

DIRS 列表,定义模板文件的搜索路径顺序
APP_DIRS 是否运行在每个已经安装的应用中查找模板。应用自己目录下有templates目录,例如、
django/contrib/admin/templates。如果应用需要可分离、可重用,建议把模板放到应用目录下
BASE_DIR 是 项目根目录,os.path.join(BASE_DIR, 'templates')就是在manage.py这一层建立一个目录
templates。这个路径就是以后默认找模板的地方。

2.模板渲染
模板页
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>首页</title>
</head>
<body>
    <h1>欢迎您访问!</h1>
    <p>我的数据部分。</p>
</body>
</html>
3. 模板处理

将request处理完成之后,生成一个上下文字典context,然后将这个字典凑到这个模板index中,形成一个大字符串,然后response给浏览器渲染;

2个步骤
1、加载模板
模板是一个文件,需要从磁盘读取并加载。要将模板放置在
2、渲染
模板需要使用内容数据来渲染,生成HTML文件内容

# urls
from django.template import loader
from django.template.backends.django import  Template
from django.shortcuts import  render

def index(request:HttpRequest):
    """视图函数:请求进来返回响应"""
    # template:Template = loader.get_template('index.html')   # 加载器搜索模块 并加载;
    # print(type(template))
    context = {'school':'magedu'}   #正文字符串  数据传输
    # html = template.render(context)   # render拼接字符
    # print(html)
    # return HttpResponse(html.encode())
    return render(request,'index.html',context,status=201)

urlpatterns = [
    url(r'^admin/', admin.site.urls),   # 正则表达式模式匹配
    url(r'^$', index),   # 以它开头、结尾的;
    url(r'^index$', index),  # 以 index开头 index1、index/ ;
    # 两个不同的函数指向同一个问题url;不是多对多;
]

### blog12/templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>首页</title>
</head>
<body>
    <h1>欢迎您访问!</h1>
    <p>我的第一个段落。</p>
    <hr>
    {{school}}    // 上下文字典的   key
</body>
</html>

相关文章

  • 57.2-Django之GET和POST调试、模板原理

    趁你现在还有时间,尽最大努力做你最想做的那件事,过你最想过的那种生活。也许我们始终都是一个小人物,但这并不妨碍我们...

  • 前端面试题之HTML(二)

    post和get方式提交数据有什么区别? 表象不同,get把提交的数据url可以看到,post看不到 原理不同,g...

  • 作为web前端面试官准备的一面题目 (转)

    一、HTTP: 1. POST、GET区别 HTTP POST GET 本质区别详解一 原理区别根据HTTP规范,...

  • iOS请求方法和网络安全

    GET和POST请求 GET和POST请求简介 GET请求模拟登陆 POST请求模拟登陆 GET和POST的对比 ...

  • iOS请求方法和网络安全

    GET和POST请求GET和POST请求简介GET请求模拟登陆POST请求模拟登陆GET和POST的对比保存用户信...

  • [原创] API接口调试神器1-Postman

    接口调试之痛 传统浏览器访问URL只能发送GET请求,想发送POST、HEAD、PUT等请求时,想想就觉得尴尬; ...

  • 接口地址

    get http://app.95e.com/vm/getCategories2.aspx post 接口调试 ...

  • AJAX

    一、GET请求 基本模板 1)简单请求 二、POST 三、url 和 async 1)url url - 服务器上...

  • tornado-参数处理

    1.tornado程序的参数处理【表单操作】【参数传递】【模板语法】 demo.py 注意: get和post接收...

  • jQuery中的Ajax

    原生的Ajax Ajax之load Ajax之$.get() get与post方式的区别:1.安全性。post的安...

网友评论

      本文标题:57.2-Django之GET和POST调试、模板原理

      本文链接:https://www.haomeiwen.com/subject/hgoarktx.html