• Django学习日记-10路由系统和ORM操作


    对于之前所学的project 关于两点是非主流的

          -app01自己创建的目录  实际上可以通过代码批量生成 

            cmd:python manage.py startapp app01    

          -SQLHelper封装SQL语句  实际应用上是用ORM操作(原生sql)即可

    Django: -urls.py路由系统

         -view视图

         -templates模板  

         -ORM(类-表   对象-行  pymysql链接数据库)

    Torando:

        -路由

        -视图  

        -模板  

        -自由 :pymysql ;sqlAchemy

    Flask:

        -路由

        -视图

        -模板(选择第三方组件)

        -自由:。。。

    创建Django目录的命令

        cmd-    django-admin  srartproject mysite

            cd mysite

            django manage.py  startapp  app01

    关于Django的project

        -admin   Django自带的后台管理相关的配置

        -modal   写类  根据类创建数据库表

        -test   单元测试

        -views 业务处理

    关于路由系统 

           记住五个部分

          1,路由分发 include 创建不同项目的URL , 即不想和其他项目的app-xx的url名字撞车

    from app01 import views
    
    path('app01/',include('app01.urls')),

          2,路由分发  正常模式  即在urls.py中写入一个url找到一个views里的函数

          3,url的终止符   如果不加终止符那么一个长url和一个短url全部相同的话,长的url也可以找到短url的函数

    有两种  一个$  一个 /

    path('index$', views.index),
    
    
    path('indax/',views.index),

          4正则表达式 ,通过一个url可以分支出多个  和 “?+参数” 的区别是它的搜索权重比较高

    from django.urls import re_path
    
     re_path('edit/(w+)', views.edit),

     re_path('edit/(w+)/(w+)/', views.edit),

          5伪静态     即在url后面+html  其实效果不变 

    re_path('edit.html$',views.edit),

    根据名称可以反向生成URL(一般用于权限管理)了解即可 
        1. 在Python代码中
          from django.urls import reverse
          v = reverse('n1',kwargs={'a1':1111})
          print(v)
      
        2.
          url(r'^login/', views.login,name='m1')
          {% url "m1" %}

    ORM操作

       1在MySQL里面创建数据库、

       2.在setting.py里面找到注释掉原来的DATEBASES,创建新链接

    DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME':'day7',
                'USER': 'root',
                'PASSWORD': '123456',
                'HOST': '127.0.0.1',
                'PORT': 3306,
    
                }
                    }

          3在__inti__.py里面将pymyql替换MYSQLDB

    import pymysql
    pymysql.install_as_MySQLdb()

          4,现在就可以在models.py里面创建表了

    class classes(models.Model):
        title = models.CharField(max_length=32)
    class teacher(models.Model):
        name = models.CharField(max_length=32)
    class student(models.Model):
        name = models.CharField(max_length=32)
        classes_id = models.ForeignKey('classes', on_delete=classes, null=True)
    class teacher2dclasses(models.Model):
    
        teacher = models.ForeignKey('teacher',on_delete=teacher,null=True)
        classes = models.ForeignKey('classes',on_delete=classes,null=True)

    ORM的增删改查

    # 增加
        # models.UserInfo.objects.create(username='kk',password='123')
        # models.UserGroup.objects.create(title='xswl')
        # 删除
        # models.UserInfo.objects.all().delete()
        # 修改
        # models.UserGroup.objects.filter(id='2').update(title='nmsl修改')
        # 查找
        # user_list = models.UserGroup.objects.all()
        user_list = models.UserGroup.objects.filter(id=2)

    总结:熟悉语句,多练习

  • 相关阅读:
    工作总结_JS_1
    工作总结_js
    图片上传_及时显示
    js_截取Url值
    工作总结_sql
    Django项目配置xadmin 无法加载主题切换功能
    pip安装库慢问题解决方法
    Python模块Scrapy导入出错:ImportError: cannot import name xmlrpc_client
    python读取文件解码失败
    pycharm 修改新建文件时的头部模板
  • 原文地址:https://www.cnblogs.com/kangkang1999/p/13357977.html
Copyright © 2020-2023  润新知