zoukankan      html  css  js  c++  java
  • Python基础之 Django模型

    本章节主要是包括通过Python安装Mysql驱动(mysqlclient),通过Django创建app,更新数据库模型。

    1.安装 mysql 驱动。如果你没安装 mysql 驱动,可以执行以下命令安装:

       pip install mysqlclient

    2.通过Django创建项目。可以执行以下命令安装:

      python django-admin.py startproject testModel

    3.进入创建项目,通过Django创建app。可以执行以下命令安装:

     python  django-admin.py startapp TesApp

    4.数据库及模型相关配置。

    (1)修改settings.py数据库及app名称配置。相关配置如下:

     

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'TesApp',
    ]
    
    DATABASES = {
        'default': {
            #'ENGINE': 'django.db.backends.sqlite3',
            #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
            'NAME': 'He',
            'USER': 'root',
            'PASSWORD': 'root',
            'HOST':'localhost',
            'PORT':'3306',
        }
    }

    (2)数据库更新及模型相关配置。

    在刚才创建TesApp文件夹的模型文件models.py中修改代码,代码如下:

    from django.db import models
    
    # Create your models here.
    class Test(models.Model):
        uname = models.CharField(max_length=20)
    初始系统默认表及更新新创数据库模型,cmd命令如下:
    python manage.py migrate   # 创建表结构
    python manage.py makemigrations TesApp # 让 Django 知道我们在我们的模型有一些变更
    python manage.py migrate TesApp   # 创建表结构

    (3)入口文件创建相关配置。
    在TestModel文件夹同级settings.py目录中创建home.py文件,代码如下:
    #coding=utf-8
    
    from django.http import HttpResponse
    from TesApp.models import Test
    
    #测试添加数据
    def addData(request):
        test1 = Test(uname='tom')
        test1.save()
        return HttpResponse("数据添加成功!")
        
    #测试删除数据
    def delData(request):
    
        #删除表单数据方法1
        test1 = Test.objects.get(id=2)
        test1.delete()
        
        #删除表单数据方法2
        #Test.objects.filter(id=1).delete()
        
        #删除表中所有数据
        #Test.objects.all().delete()
        
        return HttpResponse("数据删除成功!")
        
    #测试修改数据
    def updateData(request):
       #修改数据方法1(修改数据可以使用 save() 或 update():)
        test1 = Test.objects.get(id=2)
        test1.uname="mike"
        test1.save() 
        
        #修改数据方法2
        #Test.objects.filter(id=1).update(uname='Google')
        
        #修改数据方法3
        #Test.objects.all().update(uname='Google')
        
        return HttpResponse("数据修改成功!")
        
    #查询数据
    def queryData(request):
        # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM TABLE
        response1= Test.objects.all()
        showData(response1)
        
        # filter相当于SQL中的WHERE,可设置条件过滤结果,相当于SQL中的SELECT * FROM TABLE WHERE ID=1
        response2=Test.objects.filter(id=1) 
        #showData(response2)
        
        # 获取单个对象,相当于SQL中的SELECT * FROM TABLE WHERE ID=1
        response3 = Test.objects.get(id=2) 
        #showData(response3)
        
        #数据排序
        response4 = Test.objects.order_by("id")
        #showData(response4)
        
        #限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
        response5 = Test.objects.order_by('uname')[0:2]
        #showData(response5)
        
        # 上面的方法可以连锁使用
        response6 = Test.objects.filter(uname="runoob").order_by("id")
        #showData(response6)
        
        result=""
        result2=""
        #查询列表
        for item in response2:
            result +="id:"+str(item.id)+",uname:"+item.uname+"
    "
        
        #查询单条数据
        result2="id:"+str(response3.id)+",uname:"+response3.uname+"
    "
        return HttpResponse("<p>" + result2 + "</p>")
     

    在urls.py中配置home.py映射url地址,代码如下:

    #coding=utf-8
    
    from django.conf.urls import url
    from django.contrib import admin
    from . import home
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^addData$', home.addData),
        url(r'^delData$', home.delData),
        url(r'^updateData$', home.updateData),
        url(r'^queryData$', home.queryData),
    ]

    (5)cmd启动项目,打开页面地址:

    python manage.py runserver

    在浏览器输入如下地址,就可看见:
    http://127.0.0.1:8000/addData
  • 相关阅读:
    日常开发常用工具(持续更新中,欢迎小伙伴评论中分享自己认为好用的工具)
    使用 POJO 对象绑定请求参数
    Tomcat+Eclipse乱码问题解决方法
    微信客服接口发消息 -- 微信客服系列文章(一)
    @RequestParam--SpringMVC 注解系列文章(一)
    微信JS图片上传与下载功能--微信JS系列文章(三)
    微信JS分享功能--微信JS系列文章(二)
    微信JS初始化--微信JS系列文章(一)
    二十进制数的加法
    使用NuGet管理项目类库引用
  • 原文地址:https://www.cnblogs.com/joyet-john/p/7173051.html
Copyright © 2011-2022 走看看