django基础

django小白必会三板斧

HttpResponse:返回字符串
	render:返回html并且支持模板渲染
	redirect:重定向
		既可以重定向到别人的网址也可以定向到自己的
注意:1.路由访问如果不加斜杠 会内部自动重定向加斜杠的路由

问题

redirect重指向会多一个uri
Django可能会在更改后自动重启更新
form表单中的action?为什么一定是POST方式提交

建表

##建库的时候一定要指定utf
truncate classes
insert into classes (name) values ('一班')


班级表:
	
	classes:
		classes:

			id    name   
			1      脱产8期

		create table classes(
			id  int primary key auto_increment,
			name varchar(32) not null default ''
		)engine=Innodb charset=utf8;

		insert into classes (name) values ('脱产8期'), ('脱产九期'),('脱产10期');
学生表:

students

	id   name   class_id
	1    zekai   2

	create table students (
		id int primary key auto_increment,
		name varchar(32) not null default '',
		class_id int not null default 1,
		foreign key (class_id) references classes(id)
	)engine=Innodb charset=utf8;

	insert into students (name, class_id) values ('季宇志', 1),('罗文', 2),('谢增城', 1);

teacher:
	

	create table teacher (
		id int primary key auto_increment,
		name varchar(32) not null default ''
	)engine=Innodb charset=utf8;

	insert into teacher (name) values ('zekai'), ('eagon'),('lxx');


teacher2class:

	create table teacher2class (
		id int primary key auto_increment,
		tid int not null default 1,
		cid int not null default 1
	)engine=Innodb charset=utf8;

	insert into teacher2class (tid, cid) values (1,1), (1,2),(2,1),(2,2);
window.confirm('是否确认删除?')---弹出框

requset.POST获得的是一个字典:
{'user':['ww'],'pwd':['dd']}
key值为input中的name属性的值,ww(值)是用户提交的输入的内容
使用requset.POST.get('user')能够直接取到'ww',可以忽略[],如果'ww'所在列表中有不止一个元素,则默认获取最后一个.

作业day59

作业在第二个视频


取值和属性

$('#teachername').val()}
$(this).attr('val')
取得最后一个div前面所有的div,并且给他们
$("div:last").prevAll().addClass("before");


赋值:
 $('#ajaxclassname').val(classname);
 $('#clasid').val(classid);
取值:
var classname = $('#ajaxclassname').val();
var clasid = $('#clasid').val();
ajax获取输入数据和id的方法,新url的获取方式?
为什么要加lastrowid
bootstrop里面table?

7.13周六

各种提交数据取值方法

form表单

input / select+option提交

<form action="/add_student/" method="post">
    学生名称: <input type="text" name="sname">
    #input:通过name属性对应的值'sname'作为key,用户输入的内容作为value,后台通过request.POST.get('sname')获得用户输入的名字
    
    班级名称:
    <select name="classid" id="">
       {% for item in classes %}
           <option value="{{ item.id }}">{{ item.name }}</option>
     #select:通过name属性对应的值'classid'作为key,用户选择的item.name会有对应属性value的值作为value,以
例:<QueryDict: {'sname': ['张帆'], 'cid': ['3']}> ({'classid':'item.id'})

注意:所以input和select的name属性的值不能相同(都会传到后台),否则后台requset.POST.get()默认取最后一个.

     传给后台,后台通过request.POST.get('classid')获得用户选择的班级id
       {% endfor %}
    </select>
    <input type="submit"  value="提交">
</form>
复习mysql
为已经建好的mysql表单添加unique或者外键时,和添加一般列的方法一样,例如:alter table  teacher2class add  unique index(tid,cid);

注意:  一般操作表时,只有在更改表结构或者属性是才需要在表名前加table关键字,例如:删除表(drop table xxx 添加删除新列,或更改原有列的属性)
constraint fk_userinfo_depart foreign key (depart_id) references department(id),若是建表之后添加,则加上alter table 外键表 add即可

alter table teacher2class add constraint fk_t2c_teacher foreign key (tid) references teacher(id) on update cascade--级联更新,可选 on delete cascade--级联删除;

on update cascade--级联更新,可选 on delete cascade--级联删除;这两个在navicat里面设置比较方便

连表

https://jingyan.baidu.com/article/f3e34a12f05bfaf5ea65354a.html

sweetalert导入
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet">

<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>

定制自己的通用模板

//定义模版 (可多次使用)
var MyBox = Swal.mixin({
    toast: true,
    position: 'top-end',
    showConfirmButton: false,
    timer: 3000
});

//调用
MyBox.fire({
    type: 'success',
    title: 'successfully'
});
a标签直接向函数传值
<a href="/up_students/?sid={{ item.sid }}">更改</a>
问号拼接,sid作为key,{{ item.sid }}作为value
后台以request.GET.get('sid')的方式获得{{ item.sid }}

注意:如果传递多个值,用&连接即可,例如:
<a href="/up_class/?id={{ item.id }}&pwd=123432">更新</a>

是否删除模板

swal({
			title:"是否删除",
			text:"",
			type:"warning",
			showCancelButton:true,//是否显示取消按钮
			cancelButtonText:'取 消',//按钮内容
			cancelButtonColor:'#b9b9b9',
 
			showConfirmButton:true,
			confirmButtonText:'确 认',
			confirmButtonColor:"#dd6b55",
 
			closeOnConfirm:false,//点击返回上一步操作
			closeOnCancel:true
		},function(){//正确按钮进行的操作点
			$.ajax({
				url: './test.json',
				type: 'post',
				dataType: 'json',
				data: {"id": $('#inp').val()},
			})
			.done(function(res) {
				if (!$('#inp').val()) {
					swal("输入内容哦……");
					return;
				}
				if (res.status == '000') {
					swal('删除成功','请继续操作','success');
					return;
				}else{
					swal('删除失败','','error');
				}
				// console.log("success");
			})
			.fail(function() {//连接服务器失败进行的操作
				console.log("error");
			})
			.always(function() {
				console.log("complete");
			});
			
		});

posted @ 2019-07-15 20:54  luowen罗文  阅读(195)  评论(0编辑  收藏  举报