本文介绍: Django学习第一部分

一、基本组件

1、基本配置文件/路由系统
2、MTV——模型层、模板层、视图
3、Cookies与Session
4、分页及发邮件
5、Admin管理后台

二、文档参考网站版本

1、一译
2、Django官网
教学版本:Django2.2.12
下载版本:Django3.2

三、创建项目

1、执行 djangoadmin startproject 项目 即可创建对应项目文件夹
2、进入目录后,执行python3 manage.py runserver (端口号) 启动django服务端口号默认是8000,可以http://127.0.0.1:8000看到启动页面
3、关闭服务ctrl+c或在其他终端sudo lsof -i:8000查看进程idkill -9 进程id
windows下的命令netstat -ano | findstr 8000

四、项目结构

Django项目结构

1、manage.py

所有子命令的入口,比如
python3 manage.py runserver 启动服务
python3 manage.py startapp 创建应用
python3 manage.py migrate 数据库迁移

直接执行python3 manage.py显示所有子命令

2、项目同名文件夹mysite1/mysite1

(1)_init.py

python初始化文件

(2)wsgi.py

Web服务网关配置文件,Django正式上线时需要使用

(3)urls.py ****************

项目的主路由配置,当http使用优先调用文件

(4)setting.py ******

项目配置文件
配置项分为公有配置自定义配置
配置名称必须是大写的。

配置 描述 备注
BASE_DIR 项目启动的绝对路径
DEBUG 项目启动模式(True调试模式)(False-上线模式) 调试模式前端页面可显示报错内容上线模式需配合正确ALLOWED_HOSTS
ALLOWED_HOSTS 请求头Host 若想生效,DEBUG必须为True
DATABASES 数据库相关配置
TEMPLATES html页面相关配置
LANGUAGE_CODE 语言配置 中文zh-Hans
TIME_ZONE 时区 东八时区Asia/Shanghai
。。。 。。。

五、URL和视图函数

1、URL格式

protocol:// hostname[:port] / path [?query][#fragment]
协议://域名[:端口号] / 路由[?查询字符串][#锚点]

(1)protocol协议

(2)hostname主机名、域名ip地址

存放资源服务器的域名系统DNS 主机名、域名或ip地址

(3)path路由地址*******

由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录文件地址。路由地址决定了服务器如何处理这个请求

(4)query查询

动态网页传递参数,可有多个参数,用&隔开,参数名和值用=隔开

(5)fragment信息片段

类似书签,可直接定位到相应的位置

2、Django处理url请求

在这里插入图片描述

3、视图函数 自己创建<项目同名文件夹下>/views.py

用于接收浏览器请求,并通过HttpResponse对象返回响应函数
函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。

from django.http import HttpResponse
def xxx_view(request,其他参数):
	return HttpResponse对象

六、路由配置

在这里插入图片描述

1、路由配置-path

2、path转换器

# 计算器练习

# urls配置如下
urlpatterns = [
    # 计算器 http://127.0.0.1:8000/a/opt/b/
    path('<int:a>/<str:opt>/<int:b>',views.cal_view)
]

# views配置如下
def cal_view(request,a,opt,b):
    if opt == 'add':
        return HttpResponse(f'{a}+{b}={a+b}')
    elif opt == 'sub':
        return HttpResponse(f'{a}-{b}={a-b}')
    elif opt == 'mul':
        return HttpResponse(f'{a}*{b}={a*b}')
    else:
        return HttpResponse('Your opt is wrong!')
    

3、re_path正则表达式匹配

# 若需求匹配http://127.0.0.1:8000/20/mul/40
# 不可匹配http://127.0.0.1:8000/200/mul/400
from django.urls import re_path
urlpatterns = [
	re_path(r'^(?P<a>d{1,2})/(?P<op>w+)/(?P<b>d{1,2})$',views.cal2_view),
]
# 生日 http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字
# 生日 http://127.0.0.1:8000/birthday/一到两位数字/一到两位数字四位数字/
# 最终输出生日为:xxxxxxxx
urlpatterns = [
    re_path(r'^birthday/(?P<year>d{4})/(?P<month>d{1,2})/(?P<day>d{1,2})$',views.bir_view),
    re_path(r'^birthday/(?P<month>d{1,2})/(?P<day>d{1,2})/(?P<year>d{4})$',views.bir_view)
]

原文地址:https://blog.csdn.net/weixin_44840038/article/details/128610597

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_13213.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注