• Django教程


    Django 安装

    pip install Django
    
    • 1

    Django创建项目

    django-admin startproject 项目名称
    
    • 1

    Django 目录结构

    在这里插入图片描述
    🍅manage.py:项目的管理,启动项目,创建app,数据管理(不需要修改)

    🍅 init.py :一个空文件,声明所在目录的包为一个Python包

    🍅asgi.py 接受网络请求(不需要修改)

    🍅wsgi.py 接受网络请求 (不需要修改)

    🍅urls.py: url和函数的对应关系(常常操作的文件)

    🍅settings.py 项目配置

    Django 创建app

    python  manage.py startapp app名称 
    ## 指定目录创建app
    python  manage.py startapp app名称  路径/app名称
    
    • 1
    • 2
    • 3

    Django 中app目录结构

    在这里插入图片描述
    💧admin:对应应用后台管理配置文件

    💧apps:对应应用的配置文件

    💧models:数据模块,用于操作数据库的。(重要)

    💧tests:编写测试脚本

    💧views:视图层,直接和浏览器进行交互 (重要)

    Django 启动

    注册app

    ## 找到创建的应用下apps.py文件
    from django.apps import AppConfig
    class Test01Config(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'test01'
    
    ## 在项目settings.py下找到INSTALLED_APPS列表 并添加一项
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'test01.apps.Test01Config',//添加test01
    ]
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    编写URL与视图函数对应关系 urls.py

    ## 创建url对应的function 在app的view.py下面
    from django.shortcuts import render, HttpResponse
    
    def index(request):
        return HttpResponse("Hello, world. You're at the test01 index.")
    
    ## 在项目urls.py中引入该文件 并添加值urlpatterns
    from django.contrib import admin
    from django.urls import path
    from test01 import views
    
    urlpatterns = [
        # path('admin/', admin.site.urls),
        path('index/',  views.index),
    ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    启动

    python manage.py  runserver (ip+端口)
    
    • 1

    使用mysql

    安装依赖

    pip install pymysql 
    pip install MySQLdb
    pip install mysqlclient
    
    • 1
    • 2
    • 3

    配置mysql

    ## setting.py
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django-admin',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '127.0.0.1',
            'PORT': 3306  
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    ## models.py
    class UserInfo(models.Model):
        name = models.CharField(max_length=32)
        age = models.IntegerField()
        sex=models.CharField(default='男') ## 设置默认值
        address=models.CharField(null=True,blank=True) ## 设置默认值
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    生成表命令

    python manage.py makemigrations
    python manage.py migrate
    
    • 1
    • 2

    清空项目表命令

    python manage.py makemigrations --empty app名称
    python manage.py migrate --fake-initial  重新生产django基础数据库
    
    • 1
    • 2

    增删改查

     #  ####### 增加数据 #########
        UserInfo.objects.create(name="张三")
    
        # ###### 删除数据 ########
    
        # UserInfo.objects.filter(id=3).delete()
        # 删除所有
        # UserInfo.objects.all().delete()
    
        # ##### 获取数据 #####
    
        # queryset = UserInfo.objects.all()
    
        # row_obj = UserInfo.objects.filter(id=3).first()
    
        # for obj in queryset:
        #     print(obj.id)
    
        ## 更新数据 ###
        UserInfo.objects.all().update(age=2)
    
        UserInfo.objects.filter(id=3).update()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    常见问题

    django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default’
    
    • 1

    把之前数据库中生成的所有表删除,重新进行迁移

    Related model xxx cannot be resolved 
    
    • 1

    把项目下的migrations除了__init__.py之外全部删除掉然后和清除库,然后执行python manage.py makemigrations
    python manage.py migrate

  • 相关阅读:
    Run ORB_SLAM2 Under ROS/Example
    Docker基础命令、镜像相关命令
    UVM实战——02构建一个简单的UVM平台_1 UVM平台中的关键组件
    CAS:1260586-88-6_生物素-C5-叠氮_Biotin-C5-Azide
    [LCT 刷题][树链信息维护] P2486 [SDOI2011]染色
    《动手学深度学习 Pytorch版》 7.1 深度卷积神经网络(AlexNet)
    linux系统下文件误删除该如何恢复?
    springMVC入门
    MyBtais的SQL映射文件(元素,查询,映射,动态SQL)
    基于VUE+Node实现MapReduce的分布式计算系统
  • 原文地址:https://blog.csdn.net/qq_27104997/article/details/127920815