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: ...
随机推荐
- IOS -- base64编码
在iOS7以后可以用NSData自带的base64EncodedStringWithOptions进行编解码: 方法如下: - (NSString *)encodeToBase64String:(UI ...
- ImportError: No module named _curses;Color support is disabled, python-curses is not installed.解决办法
linux系统默认安装了python2.6, 但是发现python2.7 import curses时 提示 找不到_curses 错误. 用pip(python2.7 )安装了curses-204 ...
- 转:CEO, CFO, CIO, CTO, CSO是什么
转自:https://club.1688.com/threadview/26957122.html CEO, CFO, CIO, CTO, CSO是什么?(现在O太多了) 帖子创建时间: 2009年 ...
- Linux下Tomcat VM參数改动
不可行的方法 最初我直接改动catalina.sh, 将JAVA_OPTS变量加上了 -server -Xms1G -Xmx1G -XX:+UserG1GC 最初看起来没啥问题,可是当服务器运行几天后 ...
- oracle SQL语句(转)
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- backtrace、backtrace_symbols、backtrace_symbols_fd-support for application self-debugging
backtrace是库函数引入的应用自调试函数. 系列里的三个函数可以缓冲或输出栈帧. #include <execinfo.h> int backtrace(void **buffer, ...
- gcc在出现错误的时候停止编译 -Wfatal-errors
有时候我们编译一个大的项目的时候.会出现非常多错误使得屏幕堆满了非常多没用的信息.普通情况下我们须要找到首次出现错误的地方,在gcc中加入编译选项能够使编译停止在第一次出现错误的地方: $ gcc - ...
- Apache Qpid消息通讯模型和消息地址简介
Broker知识准备 Broker内置两种节点类型:一种是 queue,一种是 topic. 1. queue 节点能够缓存消息,直到被读取走为止.queue节点满足两个重要的 PTP 通信的特征, ...
- 【网站支付PHP篇】thinkPHP集成汇潮支付(ecpss)
系列目录 支付宝集成:http://www.cnblogs.com/nerve/p/3437879.html 系列说明 最近在帮朋友的系统安装支付模块(兑换网站积分),现在总结一些开发心得,希望对大家 ...
- UR#34. 多项式乘法
#34. 多项式乘法 统计 描述 提交 自定义测试 这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+ ...