目录
1.创建项目
1.1 命令创建
1.2 pycharm创建
1.3 默认文件介绍
2.创建app
2.1 默认文件介绍
3.简单编写
3.1快速上手
确保app已经注册
编写url和视图函数的关系(创建关系)
编写视图函数
启动项目
4.模板语法
4.1 列表
4.2 字典
4.3 二维数组
4.4 注意
5.请求和响应
6.数据库操作
6.1 安装第三方模块
6.2 ORM
6.2.1 创建数据库
django%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93-toc" style="margin-left:80px;">6.2.2 django连接数据库
django%E6%93%8D%E4%BD%9C%E8%A1%A8-toc" style="margin-left:80px;">6.2.3 django操作表
6.2.4 操作表中的数据
在views层进行操作,先导入
增加操作
删除操作
7.用户管理案例
7.1 展示用户列表
7.1.1 url
7.1.2 函数
7.2 添加用户
7.2.1 url
7.2.2 函数
7.3 删除用户
7.4 效果展示
1.创建项目
有两种方法,用命令创建或者用pycharm创建。、
1.1 命令创建
-
打开cmd。
-
进入想放置的目录。
D:\pythonStudy\django
-
执行命令创建项目.
D:\pythonStudy\django>django-admin startproject 项目名称
1.2 pycharm创建
新建一个django项目
特殊说明:
-
命令行,创建的项目是标准的。
-
pycharm,会自动加上东西
-
创建了一个templates文件
-
终端创建
-
pycharm创建
-
1.3 默认文件介绍
D:.
│ manage.py 【项目管理、启动项目、创建app、数据管理】
└─mysitesettings.py 【项目配置 频繁】urls.py 【url和函数的配置关系 频繁】init.pywsgi.py 【接收网络请求】asgi.py 【接收网络请求】
2.创建app
PS D:\pythonStudy\django\mysite> python manage.py startapp app01
2.1 默认文件介绍
3.简单编写
3.1快速上手
确保app已经注册
编写url和视图函数的关系(创建关系)
编写视图函数
启动项目
命令启动:python manage.py runserver
pycharm启动
4.模板语法
4.1 列表
这种方法显示列表形式,通过加索引显示列表内容
循环列表显示所有内容
4.2 字典
字典的几种遍历方式
4.3 二维数组
4.4 注意
5.请求和响应
6.数据库操作
-
mysql数据库+pymysql
-
django开发操作数据库更简单 ,orm框架
6.1 安装第三方模块
pip install mysqlclient
6.2 ORM
ORM可以帮助我们做两件事情:
-
创建、修改、删除数据库中的表(不用写SQL语句)。
-
操作表中的数据,不用写SQL语句。
6.2.1 创建数据库
-
启动数据库
-
创建数据库
django%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93">6.2.2 django连接数据库
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test3','USER':'root','PASSWORD':'root','HOST':'127.0.0.1','POST':3306,}
}
django%E6%93%8D%E4%BD%9C%E8%A1%A8">6.2.3 django操作表
models模块操作
class UserInfo(models.Model):name=models.CharField(max_length=32)password=models.CharField(max_length=64)age=models.IntegerField()
执行命令:
makemigrations
migrate
注意:app已经注册
在表中新增列时,由于列中可能已有数据,所以新增列必须要指定新增列对应的数据
-
设置默认值
age =models.IntergerField(default=2)
-
允许为空
data=models.IntergerField(null=True,blank=True)
以后在开发中如果想要对表结构进行调整:
-
在models.py文件中操作类即可
-
命令
makemigration migrate
6.2.4 操作表中的数据
在views层进行操作,先导入
from project.models import UserInfo
增加操作
def test2(request):UserInfo.objects.create(name="张三",password="1234",age=19)return HttpResponse("成功")
删除操作
UserInfo.objects.filter(id=2).delete()(通过筛选数据进行删除操作)
User.objects.all().delete()(直接清空表中的全部数据)获取操作
形式为列表[对象,对象,对象]
-
获取全部数据,通过遍历
data_list=UserInfo.objects.all()for obj in data_list:print(obj.id,obj.name,obj.password,obj.age)
-
获取一行数据
row_obj=UserInfo.objects.filter(id=1).first()print(row_obj.id,row_obj.name,row_obj.password,row_obj.age)
-
更新
UserInfo.objects.filter(id=2).update(age=999)
UserInfor.objects.filter(name="张三").update(age=999)
7.用户管理案例
7.1 展示用户列表
7.1.1 url
7.1.2 函数
(1)获取所有用户的信息
(2)HTML渲染
-
url层配置路径
path('list/',views.list)
-
确认settings连接数据库,models层建数据库表,建立前端网页html
-
views层获取数据库所有用户的信息,将data_list接收获取的数据,将其传到HTML层中。此处用到模板语法
def list(request):#1.获取数据库中所有的用户信息data_list=UserInfo.objects.all()for obj in data_list:print(obj.password) return render(request,"list.html",{"data_list":data_list})
7.2 添加用户
7.2.1 url
7.2.2 函数
(1)GET,看到页面,输入内容
(2)POST,提交写入数据库
-
url层
path('add/',views.add)
-
HTML层
def add(request):if request.method=="GET":return render(request,'add.html')<form method="post">{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="text" name="pwd" placeholder="密码"><input type="text" name="age" placeholder="年龄"><input type="submit" value="提交"> </form>
-
views层
#获取用户提交的数据user=request.POST.get("user")pwd=request.POST.get("pwd")age=request.POST.get("age")#添加到数据库UserInfo.objects.create(name=user,password=pwd,age=age)
-
views层的自动跳转,后面接的页面也可以是在add页面后的页面,例如写return redirect("list/")就会自动跳转到"http://127.0.0.1:8000/add/list/"中
首先给redirect进行from导入
from django.shortcuts import render,HttpResponse,redirect
return redirect("http://127.0.0.1:8000/list/")
7.3 删除用户
第一种,可以通过网址的更改进行删除操作
http://127.0.0.1:8000/delete/?nid=1(/2/3)
第二种,更直观
-
urls层
path('delete/',views.delete)
-
views层
def delete(request):nid=request.GET.get('nid')UserInfo.objects.filter(id=nid).delete()return redirect("http://127.0.0.1:8000/list/")#实现操作后跳转到这个页
-
html层
<td><a href="http://127.0.0.1:8000/delete/?nid={{ obj.id }}">删除</a> </td>
7.4 效果展示