Day19内容回顾
1,Django请求的生命周期
路由系统-视图函数(获取模板+数据->渲染)->字符串返回给用户
2,路由系统
/index/ 函数或类.as_view()
/detail(\d+)/ 函数或类.as_view()
/detail(?P<nid>\d+)/ 函数或类.as_view()(参数)
/detail/ 路由分发include("app01.urls")
/detail/ name='a1' 路由分发include("app01.urls")
视图中:reverse
模板中:{% url "a1"%}
3,视图
FBV:函数 def index(request,*args,**kwargs):
CBV:类 class Home(views.view):
def get(self,request,"args"):
dispatch
获取用户请求中的数据
request.method
request.POST.get
request.GET.get
request.FILES.get
#checkbox,
request.......getlist()
request.path_info 文件对象=request.FILES.get()
文件对象.name
文件对象.size
文件对象.chunks() <form 特殊的设置></form> 给用户返回数据:
HttpResponse
render(request,'index.html模板文件的路径',{'user':user})
redirect("url")
4,模板语言:
render(request,"模板文件的路径",{'obj':1234,'k1':[1,2,3,4],"k2":{'name':'张扬','age':73}) {{obj}} 1234
{{k1.3}}----4
{{k2.name}}----张扬
{% for i in k1 %}
<p> {{i}} </p>
{% endfor %} {% for k in k2.keys %}
<p> {{k}} </p>
{% endfor %} {% for v in k2.values %}
<p> {{row}} </p>
{% endfor %} {% for k,v in k2.items %}
<p> {{k}}-{{v}} </p>
{% endfor %} 5,ORM
a.创建类和字段
class User(models.Model)
uid=models.IntegerField()
name=models.CharField(max_length=12) #字符长度
python manage.py makemigrations
python manage.py migrate #settings.py中注册APP
b.操作,注意字典的操作
增:models.User.objects.create(name='Alex',age=18)
dic={'name':'xx','age':19}
models.User.objects.create(**dic) obj=models.User(name='Jack',age=18)
obj.save() 删:models.User.objects.filter(id=12).delete() 改:models.User.objects.filter(id__gt=1).update(name='Jack')
dic={'name':'xx','age':19}
models.User.objects.filter(id__gt=1).update(**dic) 查:models.User.objects.filter(uid=12)
models.User.objects.filter(uid__gt=12 大于
models.User.objects.filter(uid__lt=12) 小于
models.User.objects.filter(uid__gte=12) 大于等于
models.User.objects.filter(uid__lte=12) 小于等于 dic={'name':'xx','age':19}
models.User.objects.filter(**dic)
6,外键操作
class UserType(models.Model)
caption=models.CharField(max_length=32) #1,普通
#2,VIP用户
#3,游客 class User(models.Model)
uid=models.IntegerField()
name=models.CharField(max_length=12) #字符长度
user_type_id=models.IntergerField() #此时的数值大小没有约束
user_type=models.ForeignKey("UserType",to_field='id') #约束
name age user_type_id
#张扬 18 1
#李四 20 2
Day19内容回顾的更多相关文章
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...
- python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...
- python 全栈开发,Day72(昨日作业讲解,昨日内容回顾,Django多表创建)
昨日作业讲解 1.图书管理系统 实现功能:book单表的增删改查 1.1 新建一个项目bms,创建应用book.过程略... 1.2 手动创建static目录,并在目录里面创建css文件夹,修改set ...
- Netty源码分析第4章(pipeline)---->第7节: 前章节内容回顾
Netty源码分析第四章: pipeline 第七节: 前章节内容回顾 我们在第一章和第三章中, 遗留了很多有关事件传输的相关逻辑, 这里带大家一一回顾 首先看两个问题: 1.在客户端接入的时候, N ...
- Python并发编程内容回顾
Python并发编程内容回顾 并发编程小结 目录 • 一.到底什么是线程?什么是进程? • 二.Python多线程情况下: • 三.Python多进程的情况下: • 四.为什么有这把GIL锁? • 五 ...
- 04 DRF内容回顾、用户登录 (含跨域) (vuex vue-cookie)、用户认证 (Auth认证)(拦截器)
1.内容回顾 1.视图中常见的继承 2.频率访问控制源码 3.序列化,反序列化 2.初始化代码 1.后端代码:AuthView (1)目录结构 (2)urls (3)view (4)注释掉cors ( ...
- JavaScript内容回顾
<!DOCTYPE html> <!--JavaScript内容回顾--> <html lang="en"> <head> < ...
- CSS作业问题 内容回顾
CSS作业问题 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 第1节 storm编程:1、storm第一天上次课程内容回顾
上次课程内容回顾:1.kafka的基本介绍:kafka是一个消息队列2.消息队列的作用:解耦3.kafka与传统消息队列的对比: 传统消息队列:支持事务 kafka的特点:比较快,比较快的两个原因:顺 ...
随机推荐
- angular中的$http服务
$http是ng内置的一个服务.是简单的封装了浏览器原生的XMLHttpRequest对象. 写法1 $http({ method: "GET", url: 'data.json' ...
- python实现socket通信
python实现socket很简单,保证你的环境有响应的python环境就可以,我使用的是socket,demo代码如下: server端程序: # coding:utf-8 import socke ...
- Python接口测试实战2 - 使用Python发送请求
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Egret入门(三)--创建HelloWorld项目(4.0-使用Egret Wing)
准备 编辑器: Egret Wing3(4.0.3) 需要下载安装 语言: TepyScript(JS的超集,参考手册http://bbs.egret.com/thread-1441-1-1.html ...
- NO.02---聊聊Vue提升
如果本篇有看不明白的地方,请翻阅上一篇文章 上一篇我们讲了如何通过一些简单的动作来改变 store.js 中的数据对象,在实际工作中,这是完全无法满足工作需求的,所以这篇我们来说说如何做一些简单的流程 ...
- Nginx内容缓存
本节介绍如何启用和配置从代理服务器接收的响应的缓存.主要涉及以下内容 - 缓存介绍 启用响应缓存 涉及缓存的NGINX进程 指定要缓存的请求 限制或绕过缓存 从缓存中清除内容 配置缓存清除 发送清除命 ...
- 微信小程序转换为百度小程序
据粗略预估,微信小程序和百度小程序,有至少90%以上的相似代码,而且api的参数和返回的数据都是一致的,有一些不一致的将做如下介绍:.wxml文件,改成后辍名.swan.wxss文件,改成后辍名为.c ...
- 如何选择 .NET Framework目标版本
如何选择 .NET Framework目标版本 简介 .NET Framework是所有 .NET程序赖以运行的基础. 版本 到目前位置 .NET Framework共出了: .NET Framewo ...
- NUMA 体系架构
NUMA 体系架构 SMP 体系架构 NUMA 体系架构 NUMA 结构基本概念 Openstack flavor NUMA 策略 Nova 实现 NUMA 流程 1. SMP 体系架构 CPU 计算 ...
- Gradle初使用
我以前一直使用Maven来构建工程,这两天突然发现gradle也非常好用,记录一下自己使用gradle的过程. Gradle的下载与配置 本次选择下载的是gradle3.5版本,没选最新的gradle ...