Django框架
Posted Dreamkily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架相关的知识,希望对你有一定的参考价值。
1.Django框架
版本:1.11
创建:
django-admin startproject xxx
cd xxx
python manage.py startapp app01
python manage.py runserver 127.0.0.1:8000
2.HTTP请求本质
1.请求生命周期
- 网站本质:socket
服务端(网站):
1.先启动并监听:80端口
3.获取请求信息:
获取请求中的url
根据url在已经写好的路由关系中进行匹配:
{
/login/ login
/admin/ admin
}
请求头
请求体
处理请求
响应内容:
客户端(浏览器)
http://cnblogs.com/wangmengzhu/
2.发送请求
- 连接:www.cnblogs.com:80
- 发送数据:
GET请求:请求体为空,传值在url后边?data
POST请求:通过post可以传值
3.接收响应内容
响应头悄悄写到浏览器
响应体在浏览器上显示
3.Django请求的生命周期
浏览器---wsgi协议---路由系统---视图函数---ORM
4.bootstrap实现用户登陆
5.基于Django的model操作数据库表
- 创建用户表
models.py
class UserInfo(models.Model): id=models.AutoField(primary_key=True) user=models.CharField(max_length=32) pwd=models.CharField(max_length=64)
settings.py
INSTALLED_APPS = [
\'django.contrib.admin\',
\'django.contrib.auth\',
\'django.contrib.contenttypes\',
\'django.contrib.sessions\',
\'django.contrib.messages\',
\'django.contrib.staticfiles\',
\'app01.apps.App01Config\',#\'app01\'
]
SQLlite:
应用默认操作
- 执行命令,创建数据库表
python manage.py makemigrations
python manage.py migrate
#与数据库的类型一一对应 class UserInfo(models.Model): id=models.AutoField(primary_key=True) user=models.CharField(max_length=32,null=False,default=\'11\') pwd=models.CharField(max_length=64) class Department(models.Model): id=models.AutoField(primary_key=True) title=models.CharField(max_length=32)
- 基于model实现数据查询和用户登陆
def login(request): if request.method==\'GET\': #打开login.html文件 #找到特殊标记{{msg}} #并将第三个特殊标识符替换 #将替换完毕的字符串发送给用户浏览器 return render(request,\'login.html\',{\'msg\':\'sajlsa\'}) else: username=request.POST.get(\'username\') password=request.POST.get(\'password\') from app01 import models user=models.UserInfo.objects.filter(user=username,pwd=password).first()#表示查询这张表的所有数据 if user: #在响应头中设置:locating:http://baidu.com无响应体,当作字符串提交给浏览器 return redirect(\'/index/\') else: return render(request,\'login.html\',{\'msg\':\'用户名或者密码错误\'}) def index(request): return redirect(\'http://www.baidu.com/\') def test(request): from app01 import models # user_list=models.UserInfo.objects.all() # for obj in user_list: # #查询所有用户,相当于select * from userinfo # #每一个obj都是一行数据 # print(obj.id) #select * from userinfo where user=\'alex\' and pwd=123 #如果取到多条就是列表,里边有多个对象,取到一条,就是列表,里边有一个对象 user_list=models.UserInfo.objects.filter(user=\'alex\',pwd=\'123\').all() #根据条件取数据库中的第一条数据 user_list=models.UserInfo.objects.filter(user=\'alex\',pwd=\'123\').first() return HttpResponse(\'...\')
- 查看部门列表
- 添加部门
views.py def part_add(request): """ 添加部门 :param request: :return: """ if request.method==\'GET\': return render(request,\'part_add.html\') else: ti=request.POST.get(\'title\') #添加到数据库:models.Department models.Department.objects.create(title=ti) return redirect(\'/parts/\') parts_add.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css"> </head> <body> <div class="container"> <form method="post"> <div class="form-group"> <h1>添加部门</h1> <label for="t1">部门名称</label> <input id=\'t1\' type="text" class="form-control" name="title"> </div> <input type="\'submit" value="添加" class="btn btn-success"> <button type="submit" class="btn btn-default">Submit</button> </form> </div> </body> </html>
- 删除部门
vewis.py def part_del(request): """ 删除部门 :param request: :return: """ nid=request.GET.get(\'nid\') #去数据库中将id=nid删除 models.Department.objects.filter(id=nid).delete() return redirect(\'/parts/\')
- 编辑部门
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="container">
<h1>编辑部门</h1>
<form method="post">
<div class="form-group">
<span><label for="t1">部门名称</label></span>
<input id=\'t1\' type="text" class="form-control" name="title" value="{{ val }}">
</div>
<button type="submit" class="btn btn-default">修改</button>
</form>
</div>
</body>
</html>
以上是关于Django框架的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段