djange表操作和ajax

路由系统:
1. /index/ -> def index(request)
2.
/detail-(\d+)/ -> def detail(request,nid)
/detail-(?P<nid>\d+)/ -> def detail(request,nid)

3.
/index/ -> def index(request) name=n1
使用别名生成URL:
模板语言: {% url n1 %} -> /index/
视图函数:
reverse(name="n1") -> /index/

4.

/web/ include("app01.urls")
视图函数:
1. 函数至少一个参数
2. request
request.method
request.GET
request.POST (请求头:Content-Type:application/x-www-form-urlencoded; charset=UTF-8)
request.body
request.FILES
...
3.
return HttpResponse(..)
return render()
return redirect()

模板引擎:

1. 基本语法

return renderI(request, ‘xxx.html‘, {‘v‘: [1,2,3,4],‘d‘:{‘k1‘:‘v1‘,‘k2‘:‘v2‘} })

xxx.html
{{v.2}}

{% for i in d %}
{{i}} --> key
{% endfor %}

{% for k,v in d.items %}
{{k}}--{{v}}
{% endfor %}

2. 函数

Django提供函数
simple_tag
filter

ORM操作:
1. 创建表

class UserInfo(models.Model):
# nid = models.AutoField(primary_key=True) int
# nid = models.BigAutoField(primary_key=True) long
name = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)

2. 操作表

q = models.UserInfo.objects.all()
Queryset = [obj(id,name,pwd),obj(id,name,pwd),obj(id,name,pwd),]

q = models.UserInfo.objects.values(‘name‘,‘pwd‘)
Queryset = [{"name":‘alex‘,‘pwd‘:123},{"name":‘alex1‘,‘pwd‘:123sfd},{"name":‘alex1‘,‘pwd‘:123sfd},]

q = models.UserInfo.objects.values_list(‘name‘,‘pwd‘)
Queryset = [(‘alex‘,123),(‘alex‘,123),(‘alex‘,123),(‘alex‘,123),]

q = models.UserInfo.objects.filter(name=‘alex‘)
[obj,]

q = models.UserInfo.objects.get(name=‘alex‘)
q = models.UserInfo.objects.filter(name=‘alex‘).first()

...

今日内容:

1. FBV和CBV

FBV:

url(r‘^index/‘, views.index),

def index(request):
print(‘.....‘)
if request.method == ‘GET‘:
pass
elif request.method == ‘POST‘:
pass
return HttpResponse(‘....‘)

CBV:
url(r‘^user/‘, views.User.as_view()),

class User(View):
def dispatch(self, request, *args, **kwargs):
print(‘before‘)
obj = super(User,self).dispatch(request, *args, **kwargs)
print(‘after‘)
return obj

def get(self,request):
print("get...")
return HttpResponse(‘...‘)

def post(self,request):
print("post...")
return HttpResponse(‘...‘)

2. ORM操作

a. 创建表
一对多
多对多
- 创建第三表:
- 自己定义第三张表 :列无限制
- ManyToManyField字段: 列限制(三)
- 无法直接,只能通过ManyToManyField字段进行间接操作

b. 操作
正向
dp
反向
userinfo
userinfo_set

3. Cookie
在浏览器上保存的简直对
应用:
可做用户登录
做投票
4. session
服务器端保存的简直对
{
asdfasdfasdf: {‘user‘:‘asdf‘,‘pws‘:‘asdf‘}

}

5. Ajax操作
#

$.ajax({
url: ‘/aj/‘, # 提交地址
type: "POST", # 提交方式
data: {uuu: u, ppp:p}, # 提交数据
dataType: "JSON",
success:function (data) { # 回调函数,登录成功后自动执行
# 将字典形式的字符串,发序列化成为字典对象(json对象)
# var data_dict = JSON.parse(data);

if(data_dict.status){
location.href = "/home/"
}else{
alert(data_dict.error);
}
}
})

时间: 2024-10-23 22:51:15

djange表操作和ajax的相关文章

jquery序列化form表单使用ajax提交后处理返回的json数据

这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下 1.返回json字符串: ** 将一个字符串输出到浏览器 */    protected void writeJson(String json) {        PrintWriter pw = null;        try {            servletResponse.setContentType("text/plain;charset=UTF-8"

jQuery实现form表单基于ajax无刷新提交方法详解

本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法.分享给大家供大家参考,具体如下: 首先,新建Login.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o

MySql基本的多表操作

多表操作 交叉查询(笛卡尔积查询): #A表中的每一条记录都对应B表中的所有记录,所以,A和B的交叉查询的条目数即为:A条目数*B条目数 语法: select 列名 from A cross join B where 条件 select 列名 from A,B where 条件 内查询 #A表与B表有主外键关系时,查询外键所对应的主键条目 语法: select 列名 from A inner join B on(A.外键 = B.主键);#显式内查询 select 列名 from A,B whe

多表操作

## 多表操作 (DBUtils框架)## # 基本概念 即数据库中一对多及多对多的表之间的操作: # 基本开发步骤: >> 添加jar包: >> 添加Util工具类: >> 添加domain中的基础类: |-- customer |-- orders |-- 添加素材中的表: >> 分析问题: |-- 类与类之间没有外键关系: |-- 那么如何完成表与表之间的关联呢? |-- 类与类之间有的关系 |-- 继承: |-- 包含与引用: |-- 可以通过一个L

Python之Django--ORM连表操作

一对多 class UserType(models.Model): caption = models.CharField(max_length=32) class UserInfo(models.Model): user_type = models.ForeignKey(UserType)# user_type对象中封装id,caption username = models.CharField(max_length=32) age = models.IntegerField() 增: 1.外键

学习MySQL之单表操作(二)

##单表操作 ##创建表 CREATE TABLE t_employee( empno INT(11), ename VARCHAR(20), job VARCHAR(40), MGR INT(11), Hiredate DATE DEFAULT '0000-00-00', sal DOUBLE(10,2), comm DOUBLE(10,2), deptno INT(11), UNIQUE INDEX uk_empno(empno) ##使用唯一索引 ); ##增 INSERT INTO t_

mysql基本认识【关系型数据库和nosql、mysql操作流程和体系,库操作,表操作,数据的操作,字符集的操作,以及php作为client操作数据库】对连接本身没有疑问

1.关系型数据库永久性保存数据的仓库php的变量只是php脚本执行期间,临时性保存变量的空间[使用内存空间临时保存] 关系型数据库:利用二者的关系来描述实体的信息.[利用二维表字段名和字段值来进行描述][关系型数据库根本不是可以使用外键将两个表构建成关联的意思,而是实现描述实体的二维表的形式] nosql:not only sql[sql表示操作关系型数据的语言]所以nosql指的就是非关系型数据库[典型的是键值对型的数据(redis.memcache)][nosql可以视情况添加信息,不需要对

mysql数据库表操作及授权

表操作:增删改查 把/etc/passwd文件的内容导入 passwd表里. mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":"; 基于前面的passwd表,完成下列操作: 1:列出uid低于500且3个字母的用户 mysql> select name from passwd where uid<500 and name like "

表操作--建表语句

表操作--建表语句 1.创建默认字符集库 下面已默认格式的字符集库 mysql> create database Ysolin; Query OK, 1 row affected (0.00 sec) mysql> show create database Ysolin\G *************************** 1. row *************************** Database: Ysolin Create Database: CREATE DATABAS