Django学习第一天记录

news2024/11/17 9:57:52

1.安装Django(Windows环境)

首先需要确定系统中存在python环境,当前,本机的python环境为python 3.6.6,可以使用命令python --version进行查看。
在这里插入图片描述
在python环境成功搭建的基础上,我们使用命令pip install django即可进行django环境的安装和部署。

2.部署第一个django项目

在成功使用pip安装django包后,系统中会出现一个django-admin的命令。可以在cmd中尝试输入django-admin查看是否能够找到该命令。
在这里插入图片描述
在django-admin命令能够成功运行时,我们可以使用

django-admin startproject [项目名称]

来新建我们第一个django项目。
在这里,我们使用

django-admin startproject demo1

进行第一个项目的创建测试。
运行该创建项目的命令后,可以发现我们在当前木下能够多出一个Demo1的目录,该目录就是项目的路径。
在这里插入图片描述

3.django项目的目录结构

以创建的Demo1项目为例,
一级目录下:在这里插入图片描述
二级目录Demo1下:
在这里插入图片描述

4.启动Django服务(Dev阶段)

(1)进入项目目录。

Cd Demo1

(2)启动django服务。

Python manage.py runserver [端口号]

如果在runserver后指定了端口号,则目标端口号就会打开,HTTP请求可以发送到目标端口号。
在这里插入图片描述
通过打开的命令,可以发现,在倒数第三行,有一行提醒,当前的Django版本号为3.2.16,且当前使用的配置文件为Demo1.settings,因此后续对django项目的配置文件的设置可以通过对Demo1.settings的修改作为对目标Demo的配置的修改。

(3)打开浏览器访问本地目标端口。
在这里插入图片描述
出现该页面,则意味着django服务成功启动。
这种启动方式建议只在测试开发中进行使用。
在该测试页面中,下方存在三个可选项,特别是右边第一个Django Document,如果点击将会直接跳转到django的官网,其中有django的官方文档。并提供了django的一些轻量化演示站点和社区的反馈渠道。
当第一次启动django的时候,将会出现一个新的文件。Db.sqlite3,该文件是一个数据库文件。
在这里插入图片描述

5.尝试更换Django的端口号

Control + C命令强制退出8080端口的监听,并使用命令

Python manager.py runserver 5000

监听本地5000号端口。可以看到当前已经成功监听到了5000端口。
在这里插入图片描述
可以看到环境已经成功的进行搭建。
在这里插入图片描述
使用命令

netstat -anot | findstr “5000”

可以查看当前端口的开放情况。

在这里插入图片描述

6.关闭django服务

1.如前所述,在命令行使用control+c强制退出该程序。
2.Windows下使用taskkill /F /IM [程序名]强制杀死该程序

在这里插入图片描述
如果在linux环境下,使用lsof -i:5000即可查询到该端口的占用程序,并使用kill -9 [进程号] 来强制杀死该进程,思路和windows上的操作是相同的。

运行完该命令后,可以发现当前django服务已经无法访问。

在这里插入图片描述

7.Django中的manage.py的使用

1.python manage.py runserver 启动服务
2.Python manage.py startapp 创建应用
3.Python manage.py migrate 数据库迁移


在这里插入图片描述

通过该方法,可以发现自动的列出了执行命令。这些命令在使用过程中将会逐渐的熟练。
因此,manage.py也是django项目的核心入口。
在当前manage.py的所在目录中,有一个和manage.py的平级的目录。

init.py,是python包的初始化文件
Wsgi.py 是web服务网关的配置文件。Django正式启动的时候需要用到。
Urls.py是路由文件。作为项目的主路由配置。
Settings.py是项目的配置文件,包含项目启动时需要的配置。

8.通过修改settings.py针对django启动项目所需的配置

1.Settings.py 包含了Django项目启动所需要的所有的配置项。
2.配置项分为公有配置和自定义配置。
3.配置项的格式为BASE_DIR=’xxxx’
4.公有配置 - Django官方提供的基础配置。

分析配置文件,可以通过:

BASE_DIR = Path(_file_).resolve().parent.parent

BASE_DIR得到的是项目的解决路径。

django setting.py中的SECRET_KEY

当您使用 创建一个新的 Django 项目startproject时,该 settings.py文件会自动生成并获取一个随机 SECRET_KEY值。该值是保护签名数据的关键——确保其安全至关重要,否则攻击者可以使用它来生成自己的签名值。
SECRET_KEY,用于提供加密签名,并且应该设置为唯一的、不可预测的值。
警告: 使用公开的的SECRET_KEY 运行Django会击败Django的许多安全保护,并可能导致特权升级和远程代码执行漏洞。 因此,SECRET_KEY 不能泄漏!

django setting.py中的Debug

Debug只有两个取值,一个为True,一个为False。
当Debug为True时,意味着当前系统状态为Debug调试模式,访问浏览器会出现友好的提示界面,并显示当前系统的一些报错信息等敏感信息。
如果Debug为False时,则意味着当前系统为正式运行的模式,则需要对ALLOWED_HOSTS进行配置。否则,在runserver的时候会出现报错,服务将无法正常的进行启动。
ALLOWED_HOST是一个python中的list,ALLOWED_HOST是一个白名单,意味着当前项目所绑定的域名、ip地址,如果用户访问的ip地址和域名不在白名单内,则用户将无法访问该web服务。因此,在本地测试的时候,如果debug设置成了False,ALLOWED_HOST中的内容可以设置成 ALLOWED_HOST=[“127.0.0.1”]

特点1:当Debug为True时,系统状态为调试模式,则当前编写的代码将会立即生效,系统会自动的检测代码的改动状态。
特点2:当Debug为True时,浏览器访问某个地址的时候,如果代码出现问题,则会提供一个有助于我们排错的报错页面,报错页面中的信息量极大,有利于开发人员进行Debug。
例如目标访问的页面存在404
在这里插入图片描述

对于ALLOWED_HOST的补充

如果局域网中的其他主机想要访问本机提供的服务,需要在manager.py runserver的时候指定监听的host为0.0.0.0,即,如果需要监听8000端口,则运行时的命令为python manager.py runserver 0.0.0.0:8000,并且在ALLOWED_HOST中需要绑定当前机器的ip地址。
那么局域网中其他主机对当前服务进行访问的时候,http请求中的host值将会和allowed_host中的白名单的值相对应,局域网中的其他主机也就能访问当前机器开放的django服务了。
例如:在这里插入图片描述

出现了报错。
在这里插入图片描述配置ALLOWED_HOST配置本机的ip地址。
ALLOWED_HOST=[“192.168.124.8”]
可以发现没有报错信息了,成功的进行了访问。
在这里插入图片描述

ROOT_URLCONF的配置

主路由文件的指定。

LANGUAGE_CODE的配置

主要是针对语言进行管理。
例如LANGUAGE_CODE改为zh-Hans
在这里插入图片描述

TIME_ZOME的配置

中国的时区为UTC+8

在SETTINGS.PY中,只要符合命名规范,也可以进行个性化配置。需要避开官方配置。
引入方法:from django.conf import settings

9.URL和视图函数。

Url,格式为:

protocol://hostname:[:port]/path[?query][#fragment]

关于url请求的处理。
1.Django从配置文件中根据ROOT_URLCONF找到主路由文件,默认情况下,该文件在项目名称相同的目录下的urls.
2.Django加载主路由文件下的urlpattern变量,这个变量是一个包含很多路由的数组
3.依次匹配这个变量中的path。如果匹配到了就停止匹配,有且匹配第一个匹配到的。
4.匹配成功则进行相应的处理,返回相应信息,如果没有匹配到,那么就会返回404相应。

在urls.py文件中,urlpattern的数组中,使用Path函数进行增加路由,第一个参数为需要匹配的路径,第二个参数为视图函数。

视图函数

视图函数主要的作用就是用于接受http请求,并响应给浏览器。

语法:

def xxx_views(request,[其他参数...]):
	Return HttpResponse对象.

第一个参数需要为request请求,也就是http请求,而返回信息一定是HTTP的response,所以视图函数的主要作用就是根据业务逻辑返回相应的响应内容给浏览器。
其他参数可以视选择进行传入,一般为GET和POST或得到的数据。也可以是FILE文件流信息。

可以在项目同级文件夹下,建立一个views.py(习惯化,写作virews),例如:

from django.http import *
def page_view(request):
	Html = “HELLO,WORLD”;
	Return HttpResponse(Html);

在完成视图函数后,可以在urls.py文件中,在urlpatterns列表中,增加路由和视图函数的绑定规则,例如

Urlpatterns = [
	Path(‘admin’,admin.site.urls),
	Path(‘page/test/,views.page_view)
]

通过这种方法,page_view就和views成功的进行了绑定。
这样,当我们访问浏览器的时候,就可以拿到我们视图函数中定义的返回信息。
在这里插入图片描述
因此,用户的请求path可以被django的主路由文件进行自动的处理,并返回给服务器的后端处理,处理后使用HttpResponse返回给浏览器,并得以展示。

10.关于Path函数

关于path()函数
导入 -

from django.urls import path

语法 -

path(route,views,name=None)

参数1:
1.route:字符串类型,匹配对应的请求路径。(最优匹配)
2.Views:指定路径所对应的视图处理的函数的名称
3.Name:为地址起别名,在模板中地址反向解析时进行使用。避免因为route参数的字符串长度太长时,在反向解析是过于复杂,使用了该别名进行处理。
特别情况:如果需要增加的路由规则过多,则需要使用path转换器。

语法:<转换器类型:自定义名>
作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。
例子:

path(‘page/<int:page>’,views.xxx)

转换器类型:
1.str,匹配除了’/’以外的非空字符串
2.int,匹配0或者任何正整数。返回一个int
3.slug,匹配任意由ascii字母或者数字以及连字符和下划线的短标签。
4.path,匹配非空字段,包含路径分隔符’/’

那么,为了实现例子展示的效果,则可以使用如下代码在views.py中进行实现。

def page(request,page):
   	html = page
    return HttpResponse(html)

虽然例子中,转换器类型可以为str、path、slug,但是如果转换器类型为int时,语义最为精确,因此此处最好使用最精确的语义对我们需要描述的路由规则进行描述。
在常规使用过程中,str、int两种转换器类型最为常见。

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

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

相关文章

虚拟现实解决方案,实现 VR 数智机房

如今&#xff0c;虚拟现实技术作为连接虚拟世界和现实世界的桥梁&#xff0c;正加速各领域应用形成新场景、新模式、新业态。 图扑软件基于自研可视化引擎 HT for Web 搭建的 VR 数据中心机房&#xff0c;是将数据中心的运营搬到 VR 虚拟场景。以数据中心实际场景为基础&#…

Chaos Vantage这款渲染器有多强,一起来了解一下

Chaos Vantage 是最老牌渲染器之一的VRay开发公司Chaos新开发的一款实时GPU渲染引擎&#xff0c;以前的名字是Project Lavina&#xff0c;首次在Siggraph 2018上作为技术预览展示&#xff0c;官方定位是“在完全光线追踪环境中探索大型3D场景的工具”。 与其他实时渲染解决方案…

头戴式耳机适不适合跑步、分享几款最适合跑步的耳机

激情的运动和美妙的音乐毫无疑问是绝妙的搭配&#xff0c;几乎每天都驰骋在田径场上的我&#xff0c;一直非常关注运动耳机&#xff0c;也有不少朋友找我推荐运动耳机。运动耳机的选择有很多&#xff0c;但是极度靠谱的产品却是真的很少&#xff01;如果你也不希望你在选购运动…

双十二大家都在买哪些书?这份书单请码住

双十二来啦&#xff0c;这一天也在提醒着我们这一年就要结束了。虽然距离上次买买买才过去不久&#xff0c;但是想读的书却在时刻增加。 这个双十二&#xff0c;依旧给大家推荐好书&#xff0c;根据近期搜索人气、销量排行、读者口碑整理了“计算机新书”“2022最受欢迎图书”“…

C#+SqlServer超市管理系统的设计与实现

目 录 1引言 1 1.1课题研究内容 1 2系统需求分析 1 2.1系统模块构建 1 2.1.1系统整体结构功能模块 1 2.1.2前、后台功能模块 2 3 数据库设计 3 3.1 E-R图和关系图 3 3.2数据库表设计 4 4系统实现 7 4.1 前台模块 7 4.2 后台模块 14 5 结果测试 24 5.1前台模块的测试 24 5.2后台…

教你制作GIF表情包,逐帧动画制作

我们经常看到很多著名的电影场景都被制作成GIF动画&#xff0c;非常有趣。下面2分钟教你制作GIF表情包&#xff0c;方法很简单&#xff0c;一起来学习吧&#xff01; 方法一&#xff1a;手机制作GIF 我们来看看如何在手机上制作GIF&#xff0c;您需要使用刷新视频编辑工具。打开…

南方农机杂志南方农机杂志社南方农机编辑部2022年第24期目录

南方论坛《南方农机》投稿&#xff1a;cnqikantg126.com 基于物联网的食用菌日光温室终端控制研究 崔玉萍;席雪琴; 8-1016 基于颜色统计的水果采摘机器人水果识别的研究 夏康利;何强; 11-16 基于MATLAB/GUI双作用椭圆轨道滚柱泵人机界面设计 陈舰; 17-20 电动自…

nodejs 引用 canvas报错:without installing the canvas npm package

Error: Not implemented:HTMLCanvasElement. prototype.getContext(without installing the canvas npm package) 试了node 14.19.1 和 node 16.15.0 两个版本的都不行&#xff0c;即使是npm install canvas 成功了&#xff0c;运行也会报错&#xff0c;困扰了好久&#xff0c;…

【Python百日进阶-数据分析】Day125 - plotly.express.scatter():散点图

文章目录一、散点图语法二、参数三、返回类型四、示例4.1 array_like 对象4.2 DataFrame 列4.3 使用列名设置大小和颜色4.4 颜色可以是连续的&#xff0c;也可以是离散的/分类的。4.5 所述symbol参数可以被映射到的列&#xff0c;可以使用多种符号。4.6 Dash 中的散点图4.7 散点…

零基础转行学python有必要去培训机构吗

Python语言&#xff0c;以其简单易学成为不少人学习编程语言的新方向。而市面上也出来了各种各样的python培训机构&#xff0c;不少人就有疑惑了&#xff0c;既然python语言简单易学&#xff0c;那么还有必要去培训机构系统学习吗&#xff1f;知了堂认为&#xff0c;如果你是想…

人工智能:声纹识别技术介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

使用gitee将本地资源上传

在编程时&#xff0c;写好本地文件以后我们可以使用gitee将写的东西上传到gitee官网上分享或者让我们自己可以随时查看&#xff0c;首先&#xff0c;我们需要下载git这个软件&#xff0c;在这里推荐使用电脑管家里面的软件管理下载 &#xff0c;软件图标如下&#xff1a; 1.生成…

自定义RBAC(4)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 前面把RBAC的权限系统设计过程都讲清楚了&#xff0c;现在就来实现它。大致分这么几个步骤&#xff1a; 1、先定义出完整的权限系统表结构&#xff1b; 2、实现…

Sqlite 数据库操作(二)—— Sqlite常用API 及其使用方法

要使用sqlite数据库的API&#xff0c;需要满足两个条件&#xff1a; 安装sqlite3函数库 —— 终端输入 sudo apt-get install libsqlite3-dev 在程序中引入头文件 sqlite3.h —— #include <sqlite3.h>gcc编译时链接 sqlite3动态库 …

atompark:外贸工具-Atomic 6合一系列产品-Crack

Atomic Studio 邮件发件人Atomic Mail Sender 我们最畅销的电子邮件活动工具 邮件发件人 群发邮件发件人 使用我们内置的 SMTP 或您自己的&#xff01; 按姓名称呼收件人 移除退订者 电子邮件猎手 发现网站上的电子邮件地址 按关键字搜索 执行高速和准确的搜索 邮件验证器 …

Synchronized原理

Synchronized原理一、基本特点二、加锁工作过程 (锁升级/锁膨胀)2.1 偏向锁2.2 轻量级锁2.3 重量级锁三、锁消除四、锁粗化五、总结一、基本特点 结合锁策略&#xff0c;我们就可以总结出 Synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁, 如果锁冲突…

数据结构.数组

数据结构.数组1.数组的概念和特点2.数组的定义和初始化3.数组的遍历4.数组的基本操作&#xff08;不多说 注解很详细&#xff09;5.操作的时间复杂度1.数组的概念和特点 数组就是一种容器&#xff08;装数据的&#xff09;&#xff0c;用来存储相同类型的数据值。 数组的特点…

RRT_star MATLAB

colormap 函数 创建栅格地图 clc clear close all%% 构建颜色MAP图 cmap [1 1 1; ... % 1-白色-空地0 0 0; ... % 2-黑色-静态障碍1 0 0; ... % 3-红色-动态障碍1 1 0;... % 4-黄色-起始点 1 0 1;... % 5-品红-目标点0 1 0…

Canal同步mysql binlog至pulsar

Canal 一、简介 canal [kə’nl]&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 基于日志增量订阅和消费的业务包括 数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处…

【数据结构】队列(链式队列)

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《数据结构》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 队列的结构和概念&#xff1a; Queue.h文件 Queue.c文件 Test.c文件&am…