win10上一个详细的Django开发入门例子

1.Django概述

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。

Django 框架的核心组件有:

用于创建模型的对象关系映射;
为最终用户设计较好的管理界面;
URL 设计;
设计者友好的模板语言;
缓存系统。

img

Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。

MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图 。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:

在这里插入图片描述

在这里插入图片描述

2.Django项目环境搭建

搭建Django开发环境,主要有以下六个步骤
2.1创建并激活虚拟环境

cd D:\miniconda3311231001\Scripts
D:\miniconda3311231001\Scripts\activate.bat
#自己创建空文件夹存放项目
cd E:\1\Joie_1_busi_GM_SuperCar\proj_Django_HelloWorld 
e:
#创建虚拟环境
python -m venv djangoenv 

图片

图片

运行以下命令,激活虚拟环境

cd E:\1\Joie_1_busi_GM_SuperCar\proj_Django_HelloWorld
e:
djangoenv\Scripts\activate #激活虚拟环境

2.2安装django模块

#1激活虚拟环境
cd E:\1\Joie_1_busi_GM_SuperCar\proj_Django_HelloWorld
e:
djangoenv\Scripts\activate
#2安装django模块
python -m pip install --upgrade  -i https://pypi.tuna.tsinghua.edu.cn/simple
#python -m pip  config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#激活虚拟环境后安装Django模块
python -m pip install Django -i https://pypi.tuna.tsinghua.edu.cn/simple

上述命令执行后,会把Django模块,安装到了djangoenv/Lib/site-packages 下,也就是说,此Django模块仅仅在虚拟环境中,而不是安装在Python全 局环境。目录如下图所示

在这里插入图片描述

在这里插入图片描述
2.3创建Django项目

安装了Django之后,我们就可以使用Django的管理工具------>django-admin了

我们创建一个名称为loginweb的Django项目,命令如下:

#1激活虚拟环境
cd  E:\1\Joie_1_busi_GM_SuperCar\proj_Django_HelloWorld
e:
djangoenv\Scripts\activate
#2创建一个loginweb的项目
django-admin startproject loginweb
或者
python -m django startproject loginweb

此命令执行后,会在djenv的同级目录,创建一个名称loginweb的Django 项目。目录结构如下图所示:

在这里插入图片描述

在这里插入图片描述

用Pycharm打开项目,项目结构文件含义如下:

外层的loginweb目录:是项目的容器,Django不关心它的名字,我 们可以将它重命名为任何我们喜欢的名字

里面的loginweb目录:它是一个纯python包。我们可以称呼它为项目的名称,不能随意重命名

manage.py :它是Django的一个非常重要的工具,通过它可以调用 django shell和数据库等,如:创建app应用程序、创建数据库表、清 空数据、启动项目等操作

settings.py :Django 项目的配置文件。包含了项目的默认设置,包 括数据库信息,调试标志以及其他一些工作的变量

urls.py :Django 项目的URL路由声明,负责把URL模式映射到应用 程序

wsgi.py:Web服务器网关接口(Python Web Server Gateway Interface的缩写),Python应用和Web服务器之间的一种接口,可以 看成是一种协议、规范。它是基于Http协议的,不支持WebSoket

asgi.py:异步网关协议接口,能够处理多种通用的协议类型,包括 HTTP,HTTP2和WebSocket,可以看成ASGI是WSGI的扩展

3.Django开发登录功能

3.1创建app应用程序

一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用) 下面我们为loginweb项目,创建login

#1激活虚拟环境
cd E:\1\Joie_1_busi_GM_SuperCar\proj_Django_HelloWorld
djangoenv\Scripts\activate
#2切到django项目中
cd loginweb
#3创建一个叫login的应用
django-admin startapp login

在这里插入图片描述

上述命令执行后,目录结构如下图所示

在这里插入图片描述

图片

图片3.2注册app

app应用程序创建以后,必须把app注册到Django,才能够被Django项目所管理。我们只需要把login应用的名称,配置到 loginweb/settings.py文件中即可。如下图所示:

图片

图片
3.3Django视图

Django视图的作用:用于接受Web请求并且返回Web响应的简单Python 函数。该函数一般定义在各自应用的views.py文件中。在视图函数中,有 两个重要的对象:请求对象和响应对象。

下面是一个最简单的视图函数:

# 例:在login/views.py 中
from django.http import HttpResponse
# Create your views here.
 
def login(request):
  return HttpResponse("登录页面")

其中:request参数为必填参数,代表用户的请求,它是HttpRequest对象
3.4Django路由

Django的路由定义文件为:项目目录urls.py文件。我们所有的路由配置,都以列表的方式,定义在urls.py文件中,添加我们想要的路由

# 例:在loginweb/urls.py 中
from django.contrib import admin
from django.urls import path
from login import views
urlpatterns = [
   path("admin/", admin.site.urls),
   path("login/",views.login)
]

3.5启动Django项目

在开发环境下,我们需要在本地启动Django项目,来开发与调试我们的代 码。启动Django项目命令如下:

python manage.py runserver [port]
#[port] 为应用访问端口,可以缺省不写,默认为8000。

此时,我们就可以用浏览器访问我们的项目了。结果如下图所示

图片

图片

访问我们写好的路由

图片

图片
3.6登录功能改良

在login底下新写建一个templates目录,存放编写的html前端页面

图片

图片

login.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>登录页面</title>
   <style>
       body{
       text-align:center;
      }
   </style>
</head>
<body>
<form action="/login/" method="post">
  {% csrf_token %}
   <h1 align="center">登录页面</h1>
   <p class="divs">
       <label for="username">用户名:</label>
       <input type="text" id="username" name="username" align="center">
   </p>
   <p class="divs">
       &nbsp&nbsp&nbsp<label for="password">密码:</label>
       <input type="password" id="password" name="password">
   </p>
   <input type="submit" value="登录">
   <span style="color:red">{{ error }}</span>
</form>



index.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>这里是主页</title>
   <style>
       h1 { color:red }
   </style>
</head>
<body>
   <h1>这里是主页</h1>
</body>
</html>

修改视图函数

from django.shortcuts import render,redirect
# Create your views here.
 
def login(request):
  if request.method == 'POST':
     username = request.POST.get('username')
     passowrd = request.POST.get('password')
     if username=='songqin' and passowrd =='123456':
        return redirect('/index')
     else:
        return render(request,'login.html',{"error":"用户名或密码错误"})
 
  return render(request,'login.html')
 
def index(request):
  return render(request,'index.html')

修改loginweb/urls.py

from django.contrib import admin
from django.urls import path
from login import views
urlpatterns = [
   path("admin/", admin.site.urls),
   path("login/",views.login),
   path("index/",views.index)
]

再次启动Django项目

python manage.py runserver [port]
#[port] 为应用访问端口,可以缺省不写,默认为8000。

访问http://127.0.0.1:8000/login/项目

在这里插入图片描述

在这里插入图片描述

输入不是用户名密码是songqin/123456

在这里插入图片描述

在这里插入图片描述

输入songqin/123456点击登录 跳转到主页面

图片
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云倚天云服务器详解_CPU采用倚天710处理器

阿里云倚天云服务器CPU采用倚天710处理器&#xff0c;租用倚天服务器c8y、g8y和r8y可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持&#xff1a; 阿里云倚天云服务…

c# wpf LiveCharts MVVM绑定 简单试验

1.概要 c# wpf LiveCharts MVVM绑定 简单试验 2.代码 <Window x:Class"WpfApp3.Window3"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://s…

gitea简单介绍

Gitea是一个轻量级的开源自托管Git服务&#xff0c;提供了类似GitHub的功能和界面。它是一个简单、易于安装和使用的Git代码托管解决方案&#xff0c;适用于个人、小型团队和企业。 Gitea的主要特点如下&#xff1a; 自托管&#xff1a;Gitea允许在自己的服务器上搭建和管理…

web安全学习笔记(6)

记一下第十节课的内容。 一.PHP语言中的if else判断 语法和c语言中非常类似&#xff0c;不再赘述&#xff0c;也可以使用if...elseif...elseif...else 1.True和False 2.&#xff0c;和 一个等号是赋值 两个等号是比较 三个等号是全等&#xff08;内容相等&#xff0c;数…

调用阿里云API接口实现电商领域命名实体识别NER

文章目录 阿里云简介命名实体识别NER阿里云API注册调用代码阿里云简介 阿里云是全球领先的云计算及人工智能科技公司,成立于2009年,为200多个国家和地区的企业、开发者和政府机构提供服务。阿里云提供了一系列的云计算服务,包括服务器租赁、云数据库、云存储、人工智能等,…

pytest的时候输出一个F后面跟很多绿色的点解读

使用pytest来测试pyramid和kotti项目&#xff0c;在kotti项目测试的时候&#xff0c;输出一个F后面跟很多绿色的点&#xff0c;是什么意思呢&#xff1f; 原来在使用pytest进行测试时&#xff0c;输出中的“F”代表一个失败的测试&#xff08;Failed&#xff09;&#xff0c;而…

自动驾驶中的交通标志识别原理及应用

自动驾驶中的交通标志识别原理及应用 附赠自动驾驶学习资料和量产经验&#xff1a;链接 概述 道路交通标志和标线时引导道路使用者有秩序使用道路&#xff0c;以促进道路行车安全&#xff0c;而在驾驶辅助系统中对交通标志的识别则可以不间断的为整车控制提供相应的帮助。比如…

Yalmip使用教程(7)-求解器的参数设置

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 这篇博客将详细介绍yalmip工具箱中常用的求解器设置选项。 1.求解器的基本设置 使用sdpsettings函数可以对求解的相关参数进行设置。最常用的设置…

【操作系统】STM32-操作系统——持续更新

【操作系统】STM32-操作系统——持续更新 文章目录 前言一、ucosii二、freertos1.介绍2.移植 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ucosii UCOSII移植到STM32F103C8T6上之移植记录&#xff08;一&#xff09; UCOSII移植到ST…

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年&#xff0c;35M带宽&#xff0c;配置为&#xff1a;16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京&#xff0c;京东云活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云16核64G云服务器…

通用爬虫的概念简述

一、&#x1f308;什么是通用爬虫 通用爬虫&#xff08;General Purpose Web Crawler或Scalable Web Crawler&#xff09;是一种网络爬虫&#xff0c;其设计目标是对整个互联网或尽可能广泛的网络空间进行数据抓取。通用爬虫主要用于搜索引擎构建其庞大的网页索引数据库&#…

LaTeX 空格与换行

任意多个空格与一个空格的功能相同。只有字符后面的空格是有效的&#xff0c;每行最前面的空格被忽略。单个换行被视作一个空格&#xff0c;连续两个换行表示分段。~被称作一种不可打断的空格&#xff0c;排版系统不会在这种空格之间换行。西文的逗号、句号和分号等标点后面应该…

二分查找 -- 力扣(LeetCode)第704题

题目 https://leetcode.cn/problems/binary-search/description/ 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例…

【毕业论文】酒店价格采集与可视化查询设计与实现开题报告2000字

酒店价格采集与可视化查询设计与实现开题报告 研究背景 随着互联网技术的飞速发展&#xff0c;人们获取信息的途径越来越多样化。特别是在旅游行业中&#xff0c;消费者对于酒店价格的透明度和实时性要求越来越高。美团、大众点评、抖音等平台作为信息聚合和分享的重要渠道&a…

SpringMVC框架简介

前言 现在由于功能以及业务的复杂性&#xff0c;大部分系统从技术上就拆分开为前后端分离&#xff0c;单体应用我都很少没接触了&#xff0c;导致现在对springMVC那套都忘记了很多东西&#xff0c;因此这篇文章在来回忆一下SpringMVC这个框架&#xff1b;很多时候因为业务的需…

SQL语言

一、DDL数据库定义语言 1、登录mySQL mysql -u"用户名" -p"密码" -h"登录地址 -h&#xff1a;默认为本机 示例&#xff1a; 2、查看当前存在的数据库 show databases; 示例&#xff1a; 3、创建数据库database create…

Jenkins (五) - Docker SonarQube

Jenkins (五) - Docker SonarQube Jenkins 集成 SonarQube&#xff0c;编译项目并通过SonarQube分析项目 前提 基于已有的环境 Jenkins (四) - Docker SonarQube 基于 Jenkins (三) - 拉取编译 上的mockito-demo工程 配置工程 Administration -> Projects -> Manage…

Java数据结构队列

队列(Queue) 概念 队列的使用 注意&#xff1a;Queue是个接口&#xff0c;在实例化时必须实例化LinkedList的对象&#xff0c;因为LinkedList实现了Queue接口。 import java.util.LinkedList; import java.util.Queue;public class Test {public static void main(String[]…

使用GPT需要注意的事项

GPT出来之后&#xff0c;基本就告别浏览器搜索问题答案了。将问题原封不动的copy给GPT基本可以得到解答。 但是这个也有弊端&#xff0c;那就是太依赖GPT了。 1&#xff0c;使用GPT需要更强的专业知识&#xff1a;除了能问对问题&#xff0c;还要具备识别GPT&q…

VPDN(L2TP、PPTP)

1、虚拟专用拨号网络 远程接入VPN&#xff0c;客户端可以是PC机 技术&#xff1a;L2TP、PPTP 术语&#xff1a;LAC&#xff1a;L2TP的访问集中器 --- 提供用户的接入 LNS&#xff1a;L2TP的网络服务器 --- 提供L2TP服务的服务器 2、技术 1&#xff09;PPTP 点对点隧道…