感谢alex老师~

知识点:
URL
- 两个没见
url>路由系统> 函数或类 > 返回字符串
Form表单提交:
提交 >url>函数或类中的方法
-..
HttpResponse()
render(request,'index.html')
redirect('/index/') 用户<< 返回字符串
(当接收到redirect时)自动发起另一个请求 Ajax:
$.ajax({
url:'/index/',
data:{} , //用字典形式发$(form对象).serialize() 但如果有多选 需要添加traditional:true
type:"POST",
traditional: true
dataType:'JSON',
success:function(data){
location.reload() #刷新
location.href = "某个地址" #跳转
}
}) 提交 -> url ->函数或类中的方法
HttpResponse('''')
用户 << 字符串
注:字典需先转为字符串才能发送到后台
'k3':JSON.stringfy({'k3':'v'})
Views
-请求的其他信息 request from django.core.Handers.wsgi import WSGIRequest
print(type(request))
print(request.environ) 所有的信息
分辨手机PC的请求头 print(request.environ['HTTP_USER_AGENT']) #request.POST
#request.GET
#request.COOKIES Models
- 大量的操作 Templates
- 模板的继承...html
extends
include
- 模板自定义函数 自定义simple_tag
步骤如下: 注:名字不能改 templatetags register
:首先在某个app下面建立一个叫templatetags
:在templatetags创建个任意py文件 如 cc.py
:然后写上
##########################
from django import template
from django.utils.safestring import mark_safe
register = template.Library() @register.simple_tag //加个装饰器
def func(a1,a2):
return a1+a2
##########################
.使用 在setting里面要注册当前app
.在templates的html文件里使用 如1.html
.在顶部 {% load cc %} py文件的名字 如果有extends放其下面 {%extends 'master.html' %} {% load cc %}
.{% func %} 就会显示5 里面的空格无关系 函数名 注:
@register.simple_tag //加个装饰器 随意参数 且空格随意 缺点 不能作为if条件
def func(a1,a2):
return a1+a2 {% func %} @register.filter #filter只能传两个值 空格还得控制 应用场景:用在if判断里{% if "mm"|haha:"gg" %} {%endif%}
def haha(a1,a2,a3):
return a1+a2+a3 {{"mm"|haha:"gg"}} {{参数1|函数名:"参数2"}} cookie和session用来用户认证 当用户登录成功后才能操作 -装饰器 分页只能在django用
()用django的一个类
()自定义的分页 公共的主页 通用的 对用户的请求进行验证
Form验证: 路由系统URL:
a./index/ -> 函数或类
b. /index/(?P<nid>\d+) 函数或类
d. /index/(?P<pid>\d+) name='root'
reverse() {% url 'root' %}
from django.urls import reverse (views.py)
v = reverse('root')
print(v) e./crm/ include('app01.urls') 路由分发 f.默认值
url(r'^index/', views.index,{'name':'root'}),
def index(request,name):
return HttpResponse(name) g.命名空间 一般不用
urls
/admin/ include('app01.urls' ,namespace="m1"),
/crm/ include('app01.urls', namespace = "m2") app01.urls
/index/ name = 'n1'
reverser('m1:n1') 生成完整的url /admin/index app01.urls
/index/(\d+) 、
def func(request):
request.POST
request.GET
request.FILES
request.getlist
request.method
request.path_info return render,HttpResponse, redirect 、
render(request, "index.html")
for
if
索引 keys values items all 、
class User(models.Model):
username = models.CharField(max_length=) //字符长度
email = models.EmailField()
Django Admin :有验证功能
User.objects.create(username="root", email="afuhadf")
如果使用这句是可以插入成功的 ,但是在django Admin里面添加则会需要验证 增删改查
外键
一对多
多对多
注:()user_type = models.ForeignKey("UserType")
user_list = User.objects.all() //对象列表
for obj in user_list:
obj.user_type_id
obj.user_type.name #对象的跨表 ()user = User.objects.get(id=) //单个对象
user. ()User.objects.all().values("username","user_type__name") //__的跨表 根据values 多对多
()
class UserType(models.Model):
name = models.CharField(max_length=) class User(models.Model):
username = models.CharField(max_length=)
email = models.EmailField()
user_type = models.ForeignKey("UserType")
m = models.ManyToMany("UserGroup") class UserGroup(models.Model):
name = .... obj = User.objects.get(id = )
obj.m.add()
obj.m.add(*[,,])
obj.m.remove()
obj.m.clear()
obj.m.ser([,,,]) #多个组的信息。 UserGroup对象
obj.m.all()
obj.m.filter(name = 'CTO') 创建一个base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title%}{% endblock%}</title>
{% block css %}{% endblock %}
</head>
<body>
<div>小蛇皮</div>
{% block content %}{% endblock %}
<script src="/static/jquery.js"></script>
{% block js %}{% endblock %}
</body>
</html>
在head中的 tp1.html
{% extends 'base.html' %} #要继承哪个模板
{% block title %}用户管理 {% endblock %} 要继承模板的哪个块
{% block content %}
<h1>用户管理</h1>
<ul>
for循环
<ul> {% endblock %}
{% block css %}
<style>
<style>
{% endblock %}
{% block js %}
<script><script>
{% endblock %}
但是关于CSS JS 同时跟顺序无关 {% include "tag.html" %} 先写一个tag.html小功能 一个模板里添加这个 可以重复添加

django 笔记8 url模板 自定义函数 simple_tag的更多相关文章

  1. 模板语言 自定义函数simple_tag

    模板语言自带的一些处理函数:通过管道符来处理 帮助方法:{{ item.event_start|date:"Y-m-d H:i:s"}}  转换成日期时间型{{ bio|trunc ...

  2. 模板自定义函数 template function

    sqlite3中的日期默认是UTC,当日期字段的默认值是CURRENT_TIMESTAMP时,这个日期和北京时间CST少了8小时. 网上建议说数据库里用UTC,读取数据时再转换为当地时间. web页面 ...

  3. sqlserver -- 学习笔记(一)自定义函数(学习总结,备忘)

    SQL Server自定义函数,以前只在书上看过,没有动手去敲一敲,今天刚好接触到,看了几篇博文学习了下.做好备忘很重要!! (@_@)Y Learn from:http://www.cnblogs. ...

  4. PHP移动互联网开发笔记(4)——自定义函数及数组

    一.自定义函数 自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下: function funname(arg1, arg2, arg3......){ //TODO return val ...

  5. Django笔记&教程 3-1 模板(Template)基础

    Django 自学笔记兼学习教程第3章第1节--模板(Template)基础 点击查看教程总目录 1 介绍 模板文件:让Django能够自动生成html代码 作为一个web框架,Django需要需要在 ...

  6. django笔记-模型数据模板呈现过程记录(多对多关系)

    首先,推荐一个网址:http://www.tuicool.com/articles/BfqYz2F,因为这里的比我的要有条理,更有利于各位的理解. 以下仅为为个人一次不完整的笔记: 环境:ubuntu ...

  7. django自带url模板标签的使用

    django模板中url标签和view中的reverse(博客地址)功能相同,都是通过制定处理视图来返回一个url. 使用方法: {% url userEdit 12 %} 或者 {% url use ...

  8. Django笔记&教程 3-3 模板常用语法

    Django 自学笔记兼学习教程第3章第3节--模板常用语法 点击查看教程总目录 本文主要参考:https://docs.djangoproject.com/en/2.2/ref/templates/ ...

  9. Django笔记&教程 3-4 模板继承

    Django 自学笔记兼学习教程第3章第4节--模板继承 点击查看教程总目录 在介绍具体的技术之前,先介绍在什么样的场景中,需要使用这样的技术,我觉得这对于新手理解起来很重要. 一般来说,要渲染一个页 ...

随机推荐

  1. spring boot和maven的约定大于配置体现在哪些方面

    spring boot和maven的约定大于配置体现在哪些方面? 两者都遵从了约定大于配置的路线 约定优于配置体现点: 1.maven的目录文件结构 1)默认有resources文件夹,存放资源配置文 ...

  2. Java採用JNI调用VC++生成的dll(Java与C++交互)

    应项目需求,须要android调用java,java再调用C++实现android一个图片匹配的功能,我们作为java组须要和C++和Android进行交互.以下是java和C++採用JNI的方式进行 ...

  3. HDU5411CRB and Puzzle(矩阵高速幂)

    题目链接:传送门 题意: 一个图有n个顶点.已知邻接矩阵.问点能够反复用长度小于m的路径有多少. 分析: 首先我们知道了邻接矩阵A.那么A^k代表的就是长度为k的路径有多少个. 那么结果就是A^0+A ...

  4. ZOJ 3690 Choosing number(dp矩阵优化)

    Choosing number Time Limit: 2 Seconds      Memory Limit: 65536 KB There are n people standing in a r ...

  5. POJ 3657 并查集

    题意: 思路: 1.二分+线段树(但是会TLE 本地测没有任何问题,但是POJ上就是会挂--) 2.二分+并查集 我搞了一下午+一晚上才搞出来----..(多半时间是在查错) 首先 如果我们想知道这头 ...

  6. Codeforces 677D Vanya and Treasure 暴力+BFS

    链接 Codeforces 677D Vanya and Treasure 题意 n*m中有p个type,经过了任意一个 type=i 的各自才能打开 type=i+1 的钥匙,最初有type=1的钥 ...

  7. 洛谷P1067 多项式输出(模拟)

    题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1. 多项式中 ...

  8. C# AssemblyResolve事件可能不触发

    C# AssemblyResolve事件需要引用的dll的“复制本地”属性设置为False,如果为True,可能不会触发这个事件的处理函数. 我想设计一个自动加载分架构的C++/CLI的dll,用到了 ...

  9. hiho 171周 - 水题,并查集

    题目链接 题目描述: 输入4 alice 2 alice@hihocoder.com alice@gmail.com bob 1 bob@qq.com alicebest 2 alice@gmail. ...

  10. ZBrush中独特功能Projection Master

    Projection Master可以理解为投影大师,它是ZBrush®的一个独特功能,该功能可以让用户使用所有的2D和2.5D笔刷工具在3D模型上进行雕刻.纹理绘制和其他的操作. 简单来说,Proj ...