python manage.py startapp app名称
需要在项目中的setting进行添加改app01,例如我的项目是Python_Django
则进行如下操作
注意
pycharm会自动创建并配置app但是需要改成上面那样
Python_Django/urls.py
from django.contrib import admin
from django.urls import *
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('app01.urls')), #app01路由
]
下载模块PyMySQL
pip install PyMySQL
from django.db import models
# Create your models here.
# 消费者
class Seller(models.Model):
username=models.CharField(max_length=32) #用户名
password=models.CharField(max_length=128) #密码
gender=models.BooleanField(default=True) #性别
phone=models.CharField(max_length=32) #电话
email=models.EmailField() #邮箱
heading=models.CharField(max_length=128,default='1.jpg') #头像
address=models.CharField(max_length=128) #地址
from django.db.models import Q, F, Count
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from app01 import models
def register(request):
if request.method == 'POST':
# 1.获取表单提交的内容
name = request.POST.get('name')
password = request.POST.get('password')
gender = request.POST.get('gender')
phone = request.POST.get('phone')
email = request.POST.get('email')
address = request.POST.get('address')
# 2.保存到数据库
# 第一种方式
# seller_obj = models.Seller()
# seller_obj.username = name
# seller_obj.password = password
# seller_obj.phone = phone
# seller_obj.address = address
# seller_obj.gender = gender
# seller_obj.email = email
# seller_obj.save()
# 第二种方式:
models.Seller.objects.create(username=name,
password=password,
phone=phone,
address=address,
gender=gender,
email=email)
# 3.返回
return HttpResponse('注册成功了...')
return render(request, 'register.html')
# 删除操作
def delete_person(request):
models.Seller.objects.get(id=1).delete()
return HttpResponse('删除成功了...')
# 更新操作
def update_person(request):
# 第一种方式:使用 save()
# seller_obj = models.Seller.objects.get(id=2)
# seller_obj.username = 'zhangsan'
# seller_obj.password = '222'
# seller_obj.save()
# 第二种方式:使用update()
ret = models.Seller.objects.filter(id=2).update(username='zs')
# print(ret, type(ret)) #
return HttpResponse('修改成功了...')
def findall(request):
ret=models.Seller.objects.all()
print(ret)
return HttpResponse("查询所有数据........")
def find(request):
# 1. get() 直接返回当前对象, 只能返回一个对象,一般使用唯一标识
ret = models.Seller.objects.get(id=2)
# print(ret)
# 2. filter(), 过滤,返回一个QuerySet类型的对象。当成列表使用即可
# ret = models.Seller.objects.filter(password='222')
# print(ret) # ]>
# print(ret[1].username)
return HttpResponse('查询成功了...')
# 条件查询
def Filtle(req):
# 排序 class类名.objects.order_by('字段名') (-字段名)表示降序
print(models.Seller.objects.order_by("-id").all()) #, ]>
#获取第一条数据 class类名.objects.first()
print(models.Seller.objects.first()) #Seller object (2)
# 获取最后一条数据 class类名.objects.last()
print(models.Seller.objects.last()) # Seller object (3)
#双下划线 字段__gte 大于等于 字段__gt 大于 字段__lt 小于 字段__lte 小于等于 字段__startswith 以什么开头
print(models.Seller.objects.filter(id__gte=1).all()) #, ]>
#聚合函数:aggregate
#平均值 aggregate(Avg('字段'))
#数目 aggregate(Count('字段'))
#F和Q查询
#性别是男而且电话是123的消费者
print(models.Seller.objects.filter(gender=True,phone='123').all()) #]>
#电话是123或者用户名是123的消费者
print(models.Seller.objects.filter(Q(username=True) | Q(phone='123')).all()) #]>
#F使用:同一张表格的不同字段进行比较
print(models.Seller.objects.filter(username__lt=F('phone')).first())#None
#分组查询
#查询不同性别的人数
print(models.Seller.objects.all().values('gender').annotate(Count('gender'))) #
return HttpResponse("条件.........")
from django.urls import path
from . import views
urlpatterns = [
path('register',views.register),
path('delete_person',views.delete_person),
path('update_person',views.update_person),
path('findall',views.findall),
path('find',views.find),
]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>register</h1>
<form action="/register" method="post">
<p>
用户名:<input type="text" name="name">
</p>
<p>
密码:<input type="password" name="password">
</p>
<p>
性别:<input type="radio" name="gender" value="True"> 男
<input type="radio" name="gender" value="False"> 女
</p>
<p>
电话:<input type="text" name="phone">
</p>
<p>
邮箱:<input type="text" name="email">
</p>
<p>
地址:<input type="text" name="address">
</p>
<p>
<input type="submit" value="注册">
</p>
</form>
</body>
</html>
python manage.py check #查看models.py是否有问题
#初始化
python manage.py makemigrations
python manage.py migrate