zoukankan      html  css  js  c++  java
  • 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)

    总结:熟悉语句,多练习

  • 相关阅读:
    《区域经济分析方法》读书笔记
    系统规划思想
    《区域分析与规划高级教程》读书笔记
    经济社会发展投资决策支持平台
    关于区域货物运输预测研究
    (转)所有程序员都应该至少读上两遍的十篇论文
    文明的出现
    (转)所有架构师都应该至少读上两遍的十篇论文
    鸡蛋这样吃有害健康
    OOA/D学习笔记 1
  • 原文地址:https://www.cnblogs.com/kangkang1999/p/13357977.html
Copyright © 2011-2022 走看看