Python 全栈体系【三阶】(一)

三阶:Django - Redis - Ajax

第一章 Django

一、Django 基础

1. 基础

Django是一个开源的、重量级的WEB开发框架。

Django的官网: https://www.djangoproject.com

2. 安装与卸载 Django

Django目前最新的版本为4.2,教学环境使用3.2

2.1 在线安装
sudo pip3 install django==版本号

说明:上述命令中版本号可以省略,如果省略的话,则安装最新的版本。

2.2 离线安装
tar -zxvf Django-3.2.20.tar.gz
cd Django-3.2.20
sudo python3 setup.py install
2.3 查看Django版本
python3 -m django --version
2.4 卸载Django
sudo pip3 uninstall django

二、创建项目

1. 创建项目

Django中创建项目分为以下三步:

第一步:创建项目,其命令如下:

django-admin startproject helloDjango

其中:

  • django-adminDjango的命令行管理工具,用于对Django项目执行某些命令操作。
  • helloDjango是项目的名称,只要为合法的名称即可。

第二步:启动项目,命令如下:

# 切换到项目目录内
cd helloDjango

#运行项目
python3 manage.py runserver

第三步:访问项目

启动浏览器,然后在地址栏输入http://127.0.0.1:8000

2. Django项目的目录结构

创建Django项目后,其目录结构如下:

helloDjango/
├── db.sqlite3
├── helloDjango
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

这些目录和文件的作用是:

  • 最外层的helloDjango目录是项目的根目录,也是项目的容器

  • manage.py是一个管理Django项目的命令行工具,其基本用法是:

    python3 manage.py subcommand
    

    subcommand包括:

    • runserver [addport],启动用于开发的轻量级的WEB服务器

    常用的端口号:

    http协议 80

    MySQL的端口号 3306

    FTP协议 21

    • startapp ,在当前目录或指定目录中创建应用
  • 内层的helloDjango目录包含项目文件,它是一个纯Python包。

  • helloDjango/settings.pyDjango项目的配置文件

  • helloDjango/urls.pyURL调度器(也称为路由配置文件)

  • helloDjango/wsgi.py,运行在WSGI兼容的WEB服务器上的入口

3. Django配置

Django的配置信息存储在settings.py文件中。

# 当前项目的绝对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 密钥
SECRET_KEY = 'd!9((sy&ge3!=u0zc$u_#ba@ok1=%2pg+xnws2=t+c@s_7-(6c'

# 是否开启调试模式,建议:在开发环境开启调试模式,生产环境关闭
DEBUG = True

# 已安装并启用的应用程序(Application)列表
INSTALLED_APPS = [ ]

# 已安装的中间件(Middleware)列表
MIDDLEWARE = []

# 根 URL 调度器的完整路径
ROOT_URLCONF = `helloDjango.urls`

# 模板的配置
TEMPLATES = []

# 数据库配置
DATABASES = []

# 语言代码
LANGUAGE_CODE = 'zh-Hans'

# 时区
TIME_ZONE = 'Asia/Shanghai'

三、URL调度器/URL路由

为了给一个应用程序设计URL,需要创建一个Python模块,通常被称为URLConf( URL configuration,URL配置)。其作用是包含 URL 模式到Python函数(称为视图函数)的映射关系。

URL路由三部曲:

第一步:先在urls.py中定义路由,并且指定视图函数

第二步:定义路由需要访问的Python函数(视图函数)

第三步:通过浏览器进行访问

在这里插入图片描述

HttpResponse对象位于django.http模块内

from django.http import HttpResponse

urls.py的代码如下:

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

from django.http import HttpResponse

def hello(request):
    return HttpResponse('<h1>Hello呀</h1>')

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

此时即可以通过http://127.0.0.1:8000/hello进行访问

1. path()函数

path() 函数的作用是返回一个元素,以便包含在urlpatterns中,该函数位于django.urls模块内,其语法结构是:

path(route,view,kwargs=None,name=None)
  • route 参数是一个匹配URL规则的字符串,当Django在处理请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到为止。匹配的原则是:匹配即停止

  • view参数是一个视图函数的名称,视图函数用于处理用户的请求,并且返回响应。该视图函数必须将HttpRequest对象作为第一个参数,参数建议以request命名,其语法结构是:

    def view_function_name(request[,argument[,...]]):
        ...
        ...
    

    说明:

    • request代表HTTP请求对象
    • argument代表可选参数,表示的的是从URL中传递的参数
  • kwargs代表向模板传递的参数,必须在字典(dict)

  • name代表为url命名,以便Django在任意地方可以唯一引用它

2. 路径转换器

Django中的路径转换器用于捕获URL模式中特定部分的值,并将其作为参数传递给视图函数。路径转换器包括以下几种:

在这里插入图片描述

在这里插入图片描述

  • 整数,匹配0及其他正整数,返回int

    <int:parameter_name>,如:

    # urls.py中的代码
    
    def article(request,id):
        return HttpResponse('文章详情')
    
    urlpatterns = [
        path('article/<int:id>',article)
    ]
    
  • 字符串,匹配除了/之外的任何非空字符串,直到遇到下一个斜线为止

    <str:parameter_name>,如:

    def user(request,username):
        return HttpResponse(f"username is: {username}")
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('user/<str:username>',user),
    ]
    
  • 路径,匹配非空字符串,包括路径分隔符(/)

    <path:parameter_name>,如:

    def detail(request,path):
        return HttpResponse(f"path is: {path}")
    
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('detail/<path:path>',detail),
    ]
    
  • uuid,匹配UUID格式的字符串,其格式为8-4-4-4-12

    <uuid:parameter_name>,如:

    def uuid(request,id):
        return HttpResponse(f"uuid is: {id}")
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('book/<uuid:id>',uuid)
    ]
    
  • slug,匹配任何的ASCII字母,数字、短横线及下划线,

    <slug:parameter_name>

3. URL调度器/URL路由的工作流程

在这里插入图片描述

强烈建议:所有的视图函数存储在views.py文件内。

四、总结1

1. 什么是Django的路由系统?

Django中的路由系统是一个将 URL 模式到Python函数(称为视图函数)的映射关系的机制。

2. 路由系统中有哪些路径转换器?

<int:pararameter_name>

<str:paramenter_name>

<uuid:parameter_name>

<path:parameter_name>

<slug:parameter_name>

3. 路由系统中如何传递参数?

路由系统中通过路径转换器传递参数,需要强调的是:在视图函数中也必须存在同名的参数,以接收路径转换器传递来的参数。

urlpatterns = [
    path('user/<int:id>/name/<str:name>',userinfo)
]

对应的视图函数则需要书写成:

from django.http import HttpResponse

def userinfo(request,id,name):
    ...
    ...

所有的视图函数必须将HttpRequest对象作为第一个参数传递;

所有的视图函数都必须返回HttpResponse(HTTP响应),该对象的构造函数结构是:

HttpResponse(content=b'',content_type=None,status=200)
  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python全栈开发是指使用Python语言进行前后端开发的技术栈。Python作为一门简洁、易学、功能强大的编程语言,具有广泛的应用领域和良好的生态系统,因此在全栈开发中也有着广阔的前景。 Python全栈开发可以涵盖以下几个方面: 1. 前端开发Python可以使用各种框架(如Django、Flask、Tornado等)进行前端开发,构建用户友好的网页界面和交互体验。 2. 后端开发Python在后端开发方面有着丰富的库和框架支持,如Django、Flask、Pyramid等,可以用于构建高性能、可扩展的Web应用程序和API。 3. 数据库管理:Python提供了多种数据库连接库和ORM框架,如SQLAlchemy、Django ORM等,可以方便地进行数据库操作和管理。 4. 服务器管理:Python可以通过各种工具和库来进行服务器管理和自动化部署,如Fabric、Ansible等,提高开发效率和系统稳定性。 5. 数据分析与科学计算:Python拥有强大的数据分析和科学计算库,如NumPy、Pandas、Matplotlib等,可以进行数据处理、可视化和机器学习等任务。 Python全栈开发的前景非常广阔。随着互联网的快速发展,Web应用程序的需求不断增加,对全栈开发人员的需求也在增加。而Python作为一门易学易用的语言,具有丰富的库和框架支持,使得开发人员可以更快速地构建高质量的应用程序。此外,Python在数据分析和人工智能领域也有着广泛的应用,这为全栈开发人员提供了更多的发展机会。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柠檬小帽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值