javascript客户端脚本语言
JavaScript介绍,基本使用
JavaScript(简称JS):是一种轻量级客户端脚本语言,通常被直接嵌入 HTML 页面,在浏览器上执行。
JavaScript的主要用途:
使网页具有交互性,例如响应用户点击,给用户提供更好的体验
处理表单,检验用户输入,并及时反馈提醒
浏览器与服务端进行数据通信,主要使用Ajax异步传输
在网页中添加标签,添加样式,改变标签属性等
1、内部方式(内嵌样式),在body标签中使用
<script type="text/javascript"> <!-- javaScript语言 --></script>
2、外部导入方式(推荐),在head标签中使用
<script type="text/javascript" src="my.js"></script>
示例:
<script> var name = "hello"; // 定义变量 ale ...
css样式语言
CSS介绍
CSS:是一种用于修饰网页的文本样式语言,还可以配合Javascript脚本语言动态对网页各元素操作。
使用方法
1、内联方式(行内样式)
<p style="color:red">在HTML中如何使用css样式</p>
2、内部方式(内嵌样式),在head标签中使用
<style type="text/css"> p { color:red; }</style>
3、外部导入方式(推荐),在head标签中使用
<link href="main.css" type="text/css" rel="stylesheet"/>
选择器
选择器:需要改变样式的HTML元素(标签)
常见选择器:标签选择器、类选择器、ID选择器、派生选择器
格式: 选择器{属性:值;属性:值;属性:值;....}
选择器:元素
元素选择器:使用html标签作为选择器,为指定标签 ...
html标记语言
HTML介绍
HTML:是一种用于创建网页的标记语言, 可以使用HTML创建网页,用浏览器打开会自动解析。 HTML是由标签和内容构成。
HTML代码结构
<html><head> <title>文档的标题</title></head><body> 文档的内容...</body></html>
文本格式化标签
列表标签
超链接标签
超链接标签: <a href="网址"></a>
图片标签
<img src="图片文件路径"alt="图片提示">
表格标签
table 表格标签
thead 表格标题
tr 行标签
th 列名
tbody 表格内容
tr 列标签
td 列内容
<table border="1"> <thead> <tr> <th ...
django-csrf防护
CSRF是什么
CSRF(Cross Site Request Forgery):跨站请求伪造,实现的原 理是CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻 击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网 站发起伪造用户操作的请求,达到攻击目的。
Django CSRF工作原理
Django怎么验证一个请求是不是CSRF?
Django处理客户端请求时,会生成一个随机Token,放到响应内容一起返回,然后需要前端每次POST请求时带上这 个Token,可以放到POST数据里键为csrfmiddlewaretoken,或者放到请求头键为X-CSRFToken,Django从这两个 位置取,每次处理都会拦截验证,通过比对两者是否一致来判断这个请求是不是非法,非法就返回403状态码。
使用CSRF防护机制
常见有三种方法可以携带CSRF Token发送给服务端:
- from表单添加{% csrf_token %}标签,表单会携带一同提交 - 如果你是Ajax请求,需要把csrf token字符串(也是通过拿{% csrf_tok ...
django-session管理
Session与Cookie是什么
就像你去电商平台购物一样,而网站采用是HTTP协议,它本身就是一个无状态的,是记不住你上次来做了什 么事,那怎么记住每个用户呢。 于是,服务器给每个用户贴了一个小纸条,上面记录了服务器给我们返回的一些信息。然后服务器看到这张 小纸条就知道我们是谁了。
这个小纸条就是Cookie。那么Cookie怎么工作的呢?
浏览器第一次访问服务器时,服务器此时肯定不知道它的身份,所以创建一个独特的身份标识数据,格式 为key=value,放入到Set-Cookie字段里,随着响应报文发给浏览器。
浏览器看到有Set-Cookie字段以后就知道这是服务器给的身份标识,于是就保存起来,下次请求时会自动 将此key=value值放入到Cookie字段中发给服务器。
服务器收到请求报文后,发现Cookie字段中有值,就能根据此值识别用户的身份然后提供个性化的服务。
有了Cookie实现了有状态这一需求,那为什么又来一个Session呢?
试想一下,如果将用户账户的一些信息都存入Cookie中的话,一旦信息被拦截,那么所有的账户信息都会可 能被泄露丢,这是 ...
django用户认证系统
内置用户认证系统
Django内置一个用户认证系统,使用auth模块实现。 auth模块提供了登录、注册、效验、修改密码、注销、验证用户是否登录等功能。
Django默认创建的数据库表:
auth_user :用户表
auth_user_groups :用户所属组的表
auth_user_user_permissions :用户权限表
auth_group :用户组表
auth_group_permissions :用户组权限表
auth_permission :存放全部权限的表,其他的表的权限都是从此表中外键连接过去的
django_session :保存HTTP状态
django_migrations :数据库迁移记录
auth模块使用
auth模块:login()
示例:登录认证
from django.contrib import authdef login(request): if reqeust.method == 'GET': return render(request, 'login ...
django多表操作
多表关系
常见的数据模型关系有:
一对一(one-to-one),OneToOneField
一对多,多对一(one-to-many),ForeignKey
多对多(many-to-many),ManyToManyField
一对一
一对一:一个表中的每条记录对应另一个表中的每条记录,使用OneToOneField建立关系。
例如:一个人对应一个身份证号,一个身份证号也对应一个人
应用场景:当一个表想扩展字段,最常用的方式就是在这个表添加一个对一关系
一对一:创建模型关系
示例:定义一对一模型关系
class User(models.Model): user = models.CharField(max_length=30, verbose_name="用户名") name = models.CharField(max_length=30, verbose_name="姓名") sex = models.CharField(max_length=30, verbose_name="性别") ...
django-orm基本使用
了解静态网站与动态网站
ORM 是什么
对象关系映射(Object Relational Mapping,ORM):是一种程序设计技术,用于实现面向对象编程语言 里不同类型系统的数据之间的转换。简单来说就是在编程语言中实现的一种虚拟对象数据库。我们对虚拟对象 数据库进行操作,它会转换成具体的SQL去操作数据库,这样一来我们就不需要学习复杂的SQL语句了。
ORM优势:不必熟悉复杂的SQL语句,容易上手,避免新手写SQL效率问题。
Model(模型类)
1、使用模型类定义一个User表,包含多字段
# myapp/models.pyclass User(models.Model): user = models.CharField(max_length=30) # 用户名 name = models.CharField(max_length=30) # 姓名 sex = models.CharField(max_length=10) # 性别 age = models.IntegerField() # 年龄 label = models.CharF ...
django模板系统
模板是什么
Django模板系统:用于自动渲染一个文本文件,一般用于HTML页面。模板引擎渲 染的最终HTML内容返回给客户端浏览器。
模板文件有两部分组成:
静态部分,例如html、css、js
动态部分,django模板语言,类似于jinja语法
变量
变量定义:在函数视图render中的context传入,类似于字典对象。
变量在模板中引用,格式:
注释:
{# 注释内容 #}
示例:
def hello(request): user = {'name': '阿三', 'property': {'sex': '男', 'age': 30}} return render(request, 'user.html', {'user': user})
<!DOCTYPE html><html lang=&quo ...
django视图
Django内置函数
HTTP请求流程
HttpRequest对象
HttpRequest对象:常用属性
Django会建立一个包含请求源数据的HttpRequest对象,当Django加载对应的视图时,HttpRequest 对象将作为函数视图的第一个参数(request),每个视图负责返回一个HttpResponse对象。
例如:
def index(request): return HttpResponse("首页")
HttpRequest对象:常用方法
HttpRequest对象:接收URL参数
URL参数形式:http://www.baidu.cn/demo/?id=1&value=100
def url_args(request): args1 = request.GET['a'] args2 = request.GET['b'] return HttpResponse(int(args1) + int(args2))
HttpRequest对象:QueryDict ...