练习代码位置

实例代码位置 --> 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. Fragment应用

    使用母页和子页配合展示内容:母页和子页都有自己的activity. 母页是含有frameLayout控件的页面.子页通过配置,在frameLayout控件中显示:frameLayout本身没有任何内容 ...

  2. 找不到getter/setter——没有安装lombok插件

    项目pull后的问题: import lombok.Getter; import lombok.Setter; @Setter @Getter public class ConcreteEntity ...

  3. Sql 语句常语法

    以前感觉在这个方面很欠缺,于是就找了些这方面的材料,自己也做了些总结,汇总到了一块.便于以后的查阅. --1.获取表的主键字段SELECT name FROM SysColumns WHERE id= ...

  4. Spring解决bean之间的循环依赖

    转自链接:https://blog.csdn.net/lyc_liyanchao/article/details/83099675通过前几节的分析,已经成功将bean实例化,但是大家一定要将bean的 ...

  5. 苹果cms10 官方QQ微信防红防封代码

     代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  6. 在PDB级别中如何切换或重建UNDO表空间

    Oracle 12.1版本中,UNDO表空间仅存在CDB级别(共享UNDO),来自于AskScuti博客园. Oracle 12.2版本开始,UNDO表空间同时可以存在每个PDB级别(本地UNDO). ...

  7. Linux就该这么学(第一天)

    原文地址:https://www.linuxprobe.com/chapter-01.html 最近想着要发布原来做的一个javaweb小项目 域名 云服务器都买好了,然后很尴尬,不会在云服务器上搭建 ...

  8. html表单提交给PHP然后浏览器显示出了PHP的源代码

    今天学习到PHP处理网页表单提交的数据时,碰到一个巨头疼的问题,先贴上案例代码: html表单部分: <html> <head> <meta charset=" ...

  9. Codeforces Round #624 (Div. 3) B. WeirdSort(排序)

    output standard output You are given an array aa of length nn . You are also given a set of distinct ...

  10. 题解【洛谷P3951】[NOIP2017]小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...