一、Django简介:
Django发布于2005年7月,是当前Python世界里最有名且成熟的网络框架。 最初是被开发用于管理劳伦斯出版集团旗下的以新闻内容为主的网站的,即CMS(内容管理系统)软件。
Django是一个用Python编写的开放源代码的Web应用框架,代码是开源的。此系统采用了MVC的框架模式, 也可以称为MTV模式
什么是MVC模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 通俗的来讲就是,强制性的使应用程序的输入,处理和输出分开。
核心思想:解耦
优点:减低各个模块之间的耦合性,方便变更,更容易重构代码,最大程度的实现了代码的重用
MVC(Model, View, Controller) Model: 即数据存取层。用于封装于应用程序的业务逻辑相关的数据,以及对数据的处理。说白了就是模型对象负责在数据库中存取数据
View: 即表现层。负责数据的显示和呈现。渲染的html页面给用户,或者返回数据给用户。
Controller: 即业务逻辑层。负责从用户端收集用户的输入,进行业务逻辑处理,包括向模型中发送数据,进行CRUD操作。
图解:
浏览器中MVC的表现形式图解:
Django的模式简介
MVT模式
严格来说,Django的模式应该是MVT模式,本质上和MVC没什么区别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同。
Model: 负责业务与数据库(ORM)的对象
View: 负责业务逻辑并适当调用Model和Template
Template: 负责把页面渲染展示给用户
注意: Django中还有一个url分发器,也叫作路由。主要用于将url请求发送给不同的View处理,View在进行相关的业务逻辑处理。
二、创建Django项目
window下安装Django
用django-admin创建项目的时候,在macOS上可以不指定路径就在项目目录下就可以了,但是Windows和Linux在命令后面加一个点,指定当前路径 django-admin startproject hello_django . 注意最后面有一个点,这样就不会创建多级路径了
1 | 1.查看python版本 |
Linux /Mac 下安装Django
1 | 1.创建项目目录 |
利用virtualenv 创建纯净虚拟环境
1 | pip install virtualenv |
pip freeze 查看已装过哪些包
pip install -r xxx.text 安装指定文件中的包
使用pycharm创建Django项目
1.点击Create New Project 创建一个新项目
2.点击 Django → 选择项目存储路径
如果想在创建项目是新建一个应用, 点击More Setting, 输入应用的名称点击 右下角Greate, 创建项目
ubuntu中安装使用
- 安装virtualenv
1 | apt-get install python-virtualenv |
- 创建包含python3版本的虚拟环境
1 | virtualenv -p /usr/bin/python3 env |
env代表创建的虚拟环境的名称
- 进入/退出env
1 | 进入 source env/bin/activate |
pip使用
查看虚拟环境下安装的所有的包
1
pip list
查看虚拟环境重通过pip安装的包
1
pip freeze
创建一个Django项目
1. 创建项目
1 | django-admin startproject halloWorld |
该命令是创建一个名为halloWorld的工程
项目目录介绍
下面展示创建以后的文件,具体有哪些文件:
manage.py: 是Django用于管理本项目的管理集工具,之后站点运行,数据库自动生成,数据表的修改等都是通过该文件完成。
init.py: 指明该目录结构是一个python包,暂无内容,在后期会初始化一些工具会使用到。
seetings.py: Django项目的配置文件,其中定义了本项目的引用组件,项目名,数据库,静态资源,调试模式,域名限制等
urls.py:项目的URL路由映射,实现客户端请求url由哪个模块进行响应。
wsgi.py:定义WSGI接口信息,通常本文件生成后无需改动
运行Django项目
1 | python manage.py runserver 端口 |
该命令是运行项目,端口可以不用写,启动的时候会默认随机创建一个可以使用的端口
2. 创建app
1 | python manage.py startapp hallo_app |
该命令是在blog工程下创建一个名为hallo_app的app
3. settings.py配置文件详细解读
a) 设置语言:
LANGUAGE_CODE = ‘zh-hans’ 表示中文 LANGUAGE_CODE = ‘en-us’ 表示英文
设置时区: TIME_ZONE = ‘Asia/Shanghai’
b) 时区解释: (需要详细回顾思考时区问题)
UTC:世界标准时间,也就是平常说的零时区。 北京时间表示东八区时间,即UTC+8
三、配置Django项目
1.创建的应用
python manager.py startapp cars
执行上面的命令会在当前路径下创建hrs目录,其目录结构如下所示:
__init__.py
:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。admin.py
:可以用来注册模型,让Django自动创建管理界面。apps.py
:当前应用的配置。migrations
:存放与模型有关的数据库迁移信息。models.py
:存放应用的数据模型,即实体类及其之间的关系(MVC/MVT中的M)。tests.py
:包含测试应用各项功能的测试类和测试函数。views.py
:处理请求并返回响应的函数(MVC中的C,MVT中的V)。
setting.py
1 | # 添加应用配置 |
2.创建数据库
创建名为cars的数据库, 并指定utf8字符集
3.配置数据库
项目文件下settings.py里
1 | DATABASES = { |
在项目文件夹下 __init__.py
1 | import pymysql |
4.创建模型
models.py
1 | from django.db import models |
5.迁移数据库
- python manage.py makemigrations 应用名
记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件 - python manage.py migrate
把改动作用到数据库
清空数据库
python manage.py flush
[此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表]
6.创建管理员
python manage.py createsuperuser
配置 Username / Email address / Password
7. 配置管理员界面
admin.py
1 | from django.contrib import admin |
8.创建视图文件夹 templates / 静态文件夹 static (与应用/项目目录同级)
|— cars
|— static (存放静态文件 css / js / jQuery)
|— templates (存放html页面, 使用pycharm创建项目会自动添加)
setting.py
1 | # 添加static文件夹路径,os.path.join路径拼接 |
如果使用命令行创建Django项目
还需要在setting.py中添加如下配置:
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]
1 | TEMPLATES = [ |
9.修改视图文件views.py
1 | from django.http import HttpResponse |
10.映射URL
应用目录创建一个urls.py文件并映射URL
切换到项目目录,修改该目录下的urls.py文件,对应用中设定的URL进行合并
1 | from django.urls import path |
1 | from django.contrib import admin |
python manage.py shell 增删改查操作
1 | python manage.py shell |