django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别
一、复习数据库操作
字段类型
字符串
EmailField(CharField):
IPAddressField(Field)
URLField(CharField)
SlugField(CharField)
UUIDField(Field)
FilePathField(Field)
FileField(Field)
ImageField(FileField)
CommaSeparatedIntegerField(CharField)
时间类:
models.DateTimeField(null=True)
数字:
num = models.IntegerField()
num = models.FloatField()
mum = models.DecimalField(max_digits=30,decimal_places=10)
枚举(Django):
color_list = (
(1,'黑色'),
(2,'白色'),
(3,'蓝色')
)
color = models.IntegerField(choices=color_list) 1. 自己操作:
自己取,自己用
2. 给Django admin使用 应用场景:选项固定 PS: FK选项动态 字段参数:
null=True,
default='',
db_index=True,
unique=True class Meta:
# unique_together = (
# ('email','ctime'),
# )
# index_together = (
# ('email','ctime'),
# ) - 操作:
- 增删改查
- filter(),update(),create()
- all() values values_list()
- FK
正向:
filter() values,values_list() -> 跨表 fk__xxx
objs = all()
for obj in objs:
obj.fk.
反向:
filter() values,values_list() -> 跨表 小写表名称__xxx
objs = all()
for obj in objs:
obj.小写表名称_set.all()
- M2M:
M2M 自定义 M2M+自定义 正向(有M2M):
obj = ...
obj.m.add()
obj.m.remove()
obj.m.set()
obj.m.clear()
obj.m.all()...
反向:
obj ...
obj.表名_set.add
... M2M+自定义 CSRF:POST时,需要用户携带随机字符
- Form
- {% csrf_token %}
- Ajax
- data
- cookie中获取,添加到请求头
XSS:
- 不用safe
- mark_safe
- 过滤关键字 Cookie:
- 放在用户浏览器端的键值对
- 可以放很多,但是对于敏感信息
二. 复习模板
- 基本使用
- 母版
- 页面继承
- include
- 导入小组件
pub.html
<div>
<h3>特别漂亮的组件</h3>
<div class="title">标题:{{ name }}</div>
<div class="content">内容:{{ name }}</div>
</div> test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
{% include 'pub.html' %}
{% include 'pub.html' %}
{% include 'pub.html' %}
</body>
</html> - 函数-> 自动执行
- 模板自定义函数:xxx.py
from django import template register = template.Library() @register.filter
def my_upper(value,arg):
return value + arg @register.filter
def my_bool(value):
return False @register.simple_tag
def my_lower(value,a1,a2,a3):
return value + a1 + a2 + a3
- simple_filter
- 最多两个参数,方式: {{第一个参数|函数名称:"第二个参数"}}
- 可以做条件判断
- simple_tag
- 参数无限制: {% 函数名 参数 参数%}
三、seccion
from django.shortcuts import render,HttpResponse,redirect def login(request):
if request.method=='GET':
return render(request, 'login.html')
else:
user = request.POST.get('username')
pwd = request.POST.get('passwd')
gender = request.POST.get('gender')
rmb = request.POST.get('rmb')
if user=='alex' and pwd=='':
#1.生成随机字符串
#2.通过cookie发给客户端
#3.服务端保存随机字符串{'随机字符串':{'username':'alex','age':'36'}}
request.session['username'] = user
request.session['passwd'] = pwd
return redirect('/index/')
else:
return render(request, 'login.html', {'msg': '用户名或密码错误'}) # def abc(request):
# request.session.delete(request.session.session_key)
# v = request.session.session_key
# if not v:
# return HttpResponse('清空session成功')
# else:
# return HttpResponse(str(v)) def index(request):
if request.method=='GET':
#1.获取客户端cookie中的随机字符串
#2.去session中查找有没有随机字符串
#3.去session对应key的value中查找是否有username
v = request.session.get('username')
if v:
return render(request, 'index.html')
else:
return HttpResponse('登录失败') 问题:
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add '127.0.0.1' to ALLOWED_HOSTS.
解决方法:
myapp
settings.py
在ALLOWED_HOSTS = []里改成ALLOWED_HOSTS = ["127.0.0.1"]
四、详细cookie和session的区别
django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别的更多相关文章
- python/数据库操作补充—模板—Session
python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...
- cookie和session的区别及在Django中应用
Django中Cookie和session应用 什么是cookie? cookie是客户端浏览器上的一个文件,以键值对进行保存,类似于字典的 {'key' : 'value'} ,与服务器端没有关系, ...
- Mysql数据库操作复习,增删改查
Mysql数据库 Apache(服务员) php(大厨) mysql(冰柜) Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统. MysqlAB公司在2008年被S ...
- Django学习笔记〇四——数据库ORM的使用(有待修改)
Django框架基本上都是要和数据库结合使用的,我在以前讲过SQLAlchemy框架的使用,Django支持的不是SQLAlchemy,但是也内嵌了ORM框架,可以不需要直接面对数据库编程,而可以通过 ...
- Python学习笔记六:数据库操作
一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...
- Java 学习笔记(16)——Java数据库操作
数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...
- django上课笔记1-目录介绍-路由系统-ORM操作
一.Django目录介绍 django-admin startproject mysite # 创建名为mysite的项目 cd mysite # 切换到该目录下 python manage.py s ...
- Django(三) ORM 数据库操作
大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...
- Day 61 Django第二天 (orm数据库操作)
一.get请求和post请求 GET请求: 1. 浏览器请求一个页面 2. 搜索引擎检索关键字的时候 POST请求: 1. 浏览器向服务端提交数据,比如登录/注册等 二 . Django中的APP: ...
随机推荐
- js -- 监听窗口的大小变化
- BUPT复试专题—Special 数(2017)
题目描述 设一个正整数既是平方数乂是立方数时,称为Special数. 输入 输入包含多组测试数据,笫1行输入测试数据的组数,接下来在后续每行输入n(n<=1000000000) 输出 输出1到n ...
- Python奇技
本文目录 1. 显示有限的接口到外部 2. with的魔力 3. filter的用法 4. 一行作判断 5. 装饰器之单例 6. staticmethod装饰器 7. property装饰器 8. i ...
- Tomcat载入两次问题
前提介绍: 1.某个应用Dragon放置路径:/opt/apache-tomcat-7.0.47/webapps/Dragon 2.Tomcat的server.xml部分配置信息例如以下: &l ...
- vue 实现 扫二维码 功能
前段时间一直在研究,如何通过 vue 调用 相机 实现 扫一扫的功能,但是查看文档发现,需要获取 getUserMedia 的属性值,但存在兼容性问题. 退而求其次,通过 h5plus 来实现. 1. ...
- openstack 中国联盟公开课參会总结
主流趋势 1. openstack defcore 互操作性认证.打通不同的openstack 厂商之间的连接 2. 首批OpenStack管理员认证(COA)将于2016年进行 3. 混合云应用广泛 ...
- VLFeat中SIFT特征点检测
本代码使用VLFeat库中的函数对一幅图像进行了SIFT检测 需要事先配置好VLFeat和OpenCV,VLFeat的配置参考前一篇博文,OpenCV的配置网上一大堆,自己去百度 #include & ...
- mybatis 一对一映射
xml <mapper namespace="com.oracle.dao.one2oneDao"> <sql id="personColum" ...
- postgres SQL编译过程
PG启动首先完成主进程和后台进程的启动,启动时完成数据库文件的打开,共享内存的建立等.接着,所有SQL都会启动1个单独的进程处理SQL的执行过程. 新的进程首先是进行自身的初始化,最主要的是初始化内存 ...
- ExtJs学习笔记(1)---ExtJs安装及其使用
从官网下载了ExtJs的3.2版本号的SDK,包括了代码依赖的具体说明.文档.范例和其它文件.当中,adapter和resources文件是Ext正常执行所必须的,其它的仅在开发过程中使用到. Ada ...