Django笔记 -1 -- 简介与环境搭建、MVC对应MVT、ORM框架以及相应模型类和数据表的操作

本文详细介绍Django框架的环境搭建、MVT模式解析及快速开发技巧,涵盖虚拟环境配置、项目与应用创建、ORM操作、后台管理定制及视图与模板使用,适合初学者快速上手。

1、简介与环境搭建

MVC框架 -- 以用户注册为例

Django是python中遵循MVC的一个web框架

Django  中是MVT的模式,本质等同于MVC

M:model模型        V:view视图         T:template模板

其中V视图 相当于MVC中的C控制器,T模板相当于MVC中给的V视图

快速开发  和  DRY原则  -- do not repeat yourself

ubuntu环境

先安装 pip python库module安装工具:sudo apt-get install python-pip

由于我mac下面的virtualenvwrapper.sh 位于  /Users/fuli/anaconda3/bin/路径下,

(可以用 which virtualenvwrapper.sh 查看其路径)

所以在mac中安装virtualenvwrapper完成之后 是编辑home目录下面的 .bash_profile 下添加如下两行

export WORKON_HOME=~/.virtualenvs

source /Users/fuli/anaconda3/bin/virtualenvwrapper.sh

注意:如果在创建python3的虚拟环境的时候,报 ModuleNotFoundError:No Module named "distutils.spawn" 错的话,应该是安装的python3版本 (pycharm中自带python3.6版本也是如此) 中不包含这个module,需要单独安装一下:sudo apt-get install python3-distutils

遇到的坑: 如果安装virtualenv报ModuleNotFoundError: No module named 'pip' ,可能是未安装pip或者安装的pip对应python2.x版本。 可以通过 sudo apt install python3-pip重新安装python3.x版本的pip

安装python3.x 对应的pip之后 可以在--version中查看安装

这样 virtualenv 虚拟环境virtualenvwrapper 虚拟环境扩展包 就可以正常安装了

正文继续...

查看python版本

如果默认的python版本为2.x ,并且也已经安装了3.x的版本,则可以通过下面的命令将默认的python版本改成3.x的

注意:以python3.x为例,用pip安装python包的话,默认把所有的包 安装在 python3.x/dist-packages下面。

deactivate -- 退出python虚拟环境

workon 虚拟环境名字 -- 进入相应的虚拟环境中

rmvirtualenv 虚拟环境名字  -- 删除相应的虚拟环境

pip list 或者 pip freeze  -- 查看已经安装的python库(需要在相应的虚拟环境下)

 

Django项目和应用创建

settings.py是项目的配置文件,比如可以在里面配置使用哪些数据库

在Django中,一个功能模块使用一个django应用来开发实现 -- 每个应用可以完成特定的功能

创建的 应用-模块 下面的各个文件的作用

项目 和 项目下面的应用创建好之后,下一步是 建立应用和项目之间的联系,需要对应用进行注册。

也就是说 在项目中创建好一个应用之后,这个项目本身是不知道这个应用的存在的。

注册方法:修改 setting.py 中的 INSTALLED_APPS 配置项

注册完成之后 运行开发web服务器:在项目目录下 python manage.py runserver

启动成功的页面 如下

2、Django基本使用

ORM简介

Django中内嵌了 ORM 框架。

model.py中 写和数据库相关的内容,其实就是设计和表对应的类--模型类

模型类生成表分为两步

第二步是根据迁移文件 0001_initial.py 生成数据库中相对应的表。

上面第二步执行完之后,该文件下多了一个db.sqlite3的文件

打开这个数据库之前需要先安装一个软件

sudo apt install sqliteman

安装sqliteman完成后 在shell中输入sqliteman并打开相应的db.sqlite3数据库

上面那个first_app_module_bookinfo就是first_app_module应用下models.py中BookInfo模型类对应的表

上面提到:ORM框架可以将类和数据表对应起来,只需要通过类和对象就可以对数据表进行操作。不需要写SQL语句

下面将提到 怎么通过模型类来操作数据表。

在相应虚拟环境下,进入项目shell终端,并在里面操作

python manage.py shell

如上图,操作完之后对应的sqlite3数据库中就多了一条数据信息。其中id是系统分配的,不需要咱们设定。

另外 查询id为1的数据的方式 和 修改其属性(这里是bpub_data属性)如下:

>>> b2.delete()  # 删除数据

例如 再建立一个 英雄人物类

创建迁移文件 和 对应的生成表

查询和某本图书关联的所有的英雄的信息  b.heroinfo_set.all()   -- b为某本图书实例

Django 后台管理

1. 本地化

修改 项目中的settings.py文件  -- 中文 和 中国时区

2. 创建管理员

python manage.py createsuperuser  # 此命令为创建管理员

然后可以启动服务器 python manage.py runserver,登录后台管理页面

3. 注册模型类

在应用下的admin.py中注册模型类

告诉Django框架根据注册的模型类来生成对应的表管理页面

然后刷新页面,此时first_app_module应用中的BookInfo模块类会被更新到页面中

b = BookInfo()

str(b)  默认关系表中显示的是对象的字符串形式 即 str(b)

可以在models.py中重写__str__方法 使其返回书名

4. 自定义管理页面

控制后台管理页面所显示的内容,自定义模型管理类。 模型管理类就是告诉Django在生成的管理页面上显示哪些内容。

视图 V

注意:Django2.x 的版本新增了 django.urls.path函数。它允许使用一种更加简洁、可读的路由语法。

具体用法参考 https://blog.youkuaiyun.com/m0_38024592/article/details/83957804

1. 定义视图函数

2. 进行url的配置

url匹配的过程

 

模板 T

模板不仅仅是一个html文件,也可以定义变量,插入代码片段等

模板文件的使用:

1. 创建模板文件夹  -- 在项目文件夹下创建

2. 配置模板目录 -- 主要是DIRS参数

3. 使用模板文件

给模板文件传递数据

实例

 

当for循环中的循环次数为0时 执行empty中的语句  -- 其中{% %} 为模板的标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值