目录
前言
搭建环境
安装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开发,只能在视频上学习,所以很多知识点都理解的不够全面,今后的文章里可能会有很多表述错误的情况,还望大家多多指点,我们一起加油!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48571.html