感谢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. Struts2学习(四)利用ajax异步上传

    上一篇说到怎样在struts2中进行上传下载.我们使用了struts的标签通过表单提交的方式,但大家知道表单提交会造成页面总体的刷新,这样的方式很不友好,那我们今天就来说说怎样结合ajax方式进行异步 ...

  2. 第二次phython作业

    第一题:编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数.(注意保证删除操作的效率) import random x=[random.randint(0,100)for i in ra ...

  3. dpdk l2fwd 应用流程分析

    int MAIN(int argc, char **argv) { struct lcore_queue_conf *qconf; struct rte_eth_dev_info dev_info; ...

  4. 深搜解Riding the Fences

    Riding the Fences Farmer John owns a large number of fences that must be repairedannually. He traver ...

  5. caffe环境配置2

    参考链接: http://blog.csdn.net/enjoyyl/article/details/47397505 http://blog.csdn.net/baobei0112/article/ ...

  6. BZOJ2154: Crash的数字表格 & BZOJ2693: jzptab

    [传送门:BZOJ2154&BZOJ2693] 简要题意: 给出n,m,求$\sum_{i=1}^{n}\sum_{j=1}^{m}LCM(i,j)$ 题解: 莫比乌斯反演(因为BZOJ269 ...

  7. hdoj--4501--小明系列故事——买年货(三维背包)

    小明系列故事--买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tota ...

  8. 132.try throw catch介绍

    #include <iostream> using namespace std; //try尝试执行,抛出throw,throw之后语句不再执行 //catch处理throw的异常 voi ...

  9. 在Jquery里格式化Date日期时间数据

    在Jquery里格式化Date日期时间数据: $(function(){ //当前时间格式化yyyy-MM-dd HH:mm:ss alert(timeStamp2String(new Date(). ...

  10. (转载) android快速搭建项目积累

    android快速搭建项目积累 2016-04-05 20:07 519人阅读 评论(0) 收藏 举报  分类: android优化(8)   Rx技术(5)  版权声明:本文为博主原创文章,未经博主 ...