练习代码位置

实例代码位置 --> 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. EasyExcel实现导入excel

    https://blog.csdn.net/rexueqingchun/article/details/91870372 1.pom.xml配置依赖包 <!-- xls格式excel依赖包 -- ...

  2. asp.net mvc获取http body中的json

    今天遇到一个对方直接post 一共json对象字符串过来的场景.按照以前的旧方案方法可以直接在request.inputstream里面读取,然后反序列化即可.(当然估计ASP.NET MVC应该有更 ...

  3. C++-POJ2975-Nim

    题目把Nim游戏为什么可以取异或和讲解得十分清楚,建议多读几次,理解一下 再一个,可以把每次异或视为一次取数,因此(k[i]^sg)<k[i]即为一种可行操作 /* Nim is a 2-pla ...

  4. Go源码文件与命令

    Go源码文件 文件类型 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题, ...

  5. AcWing 1014. 登山

    #include<iostream> using namespace std ; ; int f[N],g[N]; int w[N]; int main() { int n; cin> ...

  6. [Codechef - ADITREE] Adi and the Tree - 树链剖分,线段树

    [Codechef - ADITREE] Adi and the Tree Description 树上每个节点有一个灯泡,开始所有灯泡都是熄灭的.每次操作给定两个数 \(a,b\) ,将 \(a,b ...

  7. sql 根据两点经纬度算出两点之间距离

    select (sqrt( ( ((121.544685-longitude)*PI()*12656*cos(((31.134857+latitude)/2)*PI()/180)/180) * ((1 ...

  8. Java-POJ1014-Dividing

    多重背包问题的特点是物品数量可以大于1但是有限制.状态定义与01背包一致. 多重背包的解法有多种,复杂度也各不相同. 对于物品数Ci较大的数据,可以采取二进制数进行优化(就是这样,别问就是baidu! ...

  9. Virtual Judge POJ 1328 Radar Installation

    贪心 #include<algorithm> #include<iostream> #include<cstdio> #include<cmath> u ...

  10. Apache Kafka(十一)Topic 的配置与组成

    Topic 的配置与组成 之前我们仅主要介绍了Kafka Producer与Kafka Consumer 的相关配置,而未详细介绍过有关topic的配置.Topic的配置在Kafka 使用中也至关重要 ...