【python后端】- 初识Django框架

Django入门

😄生命不息,写作不止
🔥 继续踏上学习之路,学之分享笔记
👊 总有一天我也能像各位大佬一样
🌝分享学习心得,欢迎指正,大家一起学习成长!

在这里插入图片描述

文章目录

  • Django入门
    • 前言
    • 简介
    • 创建Django项目
      • 命令安装
      • PyCharm创建项目
        • 项目架构
        • 创建简单的demo
    • 简单的登陆功能
    • 总结

前言

身为Java开发的程序员,对于python后端产生了一股好奇心,所以就来学习一下python的后端框架-Django。

简介

Django 是一个用于构建 Web 应用程序的高级 Python web 框架。它提供了许多开箱即用的功能,使得开发者可以更快速地建立功能强大、可扩展的 Web 应用。
Django 遵循 MVC(Model-View-Controller)架构模式的变种,被称为 MTV(Model-Template-View)。其模式将应用程序分成了三种:

  • Model(模型): 负责定义数据结构和数据库操作。
  • Template(模板): 负责定义用户界面的呈现方式。
  • View(视图): 处理用户请求,与模型交互,并将数据传递给模板进行渲染。

Django 提供了强大的 ORM,允许开发者使用 Python 代码而不是 SQL 查询来操作数据库。这使得数据库的操作更加简单,同时提高了应用程序的可移植性。
Django 自动生成管理后台,开发者可以轻松管理数据库记录,而不必手动创建管理界面。这对于开发过程中的数据管理和调试非常有帮助。
Django 使用模板引擎来生成 HTML 动态内容。模板引擎允许开发者将 Python 代码嵌入到 HTML 中,使得页面的构建更加灵活。

创建Django项目

创建项目可以通过命令区安装,也可以是通过PyCharm快捷的方式直接创建。

命令安装

django-admin startproject mysite
  • django-admin:内部命令
  • startproject:参数
  • mysite:项目名

PyCharm创建项目

本文主要是通过pycharm来创建django项目。
image.png
创建好的目录如下图,会创建一个模块video
image.png

项目架构

首先我们先来了解以下项目架构

djangoProject/
|-- djangoProject/
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- video/
|   |-- __init__.py
|   |-- admin.py
|   |-- apps.py
|   |-- migrations/
|   |   |-- __init__.py
|   |-- models.py
|   |-- tests.py
|   |-- views.py
|-- manage.py

这里解释一下各个文件的作用:

  • your_project/: 项目的根目录。
    • init.py: 表明该目录是一个 Python 包。
    • asgi.py: ASGI 服务器的入口文件,配置 ASGI 应用程序。
    • settings.py: 项目的设置,包括数据库配置、静态文件设置等。
    • urls.py: 定义项目的 URL 映射。
    • wsgi.py: WSGI 服务器的入口文件,用于配置 WSGI 应用程序。
  • video/: 一个应用程序的目录。
    • init.py: 表明该目录是一个 Python 包。
    • admin.py: 管理后台配置。
    • apps.py: 应用程序的配置。
    • migrations/: 数据库迁移文件的存放目录。
    • models.py: 定义应用程序的数据模型。
    • tests.py: 编写应用程序的测试。
    • views.py: 定义应用程序的视图。
  • manage.py: Django 项目的管理工具,用于执行各种命令,如运行开发服务器、执行数据库迁移等。
创建简单的demo

首先需要在应用中编写请求的视图->views.py,定义了一个get_test的方法,并且打印了一行中文,返回的是HttpResponse。

def get_test(request):print('第一个测试')return HttpResponse('Hello Django')

因为我在创建项目的时候就已经创建了这个子应用,如果需要创建子应用的话,可以通过命令来创建python manage.py startapp new_app,并且需要在setting.py中进行配置

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles', 'new_app' # 子应用必须配置,否则不起作用
]

所以这边就可以跳过在此处配置。然后在urls.py中配置对应的路由,本次引入了get_test的方法,设置路由路径为test/

from django.contrib import admin
from django.urls import path
from video.views import get_testurlpatterns = [path('admin/', admin.site.urls),path('test/', get_test),
]

启动运行

python manage.py runserver

出现的是页面未找到
image.png
访问http://127.0.0.1:8000/test/ 就能够看到刚刚输出的语句。
image.png

简单的登陆功能

这里我新创建了一个应用,来做个简单的登录功能。
首先python manage.py startapp user创建了一个user的应用。然后在setting.py中配置这个应用。

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','video.apps.VideoConfig','user.apps.UserConfig'
]

在views.py中定义登录界面,因为django是可以使用模板引擎来生成 HTML 动态内容。模板引擎允许开发者将 Python 代码嵌入到 HTML 中。

from django.http import HttpResponse
from django.shortcuts import render# Create your views here.
def login_form(request):html = '''<html><body><form method="post">用户名:<input name = "username" type="text"></input></br>密码:<input name = "password" type = "password"></input></br><input type="submit" value="登录"></input></form></body></html>'''return HttpResponse(html)

接着在urls.py中配置路由

urlpatterns = [path('admin/', admin.site.urls),path('test/', get_test),path('login/', login_form),
]

运行之后,访问login就能够看到登录的ui
image.png

总结

总体而言,Django 是一个功能强大、易用且高度可定制的 Web 框架,适用于构建各种规模的 Web 应用程序。因为初次学习,对于django框架还是停在会创建简单的demo,也正如以前刚接触springboot一样,对于有些内容既好奇又疑惑。不过我相信,慢慢的学习,最终都会搞定的。

👍创作不易,如有错误请指正,感谢观看!记得点赞哦!👍

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

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

相关文章

Programming Abstractions in C阅读笔记:p196

《Programming Abstractions in C》学习第63天&#xff0c;p196总结。涉及到编程之外的知识&#xff0c;依然是读起来很费劲&#xff0c;需要了解作者在书中提到的人物(Edouard Lucas)、地点(Benares)、神话传说(Brahma)等等。虽然深知自己做不到对人文知识&#xff0c;历史知识…

从0到0.01入门React | 009.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

19 - 如何用协程来优化多线程业务?

近几年&#xff0c;国内很多互联网公司开始使用或转型 Go 语言&#xff0c;其中一个很重要的原因就是 Go 语言优越的性能表现&#xff0c;而这个优势与 Go 实现的轻量级线程 Goroutines&#xff08;协程 Coroutine&#xff09;不无关系。那么 Go 协程的实现与 Java 线程的实现有…

vue离线地图(瓦片)

最近公司要弄一个这样的离线地图&#xff0c;要求在图上打点画线之类的。折腾了几天&#xff0c;学习了三种方式&#xff1a; 1.拿到各省市区的经纬度json&#xff0c;通过echarts来制作&#xff0c;再套一个卫星图的地图背景 2.下载地图瓦片&#xff0c;再通过百度/高德的离线…

OpenGL_Learn11(光照)

目录 1. 光照 2. 环境光照 3. 漫反射光照 4. 代码实战 1. 光照 在OpenGL中主要分以下几个光照类型 环境光照(Ambient Lighting)&#xff1a;即使在黑暗的情况下&#xff0c;世界上通常也仍然有一些光亮&#xff08;月亮、远处的光&#xff09;&#xff0c;所以物体几乎永远不…

mac homebrew.mxcl.php@5.6.plist

今天启动php5.6时 遇到了一个问题 servers % brew services start php5.6 Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors. Error: Failure while executing; /bin/launchctl bootstrap gui/501 /Users/ssh/Library/LaunchAge…

部分背包问题【贪心算法】

部分背包问题是一种经典的贪心问题&#xff0c;物品可以取一部分&#xff0c;也就是可以随意拆分的物品。 算法思路&#xff1a; 用列表保存每个物品的价值及总重量、平均价值&#xff08;性价比&#xff09;。输入数据同时计算每种物品的平均价值。使用自定义的compare函数以…

【数据结构】堆(Heap):堆的实现、堆排序、TOP-K问题

目录 堆的概念及结构 ​编辑 堆的实现 实现堆的接口 堆的初始化 堆的打印 堆的销毁 获取最顶的根数据 交换 堆的插入&#xff08;插入最后&#xff09; 向上调整&#xff08;这次用的是小堆&#xff09; 堆的删除&#xff08;删除根&#xff09; 向下调整&#xff08;这次用的…

Redis05-集群方案

目录 Redis集群方案 主从复制 主从复制的基本原理 主从复制的工作流程 乐观复制 主从复制的优势 哨兵机制 哨兵的关键作用 服务状态监控 哨兵选举Master规则 分片集群 分片集群中的数据读写 数据写入 数据读取 一致性哈希和客户端分片 Redis集群方案 微服务时代…

从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景

文章目录 BIO优缺点示例代码 NIO优缺点示例代码 AIO优缺点示例代码 总结 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 BIO、NIO和AIO是Java编程语言中用于处理输入输出&#xff08;IO…

iOS OpenGL ES3.0入门实践

一、效果图 入门实践&#xff0c;做的东西比较简单&#xff0c;效果如下&#xff1a; 二、关于顶点坐标和纹理坐标 绘制图片需要设置顶点坐标和纹理坐标并加载像素数据&#xff0c;之所以要指定两组坐标是因为纹理和顶点使用不同的坐标系&#xff0c;就是告诉OpenGL&#xf…

GZ038 物联网应用开发赛题第3套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 &#xff08;第3套卷&#xff09; 工位号&#xff1a;______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具&#xff0c;操作安全规范&#xff1b; 2、竞赛过程中如有异议&#xff0c;可向现场考评…