一、复习数据库操作

字段类型
字符串
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的区别

cookie和session的区别

django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别的更多相关文章

  1. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  2. cookie和session的区别及在Django中应用

    Django中Cookie和session应用 什么是cookie? cookie是客户端浏览器上的一个文件,以键值对进行保存,类似于字典的 {'key' : 'value'} ,与服务器端没有关系, ...

  3. Mysql数据库操作复习,增删改查

    Mysql数据库 Apache(服务员)    php(大厨)    mysql(冰柜) Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统. MysqlAB公司在2008年被S ...

  4. Django学习笔记〇四——数据库ORM的使用(有待修改)

    Django框架基本上都是要和数据库结合使用的,我在以前讲过SQLAlchemy框架的使用,Django支持的不是SQLAlchemy,但是也内嵌了ORM框架,可以不需要直接面对数据库编程,而可以通过 ...

  5. Python学习笔记六:数据库操作

    一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...

  6. Java 学习笔记(16)——Java数据库操作

    数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...

  7. django上课笔记1-目录介绍-路由系统-ORM操作

    一.Django目录介绍 django-admin startproject mysite # 创建名为mysite的项目 cd mysite # 切换到该目录下 python manage.py s ...

  8. Django(三) ORM 数据库操作

    大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...

  9. Day 61 Django第二天 (orm数据库操作)

    一.get请求和post请求 GET请求: 1. 浏览器请求一个页面 2. 搜索引擎检索关键字的时候 POST请求: 1. 浏览器向服务端提交数据,比如登录/注册等 二 . Django中的APP: ...

随机推荐

  1. js -- 监听窗口的大小变化

  2. BUPT复试专题—Special 数(2017)

    题目描述 设一个正整数既是平方数乂是立方数时,称为Special数. 输入 输入包含多组测试数据,笫1行输入测试数据的组数,接下来在后续每行输入n(n<=1000000000) 输出 输出1到n ...

  3. Python奇技

    本文目录 1. 显示有限的接口到外部 2. with的魔力 3. filter的用法 4. 一行作判断 5. 装饰器之单例 6. staticmethod装饰器 7. property装饰器 8. i ...

  4. Tomcat载入两次问题

    前提介绍: 1.某个应用Dragon放置路径:/opt/apache-tomcat-7.0.47/webapps/Dragon 2.Tomcat的server.xml部分配置信息例如以下:    &l ...

  5. vue 实现 扫二维码 功能

    前段时间一直在研究,如何通过 vue 调用 相机 实现 扫一扫的功能,但是查看文档发现,需要获取 getUserMedia 的属性值,但存在兼容性问题. 退而求其次,通过 h5plus 来实现. 1. ...

  6. openstack 中国联盟公开课參会总结

    主流趋势 1. openstack defcore 互操作性认证.打通不同的openstack 厂商之间的连接 2. 首批OpenStack管理员认证(COA)将于2016年进行 3. 混合云应用广泛 ...

  7. VLFeat中SIFT特征点检测

    本代码使用VLFeat库中的函数对一幅图像进行了SIFT检测 需要事先配置好VLFeat和OpenCV,VLFeat的配置参考前一篇博文,OpenCV的配置网上一大堆,自己去百度 #include & ...

  8. mybatis 一对一映射

    xml <mapper namespace="com.oracle.dao.one2oneDao"> <sql id="personColum" ...

  9. postgres SQL编译过程

    PG启动首先完成主进程和后台进程的启动,启动时完成数据库文件的打开,共享内存的建立等.接着,所有SQL都会启动1个单独的进程处理SQL的执行过程. 新的进程首先是进行自身的初始化,最主要的是初始化内存 ...

  10. ExtJs学习笔记(1)---ExtJs安装及其使用

    从官网下载了ExtJs的3.2版本号的SDK,包括了代码依赖的具体说明.文档.范例和其它文件.当中,adapter和resources文件是Ext正常执行所必须的,其它的仅在开发过程中使用到. Ada ...