Django学习第一天记录

1.安装Django(Windows环境)

首先需要确定系统中存在python环境,当前,本机的python环境为python 3.6.6,可以使用命令python –version进行查看。

Django学习第一天记录
在python环境成功搭建的基础上,我们使用命令pip install django即可进行django环境的安装和部署。

; 2.部署第一个django项目

在成功使用pip安装django包后,系统中会出现一个django-admin的命令。可以在cmd中尝试输入django-admin查看是否能够找到该命令。

Django学习第一天记录
在django-admin命令能够成功运行时,我们可以使用

django-admin startproject [项目名称]

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

django-admin startproject demo1

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

Django学习第一天记录

3.django项目的目录结构

以创建的Demo1项目为例,

Django学习第一天记录
二级目录Demo1下:
Django学习第一天记录

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

(1)进入项目目录。

Cd Demo1

(2)启动django服务。

Python manage.py runserver [端口号]

如果在runserver后指定了端口号,则目标端口号就会打开,HTTP请求可以发送到目标端口号。

Django学习第一天记录
通过打开的命令,可以发现,在倒数第三行,有一行提醒,当前的Django版本号为3.2.16,且当前使用的配置文件为Demo1.settings,因此后续对django项目的配置文件的设置可以通过对Demo1.settings的修改作为对目标Demo的配置的修改。

(3)打开浏览器访问本地目标端口。

Django学习第一天记录
出现该页面,则意味着django服务成功启动。
这种启动方式建议只在测试开发中进行使用。
在该测试页面中,下方存在三个可选项,特别是右边第一个Django Document,如果点击将会直接跳转到django的官网,其中有django的官方文档。并提供了django的一些轻量化演示站点和社区的反馈渠道。
当第一次启动django的时候,将会出现一个新的文件。Db.sqlite3,该文件是一个数据库文件。
Django学习第一天记录

5.尝试更换Django的端口号

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

Python manager.py runserver 5000

监听本地5000号端口。可以看到当前已经成功监听到了5000端口。

Django学习第一天记录
可以看到环境已经成功的进行搭建。
Django学习第一天记录
使用命令

netstat -anot | findstr “5000”

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

Django学习第一天记录

; 6.关闭django服务

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

Django学习第一天记录
如果在linux环境下,使用lsof -i:5000即可查询到该端口的占用程序,并使用kill -9 [进程号] 来强制杀死该进程,思路和windows上的操作是相同的。

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

Django学习第一天记录

7.Django中的manage.py的使用

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

Django学习第一天记录

通过该方法,可以发现自动的列出了执行命令。这些命令在使用过程中将会逐渐的熟练。
因此,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

Django学习第一天记录
; 对于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服务了。

Django学习第一天记录

出现了报错。

Django学习第一天记录
ALLOWED_HOST=[“192.168.124.8”]
可以发现没有报错信息了,成功的进行了访问。
Django学习第一天记录
ROOT_URLCONF的配置

主路由文件的指定。

LANGUAGE_CODE的配置

主要是针对语言进行管理。
例如LANGUAGE_CODE改为zh-Hans

Django学习第一天记录
; 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成功的进行了绑定。
这样,当我们访问浏览器的时候,就可以拿到我们视图函数中定义的返回信息。

Django学习第一天记录
因此,用户的请求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/

转换器类型:
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两种转换器类型最为常见。

Original: https://blog.csdn.net/qq_27180763/article/details/128291421
Author: 程序小黑
Title: Django学习第一天记录

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736942/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1.命令总结

    Django 创建项目命令 django-admin startproject mysite(项目名称)Django 创建数据库命令 python manage.py migrat…

    Python 2023年8月4日
    062
  • 【python】%matplotlib auto未响应

    使用jupyter notebook时, 一直加载不出来 解决办法: 在show函数里设置block参数为True plt.show(block=True) 设置后图像就可以正常加…

    Python 2023年9月5日
    057
  • Python数据分析步骤案例(二)

    做完数据提取和问题提出之后就要进行数据整理了,在本次数据整理的数据评估的工作主要做了数据的行列数,缺失值和数据重复的检查。在数据清洗方面删除了问题无关的数据列,添加解决问题所需要的…

    Python 2023年8月6日
    058
  • 用Python绘制一天之内的气温变化图

    要 _绘制_近七天红河州各城市的 _气温_热力图,我们可以使用 _Python_的Matplotlib库和Seaborn库来完成。以下是实现的步骤: 1. 获取数据:我们可以从天气…

    Python 2023年9月6日
    039
  • channel-wise卷积–学习笔记

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年9月28日
    042
  • Python基础教程:打印空行的三种方式

    Python中代码比较长时,想在Pycharm-console控制台或Python自带IDLE的Shell窗口查看代码执行结果,打印一些字符之类的,很多行之间没有换行影响查看效果,…

    Python 2023年6月9日
    055
  • python数据可视化-matplotlib入门(6)-从文件中加载数据

    🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡 进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯…

    Python 2023年8月31日
    066
  • django之websocket连接

    前言 曾经写过一篇关于普通websocket的实现方法,封装层级比较低,不支持django使用。 一、介绍 django实现websocket,有两种方式 早期django使用dw…

    Python 2023年8月3日
    065
  • Django HttpResponse响应

    1.HttpResponse 1)Django服务器接收到客户端发送过来的请求后,会将提交上来的数据封装成httpRequest对象传给视图函数。那么视图处理完相关逻辑后,也需要返…

    Python 2023年8月3日
    047
  • Linux安装Anaconda及简单操作

    1、进入anaconda 官网 ,见到下图,点击红框。 见到下图,鼠标放置红框位置,右键复制下载链接。 2、打开ubuntu终端,建立下载所用文件夹,输入以下内容 wget htt…

    Python 2023年8月1日
    091
  • pytest学习总结2.4及2.5 – 参数化和mark标记

    2.4 mark 标记被测函数 以下是mark的一些内置结构的标记物: usefixtures – 在测试功能或类上使用固定装置 filterwarnings &#82…

    Python 2023年9月11日
    044
  • Python中的super函数,你熟吗?

    摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 实战场景 经常有朋友问,学 Python 面向对象时…

    Python 2023年11月1日
    042
  • 上周热点回顾(11.28-12.4)

    热点随笔: · 谁说.NET没有GC调优?只改一行代码就让程序不再占用内存 (杨中科)· .net如何优雅的使用EFCore (BruceNeter)· CAP 7.0 版本发布通…

    Python 2023年10月13日
    044
  • python中matplotlib:updated matplotlibrc file、查看库的版本和位置、EnvironmentError: [WinError 5]

    目录 1、遇到的问题: 2、原因: 3、解决办法: 4、执行pip install遇到 Could not install packages due to an Environme…

    Python 2023年8月31日
    068
  • Python的Flask+FiddlerScript某心优选万能爬虫法(可无视所有加密参数)

    1.用手机浏览橙心优选小程序,通过FD代理拦截相应的浏览过的Json数据 2.再通过FiddlerScript把Json保存,并提交到后端 3.用Flask框架搭建一个后端api,…

    Python 2023年8月13日
    035
  • Kotlin语法备忘

    1、ObservableField和MutableLiveData的区别 2、Kotlin中的inline, noinline, crossinline, reified inli…

    Python 2023年11月6日
    033
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球