Bootstrap

pythonweb框架之django

目录

一、基础知识

1、MVC模型和MVT模型

1.1MVC模型

1.2MVT模型

1.3两种模型的区别

2、常见状态码

二、创建django项目及虚拟环境

1、虚拟环境环境的创建

2、在pycharm使用刚才的虚拟环境

​3、创建django项目

3.1安装django

3.2创建项目

3.3分析创建好的项目目录

3.4启动服务器

3.5创建子应用

3.6分析子应用结构

3.6注册安装子应用

4、模板

4.1创建templates

4.2测试templates

5、模型Model

1、安装pymysql和MySQL数据库的客户端驱动

​2、创建数据库

3、配置DATABASES

4、使用 pymysql 模块连接 mysql 数据库

5、定义模型类

5.1必备类型

5.2定义数据库中的字段

6.迁移

6、网站管理

7、配置文件和静态文件

7.1配置文件

7.2配置静态文件

一、基础知识

1、MVC模型和MVT模型

1.1MVC模型

Model(模型)+ View(视图)+ Controller(控制器)设计模式

(1)Model模型

用于封装对数据库层的访问,对数据库的数据进行增、删、改、查操作。

(2)View视图

用于封装结果,生成html界面方便用户进行交互。

(3)Controller控制器

用于接受请求,处理业务逻辑,与Model和View进行交互,返回结果。

1.2MVT模型

Model(模型)+View(视图)+Template(模版)设计模式

(1)Model模型

负责与数据库进行交互,进行数据库处理。

(2)View视图

接受请求,处理业务,返回响应。

(3)Template模版

负责封装构造要返回的html页面。

1.3两种模型的区别

字母表示的含义不一样,处理流程有所区别:

(1)MVT中的Model与MVC中的M功能相同,负责和数据库交互,进行数据处理。

(2)MVT中的View与MVC中的C功能相同,接收请求,进行业务处理,返回应答。

(3)MVT中的Template与MVC中的V功能相同,负责封装构造要返回的html。

2、常见状态码

状态码含义
1xx 信息性状态码表示临时的响应,需要请求者继续执行操作
2xx 成功状态码请求已成功被服务器接收、理解并处理
3xx 重定向状态码客户端需要采取进一步的操作才能完成请求
4xx 客户端错误状态码请求包含错误或无法被服务器理解
5xx 服务器错误状态码服务器在处理请求时遇到了错误

常见的:

200:服务器已成功处理了请求。

404:服务器找不到请求的网页。

304: 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

500:服务器内部错误。

二、创建django项目及虚拟环境

1、虚拟环境环境的创建

(1)新建一个项目文件夹mysiteproject

(2)输入命令如下:

#安装 virtualenv
 pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
#创建虚拟环境
#虚拟环境名字一般都取名为venv
virtualenv venv

(2)运行结果如下:

2、激活虚拟环境

前面有(venv)虚拟环境名就代表激活了虚拟环境,示例如下:

2、在pycharm使用刚才的虚拟环境

找到文件->设置->添加本地解释器

此时的环境是干净的,只有一个pip


激活


3、创建django项目

3.1安装django

(1)在激活的虚拟环境中输入命令:

 #服务器在外国,加入了清华源下载会快点-i https://pypi.tuna.tsinghua.edu.cn/simple

pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)查看一下 pip list

3.2创建项目

(1)命令如下

django-admin startproject 项目名称

(2)运行结果如下

3.3分析创建好的项目目录

(1)mysit: 项目的容器。

(2)manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

(3)mysit/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。

(4)mysit/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。

(5)mysit/settings.py: 该 Django 项目的设置/配置。

(6)mysit/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。

(7)mysit/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

3.4启动服务器

(1)命令如下

python manage.py runserver

(2)运行结果如下

3.5创建子应用

(1)命令如下

#创建子应用
python manager.py startapp 应用名称

(2)执行结果如下

3.6分析子应用结构

(1)admin.py文件跟网站的后台管理站点配置相关。

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

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

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

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

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

3.6注册安装子应用

创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。

在配置文件settings.py中找到INSTALLED_APPS在里面添加子应用名称进行注册:

4、模板

4.1创建templates

(1)创建templates目录,文件夹名称是固定写法

(2)设置模板查找路径

4.2测试templates

(1)在templates里面添加html

(2)配置好相关路由django项目会先找到根路径urls->子应用urls->子应用views

创建项目的urls是根路由

自己创建的子应用urls需要自己添加

视图views.py

(3)启动服务器

5、模型Model

1、安装pymysql和MySQL数据库的客户端驱动

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mysqlclient==1.4.6 -i https://pypi.tuna.tsinghua.edu.cn/simple/

2、创建数据库

create database mysitedb;

3、配置DATABASES

默认的是sqlite3,我们使用的数据库是mysql

找到django项目的 settings.py 文件中的 DATABASES 修改它:

4、使用 pymysql 模块连接 mysql 数据库

在settings下的__init__.py下输入

不输入会报错django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

5、定义模型类

5.1必备类型
类型说明
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,对上传的内容进行校验,确保是有效的图片
5.2定义数据库中的字段

6.迁移

(1)生成迁移文件

python manage.py makemigrations

(2)同步到数据库中

python manage.py migrate

6、网站管理

(1)创建管理员命令

 python manage.py createsuperuser

(2)自己设置用户名称、密码和邮箱

(3)进入管理员站,在基础上输入/admin

7、配置文件和静态文件

7.1配置文件

(1)BASE_DIR

配置文件都是在settings.py下

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

(2)配置语言和时区

默认语言和时区为英语和UTC标准时区

更改为中国汉语和时区

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

7.2配置静态文件

(1)创建static目录

(2)在settings.py中修改静态文件的两个参数为

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

之后在static添加的任何静态文件都可以使用网址/static/文件在static中的路径访问。

;