zoukankan      html  css  js  c++  java
  • Django数据库的增删改查

    通过一个实例学习Django数据库的增删改查

    Django
      - 路由系统 url.py
      - 视图函数 views.py
        - 数据库操作 models.py
        - 模板引擎渲染
          - HttpReponse(字符串)
          - render(request,'/path/a.html',{'name':'root'})

    一、示例:用户基本CURD

    1.数据库设计
      id hostname ip port status
    2.功能的实现
      创建  project   (pycharm)

         django-admin startproject mysite
      创建  app    (pycharm)

         cd mysite
         python manage.py startapp app01
      配置模板路径   

         settings.py
         TEMPLATE
         DIRS: [os.path.join(BASE_DIR,'templates'),]
      配置静态文件

         settings.py
         STATICFILES_DIRS = (
         os.path.join(BASE_DIR,'static'),
         )

    二、路由系统 urls.py
      a. /^servers$ -> servers
      b. url(r'^edit_user_new-(?P<nnid>d+).html$', views.edit_user_new),
      c. url(r'^edit_user_new-(d+).html$', views.edit_user_new,name='bbb'),
        {% url "bbb" 1 %} ==> edit_user_new-1.html
      d. url(r'^edit_user_new-(?P<nnid>d+).html$', views.edit_user_new, name='nnn'),
        {% url "nnn" nnid=1 %} ==> edit_user_new-1.html
      e.
        主urls.py
          url(r'^cmdb/', include('app01.urls')),
          url(r'^config/', include('app02.urls')),
        app01 urls.py
          ...
        app02 urls.py
          ...


    三、视图函数 views.py
      获取请求信息:
        request.POST {'username':'root'..}
        request.GET
        request.FILES
        request.method
        request.body = username=root;age=18;gender=male

      响应结果:
        return HttpReponse(..)
        return render(request,'path/a.html',{})
        return redirect('http://www.baidu.com')

    下面为views返回的三种方法,和前端使用模板的方法,用{{}}调用

    当模板中使用for循环和取字典的值,使用点

    四、Django数据库操作

      1. 类 --> 数据库的表
          字段 --> 列
          对象 --> 一行数据

       class UserInfo(models.Model):
          nid = models.AutoField(primary_key=True)
          username = models.CharField(max_length=32)
          pwd = models.CharField(max_length=64)
          age = models.IntegerField()

    2. 根据app的models.py生成数据库表
       python manage.py makemigrations
       python manage.py migrate

       PS: settings注册app名字
          注意:
        MySQL
          - 手动创建库名
          - settings.py 中配置
            DATABASES = {
              'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME':'dbname',
              'USER': 'root',
              'PASSWORD': 'xxx',
              'HOST': '',
              'PORT': '',
              }
            }
          - Django默认链接MySQL:
            - MySqlDB模块,python3里面没有
            - pymysql模块,python3中模块
            在配置目录的init.py中:
              import pymysql
              pymysql.install_as_MySQLdb()

    调用数据库modules里的数据



    3. 数据库基本操作
    a. 查
    models.tb.objects.all()
    models.tb.objects.filter(nid=1)
    models.tb.objects.filter(nid=1).first()

    b. 增
    models.tb.objects.create(...)

    obj = models.tb(...)
    obj.save()
    c. 删
    models.tb.objects.all().delete()
    models.tb.objects.filter(nid=1).delete()
    d. 改
    models.tb.objects.all().update(...)
    models.tb.objects.filter(nid=1).update(...)

    设计数据库表

  • 相关阅读:
    Visual SVN1.5以上版本下载及破解过程
    C#线程系列讲座(2):Thread类的应用
    a标签的href 和onclick
    Windows 服务快捷启动命令
    iframe 跨域自动适应高度
    修正认知:string、Empty和null三者的正确区别

    线索二叉树
    最大连续子序列
    寻找最近点对
  • 原文地址:https://www.cnblogs.com/wangmo/p/7500710.html
Copyright © 2011-2022 走看看