Django的orm配置

Posted zhuyuanying123--

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Django的orm配置的主要内容,如果未能解决你的问题,请参考以下文章

django ORM 数据库连接配置

python基础--django-自身ORM配置

关于Django中ORM数据库迁移的配置

Web框架之Django_02基本操作(Django项目启动配置数据库连接orm增删改查)

Django基于ORM数据库配置

Django进阶-ORM框架