Django的orm配置

一.路由系统

    a. 创建app
        - pycharm 创建
        - 使用命令行的方式创建时候,
            python manage.py startapp app02
        
        上述两种方式的区别:
            使用pycharm创建, 会自动帮我们注册app
            而使用命令行的方式, 并不会帮我们注册
    
    b. 路由的分组
        
        urls.py:
            from django.conf.urls import url, include
            
            urlpatterns = [
                url(r'^admin/', admin.site.urls),
                url(r'^test/', views.test),
                url(r'^classes/', include('classes.urls'))
            ]
        
        classes:
            
            urls.py:
                from django.conf.urls import url
            
                urlpatterns = [
                    url(r'^get_classes/', views.get_classes),
                ]
            
        访问 http://127.0.0.1/classes/get_classes/
        
    c. 路由的分发
        - 正则表达式
        urls.py:
            url(r'^test/(\w+)/(\w+)', views.test),
        views.py:
            def test(request, id, name):
                print(id, name)


精准匹配:
urls.py:
url(r'^test/(?P\w+)/(?P\w+)', views.test),
views.py:
def test(request, id, name):
print(id, name)

        反向路由解析:
            
            urls.py:
                url(r'^login/', views.test, name='m1')
                
            views.py:
                def login(request):
                
                    return render(request, "login.html")
            
            login.html:
                <form action='{% url "m1" %}'>


d. FBV 和 CBV:
FBV: 基于函数实现业务逻辑
CBV: 基于类实现业务逻辑
- 实现方式:

                    urls.py:
                        url(r'^users/', views.Users.as_view())
                    
                    views.py:
                        from django.views import View
                        class Users(View):
                            
                            def dispatch(request):
                                super()
                            
                            def get(self, request):
                                pass
                            
                            def post(self, request):
                                pass
                                
            写django rest framework (drf)的时候, 更多的会使用CBV的方式




二.orm

    a.基本的配置:
        - 创建一个数据库
        
        - settings.py文件中配置:
            1. 需要在install_app中配置需要连接的app
            2. 需要在database中进行配置连接mysql的用户名和密码以及数据库
        
        - 需要在app下面的__init__.py文件中进行配置pymysql
        
    b. models.py 写数据表模型(类):
        通过类来生成表 (code first)
        # Create your models here.
        class UserInfo(models.Model):
            ### 主键自增id不用写, 默认会加上
            name = models.CharField(max_length=32, null=True)
            age = models.CharField(max_length=32, null=True)
        
        生成表:
            python manage.py makemigrations
            
            python manmge.py migrate
上一篇:解决“idea 没有update classes and resources”


下一篇:Gan-based zero-shot learning 论文整理