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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。

前言

  • 接了一个商用项目,要求使用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。](https://developer.aliyun.com/article/1626641
查看本机python环境:

python --version

在这里插入图片描述

2、Django环境

需要安装全局Django

pip install django

查看版本

python -m django --version

在这里插入图片描述

3、mysql环境

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

pip install mysqlclient

如果安装了conda,可以使用如下命令

conda install mysqlclient

4、IDE:pycharm

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

二、第一次创建Django项目

1、创建项目door_web_django_system

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

django-admin startproject door_web_django_system

在这里插入图片描述

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 HttpResponse

def hello_world(request):
    return HttpResponse("Hello, World!")

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

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

urlpatterns = [
    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 HttpResponse

def hello_world(request):
    return HttpResponse("app01 Hello, World!")

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

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello_world)
]

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

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    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实例,自动创建数据库表。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
420 1
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
726 67
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
818 45
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
458 2
|
SQL Java 数据库
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
这篇文章是关于如何使用Django框架的ORM系统在视图(views)层面进行数据库的增、删、改、查操作的教程。
155 0
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
737 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
JavaScript 前端开发 关系型数据库
|
9月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
424 1
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
794 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
712 7
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面