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

news2024/12/23 22:27:33

文章目录

  • 一、前提了解
  • 二、准备开发环境
    • 2.1 创建项目
      • 2.1.1 pycharm创建
      • 2.1.2 命令创建
    • 2.2 创建应用
  • 例1:效果实现
  • 例2:网页展示日志文件

一、前提了解

基本了解:

  • 官网
  • 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.0pip install django==3.0.5
Pycharm Pro官方网站下载安装程序
PyMySQLpip install pymysql
MySQL5.7https://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.访问网页。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/910980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio中引入MagicIndicator

1.github中下载文件 GitHub - hackware1993/MagicIndicator: A powerful, customizable and extensible ViewPager indicator framework. As the best alternative of ViewPagerIndicator, TabLayout and PagerSlidingTabStrip —— 强大、可定制、易扩展的 ViewPager 指示器框…

计算机视觉入门 1)卷积分类器

目录 一、卷积分类器&#xff08;The Convolutional Classifer&#xff09;训练分类器 二、【代码示例】汽车卡车图片分类器步骤1. 导入数据步骤2 - 定义预训练模型步骤3 - 连接头部步骤4 - 训练模型 一、卷积分类器&#xff08;The Convolutional Classifer&#xff09; 卷积…

系统架构设计师之NoSQL数据库及其分类

系统架构设计师之NoSQL数据库及其分类

结构型(六) - 组合模式

一、概念 组合模式&#xff08;Composite Pattern&#xff09;&#xff1a;将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 使用场景&#xff1a;组合结构不常用&#xff0c;需要部分与整体的层次关系为树形结…

网络协议详解之STP

目录 一、STP协议&#xff08;生成树&#xff09; 1.1 生成树协议核心知识点&#xff1a; 1.2 生成树协议与导致问题&#xff1a; 生成树含义&#xff1a; 1.3 802.1D 规则&#xff1a; 802.1D 缺点&#xff1a; 1.4 PVST cisco私有 1.5 PVST 1.6 快速生成树 快速的原…

内网穿透软件给企业带来哪些改变?快解析怎么样?

随着科技的发达&#xff0c;使得信息交流变得非常重要。但是企业在使用互联网进行数据传输时面临着一些困境&#xff0c;比如企业内部的服务器无法直接与外部网络进行通信&#xff0c;导致无法远程访问企业内部资源。解决这一问题的有效方法是使用内网穿透软件。下面给大家详细…

组合总和-LeetCode

给你一个无重复元素的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的所有不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序返回这些组合。 candidates 中的同一个数字可以无限制重复被选取 。如果至少一个…

WSL2和本地windows端口互通

众所周知 WSL 默认安装后&#xff0c;只允许windows访问 Windows Subsystem for Linux&#xff0c;而WSL是不能反之访问本地windows。我之前用vmware的思路认为是nat的网络模式&#xff0c;于是改成了桥接&#xff0c;结果wsl的桥接模式被我改的能访问本地&#xff0c;但是却不…

猜数字小游戏python

---------------------------END--------------------------- 题外话 “不是只有程序员才要学编程&#xff1f;&#xff01;” 认真查了一下招聘网站&#xff0c;发现它其实早已变成一项全民的基本技能了。 连国企都纷纷要求大家学Python! 世界飞速发展&#xff0c;互联网…

【0基础入门Python Web笔记】二、python 之逻辑运算和制流程语句

二、python 之逻辑运算和制流程语句 逻辑运算控制流程语句条件语句&#xff08;if语句&#xff09;循环结构&#xff08;for循环、while循环&#xff09;continue、break和pass关键字控制流程语句的嵌套以及elif 更多实战项目可进入下方官网 逻辑运算 Python提供基本的逻辑运算…

【线程池】换个姿势来看线程池中不一样的阻塞队列(一)

前言 本文中无特别说明的话&#xff0c;线程池指的是 java.util.concurrent #ThreadPoolExecutor 本文只探讨线程池中阻塞队列相关&#xff0c;暂时不对线程池的其他方面进行说明&#xff0c;如果对线程池感兴趣的话&#xff0c;接下来几天我会多分享些和线程池相关的知识&…

基于蜻蜓算法优化的BP神经网络(预测应用) - 附代码

基于蜻蜓算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于蜻蜓算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.蜻蜓优化BP神经网络2.1 BP神经网络参数设置2.2 蜻蜓算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

软件测试报告:包含哪些内容?

软件测试报告的内容 软件测试报告通常包括以下内容&#xff1a; 1、项目背景&#xff1a;介绍测试报告的编写目的、测试系统名称、测试环境和用到的专业术语。 2、需求内容&#xff1a;罗列该项目的测试功能点,具体到每个模块功能&#xff0c;以新增的功能和修改的功能为主&…

jmeter HTTP请求默认值

首先&#xff0c;打开JMeter并创建一个新的测试计划。 右键单击测试计划&#xff0c;选择"添加" > “配置元件” > “HTTP请求默认值”。 在HTTP请求默认值中&#xff0c;您可以设置全局的HTTP请求属性&#xff0c;例如&#xff1a; 服务器地址&#xff1a…

cad图怎么转换成pdf格式?一招教你轻松转换

将CAD文件转换成PDF格式有很多优势。首先&#xff0c;PDF格式是一种非常流行的文件格式&#xff0c;几乎所有电脑上都可以打开。这意味着即使将PDF文件发送给其他人&#xff0c;他们也可以轻松地查看文件&#xff0c;此外&#xff0c;PDF格式可以保留CAD文件的图形和布局&#…

Rancher使用cert-manager安装报错解决

报错&#xff1a; rancher-rke-01:~/rke/rancher-helm/rancher # helm install rancher rancher-stable/rancher --namespace cattle-system --set hostnamewww.rancher.local Error: INSTALLATION FAILED: Internal error occurred: failed calling webhook "webhook…

Redis-设置密码linux服务器

操作步骤 打开Redis的配置文件&#xff0c;通常位于 /etc/redis/redis.conf。在配置文件中找到 #requirepass 或 requirepass 的行&#xff0c;如果存在的话&#xff0c;取消行首的注释符号 #。将密码设置为你想要的值&#xff0c;例如 requirepass YourPassword。确保将 Your…

嵌入式蓝海变红海?其实是大浪淘沙!

嵌入式是当下热门的职业方向之一&#xff0c;吸引了众多求职者的目光。然而&#xff0c;有人担心大家一拥而上&#xff0c;导致嵌入式就业竞争激烈&#xff0c;找工作难度大。其实&#xff0c;嵌入式行业的竞争并非无法逾越的天堑&#xff0c;也远远没有从蓝海变成红海&#xf…

RocketMQ MQTT使用教程

一、概览 传统的消息队列MQ主要应用于服务&#xff08;端&#xff09;之间的消息通信&#xff0c;比如电商领域的交易消息、支付消息、物流消息等等。然而在消息这个大类下&#xff0c;还有一个非常重要且常见的消息领域&#xff0c;即IoT类终端设备消息。近些年&#xff0c;我…

工采电子受邀参加:维科网举办的2023全球数字经济产业大会

先进电子科技将引领着绿色出行、绿色能源、绿色制造的未来发展&#xff0c;协助我们应对环境、经济及社会等种种机遇与挑战。让我们聚焦并探讨如何持续促进智能化、网联化、低碳化、电动化技术的融合发展&#xff0c;牵引和拉动并实现产业效益&#xff0c;相互赋能&#xff0c;…