标签:执行 char 返回 max handle class python index turn
请求周期
form表单提交
-> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串(HTML文件)
ajax表单提交
$(‘#i1‘).click(function(){ // 绑定一个事件
$.ajax({ // $.ajax(里面是一个字典)
url: ‘/ajax_edit‘, // 要发送到的url
type: "POST", // 以post的方式发送
data: $(‘#add_form‘).serialize(), // 打包form里所有的东西 发送,但要在提交的form表单上写id、class内写东西来绑定
// data: {‘user‘: 123,‘host_list‘: [1,2,3,4]},
dataType: ‘JSON‘, // 每次后端发送的都是字典转成的字符串,每次都要转码太麻烦,所以写上这个ajax内部就帮我们转码
traditional: true, // 传输列表[1,2,3,4]到后台时要写上
success: function(obj){ // 回调函数,执行成功后自动触发这个函数
location.reload(); // jQuery下的 刷新页面
},
error: function () { // 发送请求,如果后台没抓到时执行
}
})
});
***new*** ajax不能直接做跳转
但我们可以间接的做啊 function.reload() #刷新页面 function.href = ‘/...‘ #做跳转
路由系统(url)
a. /index/ -> 函数或类
b. /index/(\d+) -> 函数或类
c. /index/(?P<nid>\d+) -> 函数或类
d. /index/(?P<nid>\d+) name=‘root‘ -> 函数或类
reverse()
{% url ‘root‘ 1%}
e. /crm/ include(‘app01.urls‘) -> 路由分发
***new***
f. 默认值
url(r‘^index/‘, views.index, {‘name‘: ‘root‘}),
def index(request,name): #向函数传递默认值
print(name)
return HttpResponse(‘OK‘)
g. 命名空间 #听说从来都没用过
#最外层url
/crm1/ include(‘app01.urls‘,namespace=‘m1‘)
/crm2/ include(‘app01.urls‘,namespace=‘m‘)
app01.urls
/index/ name = ‘n1‘
reverser(‘m1:n1‘) #自动生成域名views
views
之前学的request基本操作
def func(request): request.POST request.GET request.FILES request.getlist request.method request.path_info #获取当前url return render,HttpResponse,redirect #返回的三种方式new
***new*** request.environ
from django.core.handlers.wsgi import WSGIRequest #要引入这个模块
def index(request):
for k,v in request.environ.items(): # request.environ封装了所有的用户请求信息
print(k,v)
print(request.environ[‘HTTP_USER_AGENT‘])
# HTTP_USER_AGENT ==> 获取请求头(可以控制用什么**端登录)
return HttpResponse(‘OK‘)muban
模板语言
for --> {{ for i in ...}} {{ endfor }}
if --> {{ if ...}} {{ endif }}
索引--> .keys .values .items (字典中使用 都不加括号).all .filter (orm中多对多中使用)
ORM操作(增删改查不说了好吧)
只有在admin里才有验证功能,在数据库中存的都是字符串格式
class User(models.Model): username = models.CharField(max_length=32) email = models.EmailField() ***EmailField等*** 在Django Admin中有验证功能 在添加数据库时无验证功能: User.objects.create(username=‘root‘,email=‘asdfasdfasdfasdf‘) #两种情况都会提示错误 User.objects.filter(id=1).update(email=‘666‘) waijian
其他操作
class UserType(models.Model):
name = models.CharField(max_length=32)
class User(models.Model):
username = models.CharField(max_length=32)
email = models.EmailField()
user_type = models.ForeignKey("UserType")
user_list = User.objects.all()
#对象方式
for obj user_list:
print(obj.username,obj.email,obj.user_type_id,obj.user_type.name,obj.user_type.id)
user = User.objects.get(id=1)
user.同上面对象方式的操作
User.objects.all().values("username","user_type__name",)
#获取制定列的值 跨表操作要用‘__‘(元组和字典方式也用双下划线,详情请看上一节)waij
外键(方式一,看上一节吧)
class UserType(models.Model):
name = models.CharField(max_length=32)
class User(models.Model):
username = models.CharField(max_length=32)
email = models.EmailField()
user_type = models.ForeignKey("UserType")
m = models.ManyToMany(‘UserGroup‘)
obj = User.objects.get(id=1)
obj.m.add(2)
obj.m.add(2,3)
obj.m.add(*[1,2,3])
obj.m.remove(...)
obj.m.clear()
obj.m.set([1,2,3,4,5])
# 多个组,UserGroup对象
obj.m.all()
obj.m.filter(name=‘CTO‘) #在id=1下筛选name=‘CTO‘的
end~
标签:执行 char 返回 max handle class python index turn
原文地址:http://www.cnblogs.com/x54256/p/7806954.html