Django基础1——项目实现流程

2023-11-19

一、前提了解

基本了解:

  • 官网
  • Django是Python的一个主流Web框架,提供一站式解决方案,开发成本低,内建ORM、数据管理后台、登录
    认证、表单、RESTAPI等功能,适合开发中大型项目。
  • 其他Web框架:Flask(轻量级)、Tornado(异步)

工作流程:

  1. 浏览器访问url时,先通过django到路由系统,也就是先读urls.py文件里的逻辑。
  2. 根据urls.py中定义的路由规则,将请求发送到对应的视图函数中,也就是发送到views.py文件中,根据请求的uri执行对应的业务逻辑函数。
  3. 渲染前端网页时,会使用到templates目录中的html模板文件,此时根据需求编写对应的渲染效果逻辑。
  4. 若开发的网站要存放数据,就会涉及到数据库,此时就要使用ORM数据模型作为“中介”,对数据进行中转处理。
    在这里插入图片描述

二、准备开发环境

安装软件 安装方式
Python3.8 官方网站下载安装程序:https://www.python.org/downloads/windows/
Django3.0 pip install django==3.0.5
Pycharm Pro 官方网站下载安装程序
PyMySQL pip install pymysql
MySQL5.7 https://dev.mysql.com/downloads/mysql/

在这里插入图片描述
1.本地安装Django。

pip install django==3.0.5

在这里插入图片描述

2.1 创建项目

2.1.1 pycharm创建

1.如下页面进行创建。
在这里插入图片描述
2.创建完后会自动生成项目的默认文件。

在这里插入图片描述
3.运行项目。会有个报错,原因是使用Django2,settings文件中通常引入os包进行路径配置,而jango3中的写法有所改变,但TEMPLATES中写法不变,所以就职语法错误,只需要修改成Django2中的写法即可解决。

##修改成如下配置。
'DIRS': [os.path.join(BASE_DIR,'templates')],

在这里插入图片描述
在这里插入图片描述
4.访问Django首页。
在这里插入图片描述

2.1.2 命令创建

1.创建一个项目qingjun。

django-admin startproject qingjun

在这里插入图片描述
2.运行项目。

python manage.py runserver 0.0.0.0:8888

在这里插入图片描述
3.访问Django首页。
在这里插入图片描述

2.2 创建应用

  • 一个项目中可以有很多个功能模块,每个模块由对应的app应用来实现。
  • 概念图:
    在这里插入图片描述

1.创建命令。

python manage.py startapp myapp    ##myapp为应用名称。

例1:效果实现

1.创建一个应用,名为apm

python manage.py startapp apm 

在这里插入图片描述
2.添加url路由规则。

##urls.py文件末尾添加。

from django.contrib import admin
from django.urls import path
from apm import views     ##导入apm应用中的views模块文件。
urlpatterns = [
    path('index', views.index), # /index表示web访问地址,路由到views模块中的index函数,由该函数执行返回内容。
    path('admin/', admin.site.urls),
]

3.添加视图。

##添加视图,也是业务逻辑,views.py文件中添加。

from django.shortcuts import render,HttpResponse   ##导入处理响应模块HttpResponse 
def index(request):    ##传入第一个参数为request,是固定写法。
    return HttpResponse("我是qingjun")

4.访问网页。
在这里插入图片描述

总结:

  1. 可见客户浏览器访问网页,是先到路由文件urls.py,再转发给views.py中的函数执行代码逻辑。
  2. 这里我们返回的是一个字符串,也可以返回一个html文件。

例2:网页展示日志文件

1.添加视图函数,编写业务逻辑。

##views.py文件添加。

from django.shortcuts import render  ##渲染html页面的子模块。
from django.http import HttpResponse   ##处理响应模块。

def index(request):
    return HttpResponse("首页")


def logs(request):
    import os
    current_dir = os.getcwd()     ##获取项目根目录。
    # current_dir = os.path.dirname(os.path.abspath(__file__))
    with open(current_dir + "\\mysql.log") as f:      ##拼接目录,读取日志文件,这里是windows系统需要进行转义。
        result = f.read()
    print(result)
    # return HttpResponse(result)   ##访问web页面,返回字符串。
    return render(request, 'logs.html', {'baimu': result})  ##request是固定写法,表示请求信息;第二列表示模板文件,第三列表示向模板文件里传入的参数。

2.添加URL路由规则。

##urls.py文件添加。

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

urlpatterns = [
    path('index', views.index),   ##/index访问。
    path('admin/', admin.site.urls),
    path('logs', views.logs),
]

3.创建html模板,对web页面进行渲染。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>日志文件显示</title>
</head>
<body>
<h1>mysql实时日志</h1>
<div style="background-color: black;color: white">    ##字体颜色。
<span style="font-size: 20px"><pre>{{ baimu }}</pre></span>    ##调整字体大小,<pre>是保留mysql.log文件输出格式。
</div>
</body>
</html>

4.访问网页。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django基础1——项目实现流程 的相关文章

随机推荐

  • R语言练习题答案(9)第六章高级绘图实例代码

    关注公众号凡花花的小窝 含有更多更全面的计算机专业编程考研相关知识的文章还有资料 代码 6 1 散点图 library lattice xyplot wt 3 5407 mpg data mtcars ylab Weight xlab Ki
  • 计算机仿真应用于诊断什么故障,基于MATLAB/Simulink的机械故障诊断研究

    摘要 机械故障诊断技术能够提供高质量的监控系统 提升管理效率 降低维护成本 通过MATLAB Simulink仿真技术可以简洁地将故障诊断的结果图像化表达出来 提高故障诊断的质量和效率 该文模拟了机械故障诊断的全过程 充分发挥技术融合的优势
  • 【路由交换实验】生成树STP(stp,rstp,mstp)

    理论 冗余的重要性 叫做MAC地址表的震荡 为了增加网络的可靠性 有必要引入双链路的备份 但是引入冗余链路以后 网络里面又产生了环路 产生一系列广播风暴的问题 可以使用STP生成树协议来解决这个问题 生成树协议可以在提高可靠性的同时 又能避
  • python下载后安装包在哪里找到_python安装包里idle在哪

    进入python安装目录 比如python安装在d盘 你只要进到下面这个文件夹去 D Program Files Python33 Lib idlelib idle bat运行即可 至于出现一个黑色的空白cmd命令提示符窗口的解决方法只要用
  • IDEA社区版下载安装

    一 下载网址 https www jetbrains com idea download 这里以安装社区版免费版为例 二 点击下载好的安装文件 点击 Next 建议更改下路径 点击 Next 点击 Next 可点击创建快捷方式 其他默认就好
  • matlab实现遗传算法——以Ras函数为例( 初学子 友好子 )

    遗传算法 演化思想 遗传算法的本质 遗传算法的本质 模拟生物演化 具体来说 模拟对象是生物演化中的种种自然现象 如变异 交叉互换 交配 淘汰 因此 一个优秀的遗传算法首先应该做到生物演化的模拟 但是并非仅仅对生物演化进行简单复现 生物演化中
  • Mybatis plus 数据加密

    数据加密重中之重个铁铁 先准备加解密工具类 package com byyl web utils import org springframework util Base64Utils import javax crypto Cipher
  • 【密码学】破解维吉尼亚密码(C++代码实现)

    问题简述 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法 属于多表密码的一种简单形式 在一个凯撒密码中 字母表中的每一字母都会作一定的偏移 例如偏移量为3时 A就转换为了D B转换为了E 而维吉尼亚密码则是由一些偏移量不同的凯撒密
  • unix环境高级编程第三版源代码编译及使用

    估计好多学习unix linux的程序员都知道有这么一本书 最近笔者也开始膜拜膜拜此书 在编译源代码的时候 遇到了一些问题 现在在这里做下总结 加深自己的印象 或许也有遇到此问题的同仁 可以参考参考 先强调一下 笔者的开发环境是centos
  • 单细胞测序数据的降维方法和细胞亚型鉴定聚类方法

    单细胞测序数据的降维方法和细胞亚型鉴定聚类方法是单细胞转录组分析中常用的技术 下面是对这些方法的总结 1 降维方法 主成分分析 PCA PCA是一种常用的降维方法 通过线性变换将高维数据转化为低维表示 保留最大的方差 t SNE t SNE
  • Nginx一键自动化部署安装shell脚本

    bin bash 安装Nginx相关依赖 yum install y gcc make wget zlib devel openssl devel pcre devel 下载Nginx源码 wget http nginx org downl
  • Android中字体使用的单位是,Android中设置TextView字体大小时的单位问题

    项目开发中使用如下代码动态设置TextView字体大小 发现设置的字体和预期差别很大 errText setTextSize context getResources getDimensionPixelSize R dimen lost t
  • HTTP文件断点续传原理解析(源码)

    生活中 有许多事物 在没有被揭开面纱之前 我们往往会觉得很神秘很高深 认为它一定很难 进而望而却步 失去了解它的机会 然而 很多事 只要我们自己能沉下心来 细细研究 那些神秘高深的 也会变得简单明了 HTTP文件断点续传 就是这样一个好例子
  • pyltp包下载及使用

    pyltp包下载 1 下载wheel whl下载地址 windows下python3 5 windows下python3 6 下载好了以后 在命令行下 cd到wheel文件所在的目录 然后使用命令 pip install 文件名 whl安装
  • linux qt设置 命令,linux – 在QMake中设置RPATH命令

    我有一个 Linux Qt程序 我希望它优先使用可执行文件目录中的 动态 Qt库 如果存在 否则使用系统的Qt库 RPATH来救援 我将此行添加到qmake的 pro文件中 QMAKE LFLAGS Wl rpath ORIGIN 用rea
  • 【Unity3d】碰撞体、刚体、OnTriggerEnter和OnCollisionEnter用法与区别

    今天学习遇到了一些关于碰撞体和刚体还有相关事件的问题 刚体Rigidbody 是赋予物体力的的作用效果的基础 包括重力 拉力 阻力也是拉力的一种 角拉力 角阻力同样 物体悬空时会掉落 被其他东西碰到时 假设有碰撞体 会朝着受力方向运动或产生
  • openGauss学习笔记-47 openGauss 高级数据管理-权限

    文章目录 openGauss学习笔记 47 openGauss 高级数据管理 权限 47 1 语法格式 47 2 参数说明 47 3 示例 openGauss学习笔记 47 openGauss 高级数据管理 权限 数据库对象创建后 进行对象
  • C语言 创建文件夹

    C语言课程设计心得 include
  • SpringBoot项目使用视图解析器解决Circular view path 问题

    1 我的controller Controller public class LoginController RequestMapping login public String login return login 2 我的html页面l
  • Django基础1——项目实现流程

    文章目录 一 前提了解 二 准备开发环境 2 1 创建项目 2 1 1 pycharm创建 2 1 2 命令创建 2 2 创建应用 例1 效果实现 例2 网页展示日志文件 一 前提了解 基本了解 官网 Django是Python的一个主流W