Django的一个小实例

 

1.Mysql数据库:

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:

django-admin startapp UserModel

这个是和下面的配置文件setting.py中添加的名字相匹配

要提前建好user数据库

修改setting文件

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'UserModel',
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#或者mysql.connector.django
        'NAME': 'user',
        'USER': 'root',
        'PASSWORD': '1234',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

修改 userModel/models.py 文件,以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段:


class Test(models.Model):
    name=models.CharField(max_length=20)
    age=models.IntegerField()
    sex=models.CharField(max_length=10,default=20)

在终端运行如下命令

 python manage.py migrate   # 创建表结构
 python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
 python manage.py migrate TestModel   # 创建表结构

前端界面

hello.html




    
    Title


欢迎登陆用户管理系统

添加用户
查询用户

显示全部用户的findAll.html界面 




    
    Title



   {% for item in list %}
    
    {%endfor%}
姓名 性别 年龄 操作
{{item.name}} {{item.sex}} {{item.age}} 编辑/删除

添加用户的界面




    
    添加用户


姓名
年龄
性别
{% if data %}

成功保存到数据库

{%endif%}

编辑用户的界面




    
    添加用户


姓名
年龄
性别
{% if data %}

成功保存到数据库

{%endif%}

uls.py文件


from django.urls import path
from MyQian import testdb
from django.contrib import admin
urlpatterns = [
    path(r'admin/',admin.site.urls),
    path(r'',testdb.index),
    path(r'addUser/',testdb.addUser),
    path(r'findall/',testdb.findAll),
    path(r'delUser',testdb.delUser),
    path(r'editUserContext',testdb.editUserContext),
    path(r'editUser',testdb.editUser)
]

新建包MyQian,在其下创建testdb.py文件

from UserModel.models import Test
from  django.shortcuts import render
from django.http import HttpResponseRedirect

def index(request):
    return render(request,'hello.html')
# 数据库操作
def addUser(request):
        if request.method=="POST":
            name=request.POST.get('name','')
            sex=request.POST.get('sex','')
            age=request.POST.get('age','')
            test1 = Test(name=name,age=age,sex=sex)
            test1.save()
            findAll(request)
            return HttpResponseRedirect("/findall")
        return render(request,'addUser.html')
def findAll(request):
    inforList=[]
    # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM
    list = Test.objects.all()
    # filter相当于SQL中的WHERE,可设置条件过滤结果
    #response2 = Test.objects.filter(id=1)
    # 获取单个对象
    #response3 = Test.objects.get(id=1)
    # 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
    #Test.objects.order_by('name')[0:2]
    # 数据排序
    #Test.objects.order_by("id")
    # 上面的方法可以连锁使用
    #Test.objects.filter(name="runoob").order_by("id")
    # 输出所有数据
    for var in list:
       context={}
       context['name']=var.name
       context['age']=var.age
       inforList.append(context)
    return render(request,'findAll.html',{'list':list})
def editUserContext(request):
    getId=request.GET['id']
    context={}
    user=Test.objects.get(id=getId)
    context['name']=user.name
    context['sex']=user.sex
    context['age']=user.age
    context['id']=user.id
    return render(request,'editUser.html',context)
def editUser(request):
    getId=request.GET['id']
    user = Test.objects.get(id=getId)
    user.name=request.POST.get('name','')
    user.sex=request.POST.get('sex','')
    user.age=request.POST.get('age','')
    user.id=getId
    user.save()
    return HttpResponseRedirect("/findall")
def delUser(request):
    getId=request.GET['id']
    test=Test.objects.get(id=getId)
    test.delete()
    return render(request,'findAll.html')

结束

你可能感兴趣的:(python)