Django 项目搭建

django(mvt结构)

虚拟环境

创建虚拟环境

  • mkvirtualenv django_py3 -p python3

    切换虚拟环境

  • wokeon 虚拟环境名称

    删除虚拟环境

  • rmvirtualenv 虚拟环境名称
    • 注意不能删除当前正在使用的虚拟环境

      安装包

      安装djando包

  • pip install djando==1.11.11

    其他pip指令

  • 查看当前虚拟环境的所有依赖包
    • pip list 或者 pip freeze
  • 安装依赖包
    • pip install 依赖包的名称
  • 卸载依赖包
    • pip uninstall 依赖包的名称

      创建django项目

      创建主项目

  • django-admin startproject 项目名称
    • settings.py是项目的整体配置文件。

      urls.py是项目的URL配置文件。

      wsgi.py是项目与WSGI兼容的Web服务器入口。

      manage.py是项目管理文件,通过它管理项目。

      创建子项目

  • python manage.py startproject 子项目名称
    • admin.py文件跟网站的后台管理站点配置相关。

      apps.py文件用于配置当前子应用的相关信息。

      migrations目录用于存放数据库迁移历史文件。

      models.py文件用户保存数据库模型类。

      tests.py文件用于开发测试用例,编写单元测试。

      views.py文件用于编写Web应用视图。

      注册子项目

  • 第一步
    • 在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用
  • 第二步
    • 注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中

      路由注册

      1.先在主工程的目录urls 进行子路由的注册

      2.切换到对应的子工程的urls文件仿照主工程的样式书写子路由的路由(路由的注册,一般在子工程的urls进行,子工程urls需要自己创建,在匹配时一定要把匹配所有规则的路由匹配放在最后)

      模型类

      数据类型

  • DateField 日期, 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误

    TimeField 时间,参数同DateField

    DateTimeField 日期时间,参数同DateField

    FileField 上传文件字段

    ImageField 继承于FileField,对上传的内容进行校验,确保是有效的图片

  • AutoField 自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性

    BooleanField 布尔字段,值为True或False

    NullBooleanField 支持Null、True、False三种值

  • CharField 字符串,参数max_length表示最大字符个数

    TextField 大文本字段,一般超过4000个字符时使用

    IntegerField 整数

    DecimalField 十进制浮点数, 参数max_digits表示总位数, 参数decimal_places表示小数位数

    FloatField 浮点数

    属性

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

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

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

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

    default 默认

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

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

  • 外键
    • CASCADE级联,删除主表数据时连通一起删除外键表中数据

      PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用的数据

      SET_NULL设置为NULL,仅在该字段null=True允许为null时可用

      SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用

      SET()设置为特定值或者调用特定方法

      DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError异常

      操作

  • 增删改
    • 增加数据

      • 方式一

        • book=BookInfo(name=‘张三‘)
        • book.save()
        • 需要用save()方法提交数据,提交之前数据库无法查询出内容
      • 方式二
        • BookInfo.objectes.create(name=‘张三‘)
        • 不需要save()提交数据,数据库可以直接查询到数据
    • 删除数据
      • 方式一

        • BooKinfo.objects.get(name=‘张三‘).delete()
      • 方式二
        • BookInfo.objects.filter(name=‘张三‘).delete()
    • 修改数据
      • 方式一

        • book=BookInfo.object.get(name=‘张三‘)
        • book.name=‘李四‘
        • book.save()
        • 注意这种方法选哟用save()方法进行数据的提交,在美提交之前数据库中的数据没放生变化
      • 方式二
        • BooInfo.object.get(name=‘张三‘).updata(name=‘李四‘)
        • 不需要用save()提交数据,直接可以在数据库中查询到
  • 查询
    • 普通查询

      • get(条件)

        • 查询一个对象,没有结果抛出一个异常
      • all()
        • 查询多个对象,返回一个由对象组成的列表
      • count()
        • 返回查询的数量
    • 筛选查询
      • filter(条件)返会的是sql语句

        • 属性 = 值 方式

          • 普通查询
        • 属性__contains=‘值‘
          • 模糊查询(包含某些字段)
        • 范围查询
          • 属性__gt=’值‘

            • 大于某个范围
          • 属性__lt = ‘值‘
            • 小于某个范围
          • 属性__gte=’值‘
            • 大于等于某个范围’
          • 属性__lte = ‘值‘
            • 小于等于某个范围
          • 属性__in=(元祖)
            • 属性值在元祖范围内的结果
          • 属性__exclude=’值‘
            • 不包含某个值的所有结果
      • 逻辑查询
        • F对象(比较两个属性)

          • BookInfo.objects.filter(readcount__gt=F(‘commentcount‘))
          • 根本原理:将某字段的查询结果转换为数值,然后做比较
        • Q逻辑判断 & ,|
          • BookInfo.objects.filter(Q(pub_date_gt=‘1992-1-1‘)|Q(name__contains=‘3‘))
          • 逻辑与还可以通过以下方式查询
            • BookInfo.objects.filter(pub_date__gt = ‘1990-1-1‘,name__contains=‘3‘)
            • BookInfo.objects.filter(pub_date__gt = ‘1990-1-1‘).filter(name__contains=‘3‘)
        • 空判断
          • 属性__isnull=True/Flase

            • 查询属性为空或者不为空的所有值
    • 关联查询
      • 普通关联

        • 在没有外键的一方查询另一方

          • book = BookInfo.objects.get(id=1)

            book.peopleinfo_set.all()

            • peopleinfo为关联表的名称的小写
            • 表名(小写)__set 是固定语法
        • 在由外键的一方查询另一方
          • person = PeopleInfo.objects.get(id=1)

            person.book

            • book为外键名称
      • 筛选关联
        • 在没有外键的一方查询另一方

          • PeopleInfo.objects.filter(book__name=‘天龙八部‘)
        • 在由外键的一方查询另一方
          • BookInfo.objects.filter(peopleinfo__name=‘郭靖‘)

            迁移

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

XMind: ZEN - Trial Version

原文地址:https://www.cnblogs.com/xuchuankun/p/9757788.html

时间: 2024-10-12 04:19:03

Django 项目搭建的相关文章

Python进阶(三十六)-Web框架Django项目搭建全过程

Python进阶(三十六)-Web框架Django项目搭建全过程 ??IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mysql:5.5 ??Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! Django 特点 强大的数据库功能 用python的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行SQL语句. 自带的强大的后台功能 几行简单的代码就让你的网

Django 项目搭建(ubuntu系统)

1 环境搭建 sudo apt-get install python3-pip 安装pip3 sudo pip3 install virtualenv 安装虚拟环境,这里展示virtualenv virtualenv -p python3 DjangoEnv 创建django虚拟环境DjangoEnv(名称根据项目名确定) source DjangoEnv/bin/activate 进入对应的虚拟环境 pip freeze pip install django==1.11 安装django版本为

windows7下django项目搭建

参考视频教程 http://study.163.com/course/    http://www.bilibili.com/video/av8915600/ 首先在桌面新建一个文件夹test,然后在终端切入该目录 C:\Users\amazing>cd Desktop\test 接输入命令 C:\Users\amazing\Desktop\test>django-admin startproject face 如果看的是linux环境的视频教程会发现,命令有点不同.linux下为 djang

django项目搭建

1.通过pycharm创建一个django项目 2.通过pycharm的Terminal控制台创建mysite项目.目录和blog应用 django-admin startproject mysite #创建mysite项目 cd mysite #切换到mysite目录 mysite>python manage.py startapp blog #创建blog应用 manage.py:D'jang'o项目里面的工具,通过它调用django shell和数据库等 mysite / ---setti

Windows下Django项目搭建流程

1.创建虚拟环境 virtualenv test 2.进入虚拟环境 source ./项目名/Scripts/activate 3.创建项目 django-admin startproject 项目名 4.创建数据库 python manage.py migrate 5.创建应用 python manage.py startapp 应用名 6.查看项目 python manage.py runserver 浏览器输入:127.0.0.1:8000即可查看 项目名 项目名 __init__.py

linux搭建django项目基本步骤

一 linux下django基本项目搭建流程:M model 用于与数据库交互V view 接受前台请求 调用model获取结果,调用T获取页面,返回给前台T template 接受view的要求 生成一个网页给V 1 创建项目命令: django-admin startproject 项目名 2 为项目创建一个应用(django中一个应用就是一个功能模块): 在项目目录下 该目录下有一个manage.py文件 python manage.py startapp 应用名 3 安装应用,将应用与项

python 记录Django与Vue前后端分离项目搭建

python 记录Django与Vue前后端分离项目搭建 参考链接: https://blog.csdn.net/liuyukuan/article/details/70477095 1. 安装python与vue 2. 创建Django项目 django-admin startproject ulb_manager 3. 进入项目并创建名为backeng的app cd ulb_manager   python manage.py startapp backend 4. 使用vue-cli创建v

在Ubuntu中搭建Python3的虚拟环境并开始django项目

搭建环境: 1.首先安装virtualenv: 1 pip install virtualenv 2.创建虚拟环境:(指定安装Python3,若不写-p python3,默认安装Python2.7),env_mysite_python3是虚拟环境的名字 1 virtualenv -p python3 env_mysite_python3 3.如下显示则表示虚拟环境已经安装好了 Running virtualenv with interpreter /usr/bin/python3 Already

Django项目: 项目环境搭建 ---- 一、创建django项目

项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/python3.6 tzproject 2.创建django项目 1.安装django 选择安装django2.1.x最新的一个版本2.1.10 pip install django==2.1.10 2.创建django项目 cd ~/project/ # cd到你想放django项目路径的地方 django