码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Django教程


    目录

    • Django 安装
    • Django创建项目
    • Django 目录结构
    • Django 创建app
    • Django 中app目录结构
    • Django 启动
      • 注册app
      • 编写URL与视图函数对应关系 urls.py
      • 启动
    • 使用mysql
      • 安装依赖
      • 配置mysql
      • 生成表命令
      • 清空项目表命令
      • 增删改查
      • 常见问题

    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

  • 相关阅读:
    llama的神经网络结构;llama的神经网络结构中没有MLP吗;nanogpt的神经网络结构;残差是什么;残差连接:主要梯度消失
    [pytorch笔记]02-主要组成模块&基础实战
    生产环境一次Linux时钟同步无法正常同步的问题
    Spring注解RequestBody与RequestParam详解
    java-php-python-springboot校园服装租赁系统计算机毕业设计
    利用HbuilderX制作简单网页: HTML5期末大作业——html5漫画风格个人主页
    Python|OpenCV-鼠标自动绘制图像(4)
    从源码入手详解ReentrantLock,一个比synchronized更强大的可重入锁
    全量知识系统问题及SmartChat给出的答复 之19 关于演示模板
    【堆】Leetcode 347. 前 K 个高频元素【中等】
  • 原文地址:https://blog.csdn.net/qq_27104997/article/details/127920815
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号