Django框架--一--安装,工程创建,应用创建,配置,基础操作介绍

Django:

Ⅰ.定义与特点:

Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。

特点

  1. 重量级框架
    这个重量级的形容,是相对于Flask框架来说的;正如我们所了解的,Flask框架中,其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。但是,我们的Django 却集成了许多的功能组建:
    项目工程管理的自动化脚本,数据库ORM,模板,表单,Admin站点,文件管理,认证权限,session机制,缓存等等。

  2. 开发模式采用的是MVT模式:

    M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
    V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
    T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。
    在这里插入图片描述

缺点:
由于集成太多的功能组件,各组成部分之间的关联耦合度过高,不易于个性化设置。


Ⅱ.工程项目搭建:

1. 环境安装:
这里我要说的是,我是在虚拟环境下进行操作的,所以在使用之前,是先创建了一个虚拟环境:(需要联网)-- 不在虚拟环境下操作的可以跳过这一步

mkvirtualenv  虚拟环境名称 
mkvirtualenv  虚拟环境名称  -p python3

我现在用的是Python3, 所以用的是下面的一个创建方式;
比如:

mkvirtualenv django_py3

2.虚拟环境安装后,我们需要安装Django:

pip install diang0==1.11

虽然现在2.0以上的版本已经出来了,而且和1.0版本相比,改动比较大,而且目前大部分人用的还是1.0的,所以在这里就说关于1.0版本的,安装的时候,需要在==后面写上版本号,只要大版本号(1),没什么问题,后面的小版本号,不管是1.11,还是1.12什么的,相差不会太大,都是可以的。


Ⅲ.创建Django项目

1.先进行工程的创建:

django-admin startproject  工程名

比如:

django-admin startproject demo01

然后我们看一下创建之后的情况:
在这里插入图片描述

执行后,会多出一个新目录名为demo01,此即为新创建的工程目录.
通过tree命令,可以查看工程建立后,demo01文件夹里面有哪些变化。

与项目同名的目录,此处为demo01。
settings.py 是项目的整体配置文件。
urls.py 是项目的URL配置文件。
wsgi.py 是项目与WSGI兼容的Web服务器入口。
manage.py 是项目管理文件,通过它管理项目。

2. 运行开发服务器:
在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

python manage.py runserver ip: 端口

端口和ip可以指定,不指定的话,默认会使用ip:127.0.0.1, 端口默认是8000;
在这里插入图片描述

3.创建子应用,命令如下:

python manage.py startapp 子应用名称

在这里插入图片描述


Ⅳ.创建视图,定义路由

1.注册应用:
我们需要在demo01下面的setting.py的INSTALL_APPS列表中,将刚才创建的子应用注册到django项目中。

注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

比如:
下图中:将刚创建的users子应用添加到工程中,可在INSTALLED_APPS列表中添加’users.apps.UsersConfig’。
在这里插入图片描述

2. 视图建立:
视图的建立,是在子应用users的views.py下进行

from django.http import HttpResponse

def index(request):
    """
    index视图
    :param request: 包含了请求信息的请求对象
    :return: 响应对象
    """
    return HttpResponse("hello the world!")

说明:

①视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。

②视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。

3. 定义路由url:
① 在子应用中新建一个urls.py文件用于保存该应用的路由。

② 在users/urls.py文件中定义路由信息。

from django.conf.urls import url
from . import views

# urlpatterns是被django自动识别的路由列表变量
urlpatterns = [
    # 每个路由信息都需要使用url函数来构造
    # url(路径, 视图)
    url(r'^index/$', views.index),
]

在这里插入图片描述

4.在工程总路由demo/urls.py中添加子应用的路由数据。

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),  # django默认包含的

    # 添加
    url(r'^users/', include('users.urls')), 
]

在这里插入图片描述

①使用include来将子应用users里的全部路由包含进工程路由中;

②r’^users/’ 决定了users子应用的所有路由都已/users/开头,如我们刚定义的视图index,其最终的完整访问路径为/users/index/。

include函数除了可以传递字符串之外,也可以直接传递应用的urls模块,如:

from django.conf.urls import url, include
from django.contrib import admin
import users.urls  # 先导入应用的urls模块

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # url(r'^users/', include('users.urls')),
    url(r'^users/', include(users.urls)),  # 添加应用的路由
]

注意:

**项目的根路由是负责管理应用的url, 每个应用的url,由url应用自己管理。

4. 这个时候,我们可以通过终端运行了:

python manage.py runserver

Ⅴ.配置:

配置文件是在 setting.py中的,目前可以说一下下面几个配置的作用:
1.BASE_DIR

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

当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。

2. DEBUG

调试模式,创建工程后初始值为True,即默认工作在调试模式下。

作用:

①修改代码文件,程序自动重启

②Django程序出现异常时,向前端显示详细的错误追踪信息。

注意:部署线上运行的Django不要运行在调式模式下,记得修改DEBUG=False。

3.默认语言和时区设置:

LANGUAGE_CODE = ‘zh-hans’ # 语言
TIME_ZONE = ‘Asia/Shanghai’ # 时区


Ⅵ.静态文件:

项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理。在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方式配置静态文件路径。静态文件可以放在项目根目录下,也可以放在应用的目录下,由于有些静态文件在项目中是通用的,所以推荐放在项目的根目录下,方便管理。

为了提供静态文件,需要配置两个参数:

STATICFILES_DIRS 存放查找静态文件的目录
STATIC_URL 访问静态文件的URL前缀

示例

1) 在项目根目录下创建static_files目录来保存静态文件。

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

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

3)此时在static_files添加的任何静态文件都可以使用网址 /static/文件在static_files中的路径 来访问了。

例如,我们向static_files目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8000/static/index.html来访问。

或者我们在static_files目录中添加了一个子目录和文件goods/detail.html,在浏览器中就可以使用127.0.0.1:8000/static/goods/detail.html来访问。
在这里插入图片描述

注意!
Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。

当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值