一、创建项目之后的结构
创建一个django之后的项目目录如下(本文使用的django版本为2.2.12)。我当前创建的项目名称为DjangoProject1,在当前目录下也会生成一个同名文件夹。
3:同名文件夹下包含的文件含义为
- asgi.py
- settings.py--项目的配置文件,包含项目启动时需要的配置
- urls.py--项目的主路由配置,HTTP请求进入Django时,优先调用该文件
- wsgi.py--web网关的配置文件,Django正式启动时,需要用到
2:当前工程依赖的环境包
1:manage.py。是包含项目管理子命令的文件,例如:
- python3 manage.py runserver----启动服务
- python3 manage.py startapp----创建应用
- python3 manage.py migrate----创建应用
查询指令可以在终端中输入:python3 manage.py,就可以展示所有可用的指令。
二、setting.py详解
setting分为共有配置和私有配置,私有配置视自己需要自行配置,共有配置重要部分如下。
1、BASE_DIR:项目的绝对路径
2、DEBUG:
- DEBUG = True。即调试模式,检测到代码改动之后,立马重启服务,并且返回详细的报错信息。如下:
- DEBUG = False。上线模式,只给用户返回错误码。正式对外服务时,一定要关闭DEBUG模式,可能会导致源码泄露。
3、ALLOWED_HOSTS:允许访问的域名或IP地址,用于过滤不属于当前工程的请求。注:因为在一台机器上会部署有很多服务,因为需要对不属于当前的服务的请求进行过滤。
4、ROOT_URLCONF:当前工程的根路由文件位置。
5、LANGUAGE_CODE:语言编码,默认是英语,也可以改成中文。
6、TIME_ZONE:时区,即系统的时间,默认UTC是格林威治天文台的标准时间,如果要改成北京时间,应改成Asia/Shanghai。
三、URL
1、URL定义:统一资源定位符(Uniform Resource Locator)。用于表示互联网上某个资源的地址。
2、URL的一般语法(注:[]代表其中的内容可以省略):
protocol://hostname[:port]/path[?query][#fragment]。
解析:
(1)protocol即协议,通常为http或https,如果是想访问本地计算机上的文件,则使用file协议,file:// ;hostname即存放资源的服务器的域名系统的主机名、域名或IP地址;
(2)port即端口,各种传输协议都有默认的端口号,http默认是80端口,一般予以省略;
(3)path,即路由地址,由零个或多个/符号隔开,一般用来表示主机上的一个目录或文件地址;
(4)query即查询条件,如果有多个参数,使用&符号隔开,每个参数的名和值用“=”符号隔开,在URL中用问号表示;
(5)fragment即代表铆定、标定的元素,或者叫信息片段。
3、django是如何处理URL的?
当django接受一个http请求之后,解析URL的流程如下:
(1)django先从配置文件settings.py中找到ROOT_URLCONF,即主路由文件的位置。默认情况下,该文件在项目的同名目录下。如下:
(2)django再加载主路由文件中的urlpatterns变量,urlpatterns变量是一个包含很多路由的列表;
(3)再从上到下依次匹配urlpatterns中的path,匹配到第一个合适的路由地址之后就中断后续匹配;
(4)如果匹配成功,则调用对应的视图函数处理请求,返回响应;如果匹配失败,则返回404响应。
四、Django的视图函数
1、django中视图函数的定义
视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回响应的函数。此函数可以接收浏览器请求并根据业务逻辑返回响应的内容给浏览器。
2、语法
def xxx_view(request[,其他参数]): return HttpResponse(返回内容)
3、django中的视图函数统一放在view.py文件中。