目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之模板HTML相关【交互篇三】点击跳转
目录
- 1.创建Django项目
- 2.创建app(并且app目录下创建一个urls.py文件)
- 3.Django项目下的settings进行注册该app
- 4.定义请求的URL路由分发
- 5.定义app下的URL路由
- 6.定义URL对应函数处理
- 8.html文件进行使用django的simple_tag和自定义的simple_tag,filter
- 9.启动Django
- 10.浏览器访问URL结果
1.创建Django项目
Django之创建项目【二】:https://blog.csdn.net/Burgess_zheng/article/details/86505526
2.创建app(并且app目录下创建一个urls.py文件)
进入项目目录下
创建app命令:
F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py startapp submit_views
3.Django项目下的settings进行注册该app
路径:project_burgess/project_burgess/settings
4.定义请求的URL路由分发
路径:project_burgess/project_burgess/urls.py
from django.contrib import admin from django.urls import path,re_path #Django版本2.0以上 from project_burgess import views from django.conf.urls import url #Django2.0 from django.conf.urls import include urlpatterns = [ path('admin/', admin.site.urls), #提交各种数据数据类型测试 re_path('submit/', include("submit_views.urls")), # url(r'^submit/', include("submit_views.urls")), ]
5.定义app下的URL路由
路径:project_burgess/submit_views/urls.py
__author__ = "Burgess Zheng" #!/usr/bin/env python #-*- coding:utf-8 -*- from django.urls import path,re_path #Django版本2.0以上 from submit_views import views from django.conf.urls import url #Django2.0 app_name='namespace' urlpatterns = [ # simple_tag_and_filter re_path('stf/', views.stf), # url(r'^stf/',views.stf), ]
6.定义URL对应函数处理
路径:project_burgess/submit_views/views.py
def stf(request): name = "BURGESSzheng886edfs" return render(request,'stf.html',{'name':name})
7.在app目录下创建templatetags目录,和定义函数处理.py文件
注意该目录名字必须为templatetags,所在的app必须在django的settings进行注册
路径:project_burgess/submit_views/templatetags/xxoo.py
__author__ = "Burgess Zheng" from django import template from django.utils.safestring import mark_safe register = template.Library() #实例化一个对象,对象的名字必须是register,不能为其他 #调用该对象继承类的simple_tag方法装饰下面函数 @register.simple_tag def houyafan(a1,a2): return a1+a2 #调用该对象继承类的filter方法装饰下面函数 @register.filter def jiajingze(a1,a2): return a1+a2 # 注意:对于filter,前端模板最多就只能传两个函数 # 前端模板想传3个参数,那么必须把需要的多个参数以一个参数的形式出现, # 那么函数内部自己去分开进行处理 #我们要用上面的吗?看场景,如果前端模板要做判断,这能用这种,simple_tag不能做判断 #调用该对象继承类的filter方法装饰下面函数 @register.filter def mengduo(a1,a2):#职能接收2个参数,如果前端有多个参数,函数内部在做切割处理 print(a2) return a1+a2 #调用该对象继承类的filter方法装饰下面函数 @register.filter def int01(a1,a2): print(a2,type(a2)) return a1+str(a2)
8.html文件进行使用django的simple_tag和自定义的simple_tag,filter
路径:project_burgess/templates/stf.html
{% load xxoo %}{#导入自定义的函数所在的文件#} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div>-------------后端的模板变量----------------</div> {{ name }} <div>-------------Django自带----------------</div> {{ name|lower }} {#该帮助加工的是django自身提供的功能:对name的内容进行加工变成全部小写#} {{ name|truncatewords:"30" }} {#truncatewords函数 name是实参 "30"也是实参 :取该字符串的前30个字符#} <div>--------自定义simple_tag-------</div> {% houyafan 2 5 %} {#simple_tag调取函数格式:houyafan函数 2实参 5实参 空格为实参间隔符#} <div>--------自定义filter-------</div> {{ "maliya"|jiajingze:"LS" }} {#filter调取函数格式:"maliya"实参 jiajingze:函数 "LS"实参 #} {#注意:对于filter最多就只能传两个函数#} {#如果想传3个参数,那么你就必须"LS,YH" 两个参数和在一起变一个参数#} {#那么函数内部自己去分开进行处理#} {{ "mamama"|mengduo:"LS,YH" }} {#filter格式传3个参数,函数内部还是当做2个参数接收#} {{ "shuzi"|int01:5 }} {#filter格式数字,函数内部接收需要转字符串#} {# {% if "maliya"|jiajinze:"LS" %} #} {# {% endif %} #} {#filter模式调取模式可以在模板语言里面做判断#} {#simple_tag调用的方式不能在模板语言里做判断#} </body> </html>
9.启动Django
手动:python manage.py runserver 127.0.0.1:8000
pycharm:
10.浏览器访问URL结果
目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之模板HTML相关【交互篇三】点击跳转