练习代码位置

实例代码位置 --> app: myblog

Form

利用Form表单验证,自己写的html
思路:
新建一个类 LoginForm(forms.Form)
新建对象 obj = LoginForm(request.Post)
常用方法:
obj.is_valid()
obj.clean()
obj.errors.as_json() 验证字段类型: --- 和models的成员基本一致
CharField()
IntegerField()
EmailField() 字段参数:
required
max_length min_length
自定义验证器:
validators=[func] # 自定义验证类型,如果不合法,直接raise就好 注意传过去的数据类型 个性化提示:
error_messages={"required":"不能为空","invalid":"不合法哦"} 个性化外观
mychoices = ((1,"female"),(1, "male"),)
widget=forms.Select(choices=mychoices, attrs={"k1":"v1"}) 自动生成html
思路:
1、 和上面一样
2、 把loginForm_obj 传给前端,前端自己拿数据
{% obj.username %}
{%obj.password %}
{%obj.errors.username.0 %}
{%obj.errors.password.0 %}

ModelForm

CSRF

    网站不允许直接post数据,需要先get一次数据,返回的时候网站返回一个token给页面,页面下次访问的时候会带着token过来

form 方式

    外兜
这种比较简单,直接提交表单就行了
因为表单里面直接有一个hidden的input widget

ajax 方式

    内兜
需要自己去获取cookie,然后提交给网站
注意要导入jquery and js.cookie.js <script src="/static/plugin/jquery/jquery-1.8.0.js"></script>
<script src="/static/plugin/jquery/jquery.cookie.js"></script> var csrftoken = $.cookie('csrftoken'); function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
} //每次ajax请求之前都会执行这个函数
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});

cookie and session

概述

cookie  存在前端浏览器里面的一个字符串
默认不能跨域名访问
session 存在后端服务器上的一个状态信息 e.g. 登录状态

cookie

设置:
obj = render(reqeust, "/static/myblog/cookie.html")
obj.set_ookie("k1","v1") # 把cookie写入html中
obj.set_cookie(key,value, max_age, path="/")
max_age: 过期时间, 单位秒
path: 该cookie只在path下面能使用,默认是 / ,对该域名全局生效 获取:
cookie_cli = request.COOKIES # 获取到的是一个字典

session

概述:
session 依赖于cookie实现功能,会把session_id 利用cookie的渠道写入浏览器,敏感信息放到服务上
session_id 对开发者隐藏,不用管, session_id 唯一标识一个浏览器
django 默认支持session,默认存储到数据库中 table: django_session 过期时间 两周 使用:
当成一个字典使用
request.session["user"] = "yangli"
def request.session["user"]
request.session.delete(request.session.session_key) session 存放位置配置 settings.py 配置文件即可
db
cache
file
cached_db
signed_cookies
  • level1
  • level2
    • level2-1
    • level2-2
  • level3

python web django 2nd level -- 待更新的更多相关文章

  1. python web -- django

    一. 安装 django $ pip install django (env)$ python >> import django >> django.VERSION >& ...

  2. python web——Django架构

    环境:windows/linux/OS 需要的软件:Firefox 浏览器(别的也可以 不过firfox和python的webdriver兼容性好) git版本控制系统(使用前要配置 用户 编辑器可以 ...

  3. python web django base skill

    web框架本质 socket + 业务逻辑 框架实现socket tonado node.js 使用WSGI实现socket django flask 自己实现框架思路 wsgiref socket ...

  4. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  5. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  6. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

  7. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

  8. 全面解读Python Web开发框架Django,利用Django构建web应用及其部署

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  9. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

随机推荐

  1. 关于vue 里:class 的几种使用方式

    最近一直在做vue项目 从网上搜索到的资料不太多.关于:class的使用 结合自己的实现 整理如下.接下来一篇写:style .其实从:class 这里可以想到:style的使用 也是类似的 一 cl ...

  2. springboot13(redis缓存)

    redis做springboot2.x的缓存 1.首先是引入依赖 <dependency> <groupId>org.springframework.boot</grou ...

  3. 滑动窗口-洛谷T1866(单调队列)

    咕咕咕 单调队列板子题 一.基本 1.单调队列: 特殊的双端队列,内部元素.分为最大队列(单调递增)和最小队列(单调递减)两种 二.应用 本题中:大部分单调队列优化的动态规划问题都和定长连续子区间的最 ...

  4. TOYS(计算几何-入门)

    题目 ‘^’代表叉乘 ‘•’代表点乘 点积:a•b=ax*bx+ay*by 叉积:a^b=ax*by-bx*ay

  5. HTML的创建

    创建一个HTML 直到产生scr文件之前的创建和原来建Java项目一样. 把scr文件Delete. 创建HTML File 4. 设置浏览器(我用的是搜狗浏览器,所以先找到搜狗的exe文件位置,导入 ...

  6. python接口自动化之用HTMLTestRunner生成html测试报告

    [第一步]:引入HTMLTestRunner包 1.下载HTMLTestRunner,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html ...

  7. python写excel总结

    废话不说,直接上代码:import xlrd import xlwt # 读excel然后写到mysql的套路def updata_info(): book = xlrd.open_workbook( ...

  8. mybatis 查询list,内容为null,但list的size 为1

    List<Integer> cityList = resourcePartnerService.selectCityList(userId); 需要在SQL里where语句加上 字段不为n ...

  9. 算法_hdoj_1005

    Question: Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 6 ...

  10. Windows下PHP安装 Imagick 扩展

    1.下载拓展下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/下载地址二: https://pecl.php.net/pack ...