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)

总结:熟悉语句,多练习

posted @ 2020-07-21 22:58  Kangkang丶  阅读(113)  评论(0编辑  收藏  举报