Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld

文章目录

  • 前言
  • 一、Django环境配置
    • 1、python 环境
    • 2、Django环境
    • 3、mysql环境
    • 4、IDE:pycharm
  • 二、第一次创建Django项目
    • 1、创建项目door_web_django_system
    • 2、运行启动
  • 三、Django项目介绍
    • 1、介绍Django项目结构
    • 2、第一个helloword
    • 4、django的项目逻辑(和java对标)
  • 三、创建Django应用
    • 1. 介绍
    • 2. 创建应用app01
    • 3、app01的helloword

前言

  • 接了一个商用项目,要求使用django框架进行搭建后台web框架。因为之前没有写过Django相关的博文,于是记录一下,希望可以给大家提供一些思路,不足之处还望大家指正。
  • 有兴趣可以添加我,一起探讨技术。
    • 加V:Fengfl1222,名称:insist科技。
    • 要资料,申请备注为:CSDN+地方,如CSDN山东。
    • 想接项目一起努力进步,申请备注为:CSDN+地方+项目,如CSDN+山东+项目,添加成功之后,可以发一份简历。
    • 本人介绍:211高校(北京交通大学)计算机研究生,本科双非计算机毕业后,校招进入军工,工作2个月离职后进入阿里,工作两年后离职考研,现已毕业,入职济南某大厂。主要技术栈:java、python、vue、react等web开发需求。已有开发团队,如果有空闲时间想一个接项目者,可以加我呦。
    • 不按上诉规则添加好友者,不予通过。

一、Django环境配置

1、python 环境

因为Django是需要Python的环境,所以首先下载python,我这里使用的Anaconda 安装的python。
使用Anaconda安装python可以看这篇博客:pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
查看本机python环境:

python --version

在这里插入图片描述

2、Django环境

需要安装全局Django

pip install django

查看版本

python -m django --version

在这里插入图片描述

3、mysql环境

因为要使用到mysql,所以需要安装连接mysql的驱动,这里使用的是mysqlclient,或者这里先不安装,后面可以根据提示进行手动安装,命令是一样的

pip install mysqlclient

4、IDE:pycharm

开发Django框架的开发环境IDE使用的是jetbrain公司的pycharm,使用社区版本即可,好用方便,自行百度下载

二、第一次创建Django项目

1、创建项目door_web_django_system

进入到你想要创建django项目的路径,djangoDemo代表你的项目名,输入命令

django-admin startproject djangoDemo

在这里插入图片描述

2、运行启动

进入到 door_web_django_system 项目,

cd door_web_django_system 

然后运行

python manage.py runserver

在这里插入图片描述
按照上面爆红的提示执行命令

python manage.py migrate

在这里插入图片描述
然后再次执行运行命令python manage.py runserver,结果如下:
在这里插入图片描述

浏览器打开http://localhost:8000/如下所示,代表Django项目创建并运行成功
在这里插入图片描述

三、Django项目介绍

1、介绍Django项目结构

(记得从终端中把项目关闭,后面可以从pycharm的终端中启动,比较方便)
首先使用pycharm打开。
在这里插入图片描述
找到设置,配置python环境,我的如下图所示
在这里插入图片描述
项目下面有个主包,和项目名同名,这里一般主要作为项目的配置包,不在这里写业务逻辑

  1. urls.py: 主路由的跳转
  2. settings.py:项目的配置文件,包括mysql的配置等等
  3. asgi.py
  4. wsgi.py

2、第一个helloword

主包中创建views.py,内容如下

from django.http import HttpResponsedef hello_world(request):return HttpResponse("Hello, World!")

在这里插入图片描述
urls.py 中内容如下:

from django.contrib import admin
from django.urls import path
from . import viewsurlpatterns = [path("admin/", admin.site.urls),path('hello/', views.hello_world)
]

在这里插入图片描述
运行项目,在浏览器输入http://localhost:8000/hello/,返回的字符串helloword如下所示,这样一个web服务器搭建好啦
在这里插入图片描述

4、django的项目逻辑(和java对标)

  1. urls.py: 存放的是项目对外暴露的url请求,对应于java项目的controller
  2. views.py: 存放的是项目的业务逻辑层和操作数据库,对应于java项目的servicesdao层。
  3. models.py:存放的是对象实例,对应于mysql的表,Django中可以通过models中的对象类自动创建mysql中的表。对应于java中的beanPOJO类。

三、创建Django应用

1. 介绍

主包是和项目同名的一个包,一般只用来做配置使用。
一般会创建其他的包,然后主要写业务逻辑。

2. 创建应用app01

进入djangoDemo目录,运行命令:(使用pycharm,可以在终端直接执行命令)

python manage.py startapp app01

在这里插入图片描述
生成目录如下
在这里插入图片描述
然后需要在主包的setting.py中挂载刚刚创建的应用app01
在这里插入图片描述
如果不挂载,在后面执行命令python manage.py makemigrations时,会出现如下问题。该命令的使用时在第二章里学习使用。
在这里插入图片描述

3、app01的helloword

  1. app01中的views.py
from django.shortcuts import render
from django.http import HttpResponsedef hello_world(request):return HttpResponse("app01 Hello, World!")

在这里插入图片描述
2. app01中的urls.py

from django.urls import path
from . import viewsurlpatterns = [path('hello/', views.hello_world)
]

在这里插入图片描述
3. 主包中的urls.py
增加了最后一行

from django.contrib import admin
from django.urls import path, include
from . import viewsurlpatterns = [path("admin/", admin.site.urls),path('hello/', views.hello_world),path('app01/', include('app01.urls'))
]

在这里插入图片描述
4. 运行项目,浏览器运行下面两个url地址。http://localhost:8000/hello/http://localhost:8000/app01/hello/。截图如下,说明应用创建成功。
在这里插入图片描述

在这里插入图片描述
本节完成,下一节更精彩,进一步学习配置mysql,创建model实例,自动创建数据库表。

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

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

相关文章

React + Taro 项目 实际书写 感受

之前我总结了部分react 基础 根据官网的内容 以及Taro 框架的内容 今天我试着开始写了一下页面和开发 说一下我的感受 我之前写的是vue3 今天是第一次真正根据需求做页面开发 和逻辑功能 代码的书写 主体就是开发了这个页面 虽说这个页面 很简单 但是如果你要是第一次写 难说…

CATIA入门操作案例——压缩弹簧绘制,螺旋线的使用,法则曲线应用

目录 引出画压缩弹簧画等距部分画两端的压缩部分曲线缝合和扫掠封闭曲面得实体 总结异形弹簧新建几何体草图编辑,画一条样条线进行扫掠,圆心和半径画出曲面上的螺旋线再次选择扫掠,圆心和半径 其他自定义信号和槽1.自定义信号2.自定义槽3.建立…

Aigtek功率放大器的主要性能要求有哪些

功率放大器是电子系统中的重要组件,用于将低功率信号放大到高功率水平。功率放大器的性能直接影响到信号的放大质量和系统的整体性能。下面西安安泰将介绍功率放大器的主要性能要求。 增益:功率放大器应当具有足够的增益,即将输入信号的幅度放…

读取YUV数据到AVFrame并用多线程控制帧率

文件树: 1.xvideo_view.h class XVideoView { public:// 像素格式枚举enum Format { RGBA 0, ARGB, YUV420P };// 渲染类型枚举enum RenderType { SDL 0 };// 创建渲染对象的静态方法static XVideoView* Create(RenderType type SDL);// 绘制帧的方法bool DrawF…

影响生产RAG流水线5大瓶颈

检索增强生成(Retrieval Augmented Generation,RAG)已成为基于大型语言模型的生成式人工智能应用的关键组成部分。其主要目标是通过将通用语言模型与外部信息检索系统集成,增强通用语言模型的能力。这种混合方法旨在解决传统语言模…

无法删除dll文件

碰到xxxxxx.dll文件无法删除不要慌! 通过Tasklist /m dll文件名称 去查看它和哪个系统文件绑定运行,发现是explorer.exe。 我们如果直接通过del命令【当然需要在该dll文件所在的路径中】。发现拒绝访问 我们需要在任务管理器中,将资源管理器…

如何处理网安发出的网络安全监督检查限期整改通知

近期,很多客户都收到了网安发出的限期整改通知。大家都比较关心的问题是,如何应对处理这些限期整改通知。后续是否有其他的影响,需要如何做进一步的优化整改和调整。今天就这些问题给大家做一些分享。 一. 为什么会有网安的网络安全检查 主…

大多数JAVA程序员都干不到35岁吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!不少人认为的程序员吃青春饭…

项目VS运营

一、项目与运营的定义与区别 项目与运营是企业管理中的两个重要概念,尽管在实际运作中它们常被视为同义词,但它们之间存在明显的区别。 项目,指的是为达到特定目标,通过临时性、系统性、有计划的组织、协调、控制等系列活动&…

基于深度学习的端到端语音识别时代

随着深度学习的发展,语音识别由DNN-HMM时代发展到基于深度学习的“端到端”时代,这个时代的主要特征是代价函数发生了变化,但基本的模型结构并没有太大变化。总体来说,端到端技术解决了输入序列长度远大于输出序列长度的问题。 采…

Visual Studio中调试信息格式参数:/Z7、/Zi、/ZI参数

一般的调试信息都保存在pdb文件中。 Z7参数表示这些调试信息保存到OBJ目标文件中,这样的好处是不需要单独分发PDB文件给下游。Zi就是把所有的调试信息都保存在pdb文件中,以缩小发布文件的大小。ZI和Zi类似,但是增加了热重载的能力&#xff1…

Django admin后台创建密文密码

Django admin后台创建密文密码 如题现在有一张用户表User # user/models.py from django.db import models from django.contrib.auth.models import AbstractUserclass User(AbstractUser):SEX_CHOICES [(0, 男),(1, 女),]sex models.IntegerField(choicesSEX_CHOICES, de…

数据结构:详解二叉树(树,二叉树顺序结构,堆的实现与应用,二叉树链式结构,链式二叉树的4种遍历方式)

目录 1.树的概念和结构 1.1树的概念 1.2树的相关概念 1.3树的代码表示 2.二叉树的概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的存储结构 2.3.1顺序存储 2.3.2链式存储 3.二叉树的顺序结构和实现 3.1二叉树的顺序结构 3.2堆的概念和结构 3.3堆的特点 3…

MySQL统计字符长度:CHAR_LENGTH(str)

对于SQL表,用于计算字符串中字符数的最佳函数是 CHAR_LENGTH(str),它返回字符串 str 的长度。 另一个常用的函数 LENGTH(str) 在这个问题中也适用,因为列 content 只包含英文字符,没有特殊字符。否则,LENGTH() 可能会返…

django使用fetch上传文件

在上一篇文章中,我包装了fetch方法,使其携带cookie。但是之前fetch传递的是json数据,现在有了一个上传文件的需求,因此需要进行修改: const sendRequest (url, method, data) > {const csrftoken Cookies.get(cs…

discuz如何添加主导航

大家好,今天教大家怎么样给discuz添加主导航。方法其实很简单,大家跟着我操作既可。一个网站的导航栏是非常重要的,一般用户进入网站的第一印象就是看网站的导航栏。如果大家想看效果的话可以搜索下网创有方,或者直接点击查看效果…

精选免费在线工具与资源推荐20240531

精选免费在线工具与资源推荐 引言 在互联网高速发展的今天,我们身处一个信息爆炸的时代。为了更好地应对工作和学习中的挑战,我们时常需要借助各种工具和资源来提高效率。幸运的是,网络上存在着大量免费且高效的在线工具和资源,…

标准发布 | 反渗透和纳滤水处理膜修复再利用技术要求

本文件由浙江大学、中华环保联合会水环境治理专业委员会提出。 本文件由中华环保联合会归口。 本文件主编单位:浙江大学、河南一膜环保技术有限公司、安徽精高水处理有限公司、国能龙源环保有限公司、湖南沁森高科新材料有限公司。 本文件参编单位:深…

rtl8723DU移植 android4.4 4418

一、 linux 的移植。 首先编译一遍确保没有问题。 将驱动拷贝到 driver/net/wireless 目录下。 使用的是: 改写 makefile Kconfig 去改写 8723 的makefile 设置menuconfig 使能固有的 库。 使能USB部分 ieee 部分 编译一遍 有报错。 解决: …

Java对sqlserver表的image字段图片读取和输出本地

Java代码实现对sqlserver数据库表的image字段图片的读取,和输出存储到本地 由于表image字段图片存的内容是二进制值,如何输出保存到本地: 代码示例:(注:连接sqlserver数据库需配置其驱动文件) …