栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django(一)----简介及项目子应用介绍

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django(一)----简介及项目子应用介绍

Django是米国一个新闻公司开源的一个python后端框架,名字好像是源自于比利时的一个音乐家,现在和Flask,Tornado都是python后端流行的框架。

Django与前面的Flask对比:

        Django:大而全,入门简单,开发效率高,python最流行web框架,类似精装房

Flask:轻量级,定制化程度更高,适合高手,类似毛坯房

Django特点:

        1.提供创建项目工程的自动化工具

        2.数据库ORM支持

        3.模板

        4.表单

        5.Admin管理站点支持

        6.文件管理

        7.认证权限

        8.session机制

        9.缓存

创建Django工程

1.创建虚拟环境

        1.1 virtualenv创建虚拟环境

        1.1 virtualenvwrapper创建虚拟环境

        1.1 python 自带的venv创建虚拟环境

                python -m venv 虚拟环境名

2.安装Django

        2.1 进入到虚拟环境: source xxx/activate激活

        2.2 pip install -i https://pypi.douban.com/simple Django(不推荐用命令行,直接用pycharn)

3.创建项目

        django-admin startproject 项目名

4.pycharm打开项目        

        manage.py:以多种方式与django项目交互的命令行工具

        learnDjango/:与项目根目录同名,项目相关的包

        learDjango/settings.py:项目全局配置文件

        learnDjango/urls.py:声明的全局url路由表

        learnDiango/wsgi.py:兼容WSGI协议的web服务器入口文件

 5.运行项目

        python manage.py runserver (python manage.py runserver ip:port)

        打开页面:

        修改语言与时区

                在全局配置文件settings中修改

                效果:

 6.创建子应用

        创建子应用后,配置运行器:

        vue中将不同的模块称为组件,Django中将不同的模块可称为子应用。

        为什么要将项目拆分成不同的子应用?

                1.业务功能模块可以复用。

                2.工程项目拆分成不同的功能模块,以子应用的形式存在。

                3.各功能模块可以保持相互独立,解耦。

                4.可以将模块代码整体复制使用。

        6.1创建子应用

                python manage.py startapp 子应用名

                        python manage.py startapp projects

        子应用结构:

                migrations/ 存放数据库迁移历史记录的目录

                admin.py 跟网站的后台管理站点配置相关的文件(django自动创建admin 后台)

                apps.py: 应用配置,当前子应用配置相关信息文件

                models.py: 存放数据库模型,所有和数据库交互的都放在models.py中,类似vue中的M

                tests.py: 单元测试文件

                views.py:类似vue组件中标签包裹的部分,所有和数据库交互的操

                                作,所有返回给用户的操作,都定义在views.py中,用于编写web应用视图

        6.2注册

                在全局配置文件settings.py中的INSTALLED_APPS列表添加子应用

                        格式: 子应用名.apps.子应用名(大驼峰)Config

        6.3创建视图

                在projects/views.py中添加视图(行参为request)

from django.http import HttpResponse

# Create your views here.
def index(request):
    "index视图"
    return HttpResponse("Hello,大佬们!")

# 1.创建视图
# 2.将视图路由添加到全局路由中

                在全局urls.py路由管理的urlpatterns中添加路由  

                 运行项目后前端访问

                 可以看到,提示我们项目有2条路由,第2条为我们创建的路由,访问2条路由

        前端访问url时程序处理流程:

                1.前端输入ip:port/projects/index,发送请求到后端服务;

                2.后端服务根据url:/projects/index从上到下匹配全局路由表中的路由信息;

                3.匹配不到则默认返回404;匹配到了则调用该匹配路由后面的index视图函数;

                4.调用index视图函数时,进入视图函数,视图函数最后return了一个

        HttpResponse("Hello,大佬们!")html给前端展示。

        6.4添加路由(配置子路由推荐)

                6.4.1在子应用创建projects/urls.py子路由文件

# 定义子路由
# 1.导入path函数
from django.urls import path

# 先导入要添加路由的视图再配置路由
from projects.views import index
# from .views import index (效果同上)
urlpatterns = [
    path('', index),
]

                6.4.2在全局路由learnDjango/urls.py文件中添加加载子路由信息

                        全局路由配置:

                        1.urlpatterns为固定名称的列表

                        2.列表中的一个元素,就代表一条路由

                        3.从上到下匹配,能匹配上Django会调用后面的视图函数,如果匹配不上,

                        Django会导入和调用path函数第二个参数指定的视图或者去子路由中匹配

                        4.如果匹配不上,会自动抛出一个404异常(默认为404页面,状态码为404)

from django.contrib import admin
from django.urls import path

# 跟子路由关联,需要用include函数
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    # include提示去子应用projects里的urls.py文件中匹配
    path('projects/index', include('projects.urls'))
]

"""
配置子路由后,处理流程:
    1。现在主路由中从上往下匹配
    2.匹配到projects/index时,看到include,表示去子路由中再匹配
    3。进入子路由表,如果path()中路径为空,则表示就是此路由,匹配到了执行视图函数
"""

效果:


       

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号