我的Django学习之路 (一) —— Django配置与文件介绍

目录

前言

搭建环境

安装Django模块

创建Django项目

验证安装

创建APP

文件介绍

★manage.py

★urls.py

asgi.py、wsgi.py

setting.py

APP

Django的第一个程序

进入默认管理员界面

 定义一个函数

 url与函数绑定

注册APP

不解之处

想说的话


前言

Django,我来啦(*'ε`*)。

搭建环境

我的pycharm是社区版,由于社区版没有集成Django模块,所以不能直接创建,只能先创建普通项目工程,然后在通过pip的方式安装Django。

安装Django模块

我们进入pycharm,点击new project,创建一个名为Django的工程。

 刚创建完工程的时候啥也没有,点击下方的terminal终端

 输入

pip install django

 直到出现successfully的字样说明已经安装成功。

创建Django项目

继续在终端输入

django-admin startproject mysite

 即可创建一个mysite工程。

验证安装

至此我们的Django已经安装成功了,现在可以验证一下。

第一种方法是在终端启动服务

cd mysite
python manage.py runserver

 出现 http://127.0.0.1:8000/ 其中 Django的端口号是8000

 

说明已经安装成功了

第二种方法是更换运行路径

 然后点击运行即可。

可以看到两种启动方式本质上是一致的。

创建APP

此APP非彼APP, 我们先来了解一些必要的概念。Django 里什么东西叫 APP 呢?我们已经创建了工程mysite, 那么工程与APP之间到底有什么不同呢?它们的区别就是一个是配置另一个是代码,一个project包含很多个Django app以及对它们的配置。

在mysite工程中输入

python manage.py startapp app01

即可生成一个APP01文件夹

文件介绍

上面一下子抛出这么多命令,生成这么多文件,现在就来介绍一下各个文件功能。

★manage.py

最重要的文件之一。它是我们项目管理的脚本,一种命令行工具,允许你以多种方式与该Django项目进行交互。我们在启动项目,创建APP,数据库管理等操作时,都要用到它,一般情况下不用修改,但经常使用

urls.py

先看一下里面的内容

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

urlpatterns = [
    path('admin/', admin.site.urls),

]

简单的说这里就是记录url和函数的对应关系,就拿上面的path('admin/', admin.site.urls)来说,第一个参数是url,第二个参数就是跳转这个url之后所要调用的函数。因此,每有新的网页出现都要在这里记录要调用的函数。

asgi.py、wsgi.py

asgi,异步服务网关接口, 一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP,HTTP2和WebSocket

wsgi, Web Server Gateway Interface,Web服务网关接口,用来描述Web 服务器如何与Web 应用通信的规范。

ASGI是Django3.0之后才有的。它诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。同时,ASGI对于WSGI原有的模式的支持和WebSocket的扩展,即ASGI是WSGI的扩展。

一般情况下都不用修改。

setting.py

项目配置文件,常常使用。如配置APP路径,配置数据库,配置中间件等。

APP

一个工程可以有多个APP。APP相当于一个公司的各个部门,每个APP处理不同的工作,如一个APP处理用户界面,一个APP处理管理员界面等。每个APP有独立的数据表结构,函数,html模板,css等

他下面也有许多文件

  • apps:app默认信息,一般不修改
  • ★views:简单地说就是一个函数,接收并处理请求,调用模型和模版,响应请求,与上面urls.py的path第二个参数相对应
  • ★models:涉及数据库相关操作 
  • tests: 单元测试,一般不修改
  • admin:Django默认提供的admin后台管理功能。自己测试,往里面录数据的时候用。

Django的第一个程序

进入默认管理员界面

各文件的大致功能我已经介绍完了。在urls.py那里我介绍过,它是记录url与函数的关系,跳转url会调用对应的函数。

它默认会有个关系

path('admin/', admin.site.urls),

 admin.site.urls函数是默认就有的。

 我们试着在中加上该路径,变成然后回车一下。

 果不其然跳转到了新的界面,然后随便输入一个用户名密码。

 就能进入管理员的界面了。

 定义一个函数

 我们是在APP目录下的views文件里面定义函数。每个函数默认都要有一个参数request,假如我们用HttpResponse返回,那么我们可以写成以下形式,作为我们Django的第一个函数。

from django.shortcuts import render, HttpResponse

# Create your views here.


# 必须带上request参数
def test(request):
    return HttpResponse("Hello, world!")

 url与函数绑定

通过了解进入管理员界面的情况,大家应该对这个绑定关系操作会稍微熟悉些。现在我们就要对新创建的函数进行绑定url,而绑定url操作是在urls.py文件中进行。url的话可以随便写一个,但是要以"/"结尾,现在就在views.py的urlpatterns中添加关系,格式与默认的管理员界面路径一致。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hd/', views.test),  # 调用views文件中的test函数
]

那么问题来了,这个问题我也琢磨了好久。因为test函数是在views.py中而不是urls.py,所以需要使用import导入到urls.py中。据我目前了解的情况来看,它导入的文件路径与常规的文件导入路径不一致。

以下图为例

 我们先看一下文件目录

在urls.py导入views.py正常情况应该是

from mysite.app01 import views

 这样pycharm 不会提示有问题可以正常编译,但这样点击运行的话却发现他报错了

 而如果把mysite去掉,写成,会发现pycharm提示语法错误,app01和views下方都有红线,提示出错(app01的错误我点击了忽略显示,所以没有像views下方一样有红线。),但是这样点击运行的却能运行成功!

 至于为什么这样我也不太清楚,只能视为特殊情况了。我这样理解:在Django项目中,不考虑各文件的绝对路径,如需导入文件直接通过 from 目录名 import 文件名 导入即可

注册APP

如果现在访问我们的新设立的网址,他会正常跳转吗?不会。因为我们创建了APP之后还需要注册APP,注册完APP后才能使用APP的各项功能。

注册APP也很简单,在setting.py文件中的 INSTALLED_APPS 声明一下即可。我们将app下面apps文件的类告诉他即可注册成功。

'app01.apps.App01Config'

 也能直接告诉他APP名

'app01'

 但一般使用第一种 'app01.apps.App01Config',才是标准的声明格式。

这时候的你应该迫不及待了吧哈哈,已经全部弄完了,点击运行,会生成一个地址

 点进去就好了。

然后是不是出现这种情况?

别紧张,将地址由改成即可。

 

不解之处

在Django中,文件,函数的导入方式似乎与python导入文件方式不同,于是我暂时理解为:在Django项目中,不考虑各文件的绝对路径,如需导入文件直接通过 from 目录名 import 文件名 导入即可。

看来这个地方只能靠后面的学习来理解它原理了。

想说的话

感谢bilibili大学,感谢@武沛齐老师,为我在学习Django的路上指明方向。因为学校没有Django课程,没有系统学习过Django开发,只能在视频上学习,所以很多知识点都理解的不够全面,今后的文章里可能会有很多表述错误的情况,还望大家多多指点,我们一起加油!

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿此后再无WA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值