网络编程
位置:首页>> 网络编程>> Python编程>> python django入门

python django入门

作者:说重点丶  发布时间:2022-05-10 02:46:19 

标签:python,django,入门
目录
  • 1.mvc vs mvt

    • mvc:

    • mvt:

  • 2.虚拟环境

    • 3.安装包

      • 4.创建django项目

        • 5.创建应用

          • 6.模型ORM

            • 选项 说明

          • 7.后台管理系统(站点管理)

            1.mvc vs mvt

            mvc:

            m:model数据模型(将数据从数据库查询出来,再加工成前台需要的数据,统称数据模型层)

            c:controller控制层(接受请求,接受请求数据,返回数据的代码层)

            v:视图层(展示给用户看的层,比如网页、app、显示器等)

            mvt:

            m:同上

            v:同上面的c

            t:template模板的意思(比如京东浏览任何一个商品的详情页都是类似的页面只是数据不同,就可以写一个页面然后填充不同的数据,这个相同的页面就是模板)

            2.虚拟环境

            python为了不同项目之间版本不冲突,创建了虚拟环境的概念


            问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
            解决方案:虚拟环境
            作用:虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.

            虚拟环境安装:


            pip install virtualenv
            pip install virtualenvwrapper
            可以使用豆瓣的镜像
            pip install virtualen -i https://pypi.douban.com/simple

            创建虚拟环境的命令:


            mkvirtualenv -p python3 虚拟环境名称
            例 :
            mkvirtualenv -p python3 py3_django

            进入虚拟环境:


            workon py3_django

            删除虚拟环境的命令 :


            rmvirtualenv 虚拟环境名称
            删除的时候需要先退出虚拟环境
            先退出:deactivate
            再删除:rmvirtualenv py3_django

            3.安装包

            项目的运行需要各种各样的包,都需要安装

            进入虚拟环境后安装命令:


            pip install 模块名 -i https://pypi.douban.com/simple(这里使用豆瓣镜像)
            例如:
            pip install django==2.1.1 -i https://pypi.douban.com/simple
            如果不指定版本
            pip install django -i https://pypi.douban.com/simple  默认安装最新版本
            卸载:
            pip uninstall xxxx
            查看已安装列表:
            pip list

            4.创建django项目


            django-admin startproject daping(项目名)

            使用pycharm打开

            python django入门

            为项目配置虚拟环境:

            python django入门

            运行项目:


            可以使用cmd进入项目目录运行
            也可以点击pycharm左下角的terminal运行(运行的时候需要进入虚拟环境)
            python manage.py runserver ip:端口
            或:
            python manage.py runserver
            可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
            启动后在页面访问
            127.0.0.1:8000
            有个小火箭就是成功了

            5.创建应用

            每个项目都会有很多模块,比如商城有支付、物流等,而支付跟物流显然都是很多项目可以共用的,

            为了达到复用的目的,python提出了应用的概念,把每个模块单独创建为一个应用,就可以很方便的达到复用的目的


            python manage.py startapp 子应用名称      
            tips:如果在其他目录下可以通过相对路径找到manage.py
            例如:python manage.py startapp pay (在大平的目录下创建了一个名为pay的应用)

            python django入门

            创建了子应用,需要在项目的全局配置中加入子应用


            setting----INSTALLED_APPS---找到最后一行添加应用名称

            python django入门

            6.模型ORM


            ORM:
            O:Object实体类
            R:relatinal关系型数据库(mysql)
            M:mapping
            也就是mysql有个表叫student  有id name列
            那么在项目中应该有个student类 属性有id name
            就把这个数据库到项目实体类的映射关系称为orm

            在pay应用的models.py中新建实体类:


            from django.db import models

            # Create your models here.
            class Teacher(models.Model):
               name = models.CharField(max_length=10)

            # 实体类可以继承Model
            class Student(models.Model):
               # 创建字段,字段类型...
               name = models.CharField(max_length=10)
               # 外键指定学生的老师
               teacher = models.ForeignKey(Teacher,on_delete=models.CASCADE)

            on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为
            on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
            on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做
            on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError
            # models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
            on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
            # models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
            on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
            on_delete=models.SET, # 删除关联数据,
            a. 与之关联的值设置为指定值,设置:models.SET(值)
            b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
            类型说明
            AutoField自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性
            BooleanField布尔字段,值为True或False
            NullBooleanField支持Null、True、False三种值
            CharField字符串,参数max_length表示最大字符个数
            TextField大文本字段,一般超过4000个字符时使用
            IntegerField整数
            DecimalField十进制浮点数, 参数max_digits表示总位数, 参数decimal_places表示小数位数
            FloatField浮点数
            DateField日期, 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误
            TimeField时间,参数同DateField
            DateTimeField日期时间,参数同DateField
            FileField上传文件字段
            ImageField继承于FileField,对上传的内容进行校验,确保是有效的图片

            选项 说明

            • null 如果为True,表示允许为空,默认值是False

            • blank 如果为True,则该字段允许为空白,默认值是False

            • db_column 字段的名称,如果未指定,则使用属性的名称

            • db_index 若值为True, 则在表中会为此字段创建索引,默认值是False

            • default 默认

            • primary_key 若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用

            • unique 如果为True, 这个字段在表中必须有唯一值,默认值是False

            修改setting配置文件,找到如下代码改为自己的mysql链接:


            DATABASES = {
               'default':
                   {
                       'ENGINE': 'django.db.backends.mysql',
                       'NAME': 'junge',  # 数据库名字 需要在mysql创建对应的库
                       'USER': 'root',
                       'PASSWORD': '123456',
                       'HOST': '127.0.0.1',
                       'PORT': '3306',
                   }
            }

            链接mysql需要安装mysqlclient,如下命令安装


            pip install mysqlclient -i https://pypi.douban.com/simple

            模型迁移 (建表)


            生成迁移文件:根据模型类生成创建表的语句
            python manage.py makemigrations
            tips:会在migrations下面生成0001_initial.py文件,里面有表的创建语句,00001也记录了版本号,记录了每次对表的改变
            执行迁移:根据第一步生成的语句在数据库中创建表
            python manage.py migrate
            执行完毕就会在mysql中生成对应的表

            python django入门

            7.后台管理系统(站点管理)

            修改setting.py里面的,语言跟时区


            LANGUAGE_CODE = 'en-us'
            TIME_ZONE = 'UTC'
            修改为:
            LANGUAGE_CODE = 'zh-Hans'
            TIME_ZONE = 'Asia/Shanghai'

            后台管理系统需要账号登录,先创建用户:


             python manage.py createsuperuser
             按照提示输入用户名密码,邮箱随便输入
             重置密码python manager.py changepassword 用户名

            创建好了用户启动项目,浏览器访问站点:


            python manage.py runserver 启动项目
            登陆站点 :http://127.0.0.1:8000/admin

            想要我们创建的实体类被站点管理,需要注册:

            在admin.py中输入


            from django.contrib import admin
            from .models import Student, Teacher
            # Register your models here.
            admin.site.register(Student)
            admin.site.register(Teacher)

            再次访问:

            python django入门

            来源:https://blog.csdn.net/weixin_39160689/article/details/121336361

            0
            投稿

            猜你喜欢

            手机版 网络编程 asp之家 www.aspxhome.com