【雨学习】django系统学习 第一章 入门篇

1.1URL组成部分

URL是Uniform Resource Locator 的简写,统一资源定位符

一个URL由以下几个部分组成:

scheme://host:port/path/?query-string=xxx#anchor
  • scheme:代表的是访问的协议,一般为http或者https以及ftp等

  • host:主机名,域名,比如www.baidu.com

  • port:端口号。HTTP协议是80端口,HTTPS协议是443端口。

  • path:查找路径。比如www.jianshu.com/trending/now,后面的trenfing/now就是path

  • query-string:查询字符串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查询字符串

  • anchor:锚点,后台一般不用管,前端用来做页面定位的

注意:URL中的所有字符都是ASCII字符集,如果出现非ASCII字符,比如中文,浏览器会进行编码再进行传输

1.2第一个django项目.md

1.2.1项目文件介绍

mysite

manage.py 【项目的管理、启动项目、创建app、数据管理】【不要动】【常常用】

Mysite

  __init__.py

    settings.py 【项目配置】 【常常操作】

    urls.py 【url和函数的对应关系】【常常操作】

    asgi.py 【接受网络请求】【不要动】

    wsgi.py 【接受网络请求】【不要动】

1.2.2project和app的关系

app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是app来处理。

django项目会由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app

1.2.3app介绍

  • app,用户管理【表结构、函数、HTML模板、css】

  • app,订单管理【表结构、函数、HTML模板、css】

  • app,后台管理【表结构、函数、HTML模板、css】

  • app,网站 【表结构、函数、HTML模板、css】

  • app,APL 【表结构、函数、HTML模板、css】

  ······

注意:我们开发比较简洁,通常只需要在项目下直接创建一个app

在pycharm的终端中输入python manage.py startapp app即可自动创建一个app01文件夹

1.2.4app的文件解读

__init__.py

admin.py 【固定,不用动】django默认提供了后台管理

apps.py 【固定,不用动】app启动类

Migrations 【固定,不用动】数据库变更记录

  __init__.py

  models.py 【重要】,对数据库操作

  tests.py 【固定,不用动】单元测试

  views.py 【重要】函数

1.3URL分发.md

1.3.1URL与视图的映射

1.确保app已注册【settings.py】

2.编写URL和视图函数的对应关系【urls.py】

3.编写视图函数【views.py】

4.启动django项目

方法一:命令行启动

python3.12 manage.py runserver

方法二:pycharm启动

直接运行程序

1.3.2在URL中携带参数

  1. 通过查询字符串(qiery string):http://www.baidu.com/s?wd=python&a=1&b=2

  2. 在path中携带:http://127.0.0.1:8000/book/2

方式一:查询字符串http://127.0.0.1:8000/book?id=3&name=xx

方式二:http://127.0.0.1:8000/book/3

注意:在book_id前指定参数类型有两点好处

  1. 以后在浏览器中,如果book_id输入的是非整形,就会出现404错误

  2. 在视图函数中,得到的book_id就是一个整形,否则,默认会是str类型

1.3.3path函数

1.3.4url中包含另外一个urls模块

# startjango/urls.py文件

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

urlpatterns = [
    path("admin/", admin.site.urls),
    path('movie/', include('movie.urls')),
]

在urls.py文件中把所有的和book这个app相关的url都移动到app/urls.py中了,然后在startdjango/urls.py中,通过include函数来包含book.urls,以后在请求book相关的url时都需要加一个book的前缀

# movie/urls.py文件

from djangolearning02.urls import path
from . import views

# 指定应用名称(应用命名空间)
# 避免多个app中定义相同的名字
app_name = 'movie'

urlpatterns = [
    path('list', views.movie_list, name='movie_list'),
    path('detail/<int:movie_id>', views.movie_detail, name='movie_detail'),
]
# movie/views.py文件

from django.shortcuts import render, HttpResponse

# Create your views here.

def movie_list(request):
    return HttpResponse("电影列表")

def movie_detail(request, movie_id):
    return HttpResponse(f"您获取的电影id是:{movie_id}")

1.3.5url反转

  • 之前都是通过url来访问视图函数,有时候我们知道这个视图函数,但是想反转他的url,这时候就可以通过reverse来实现示例代码如下:

reverse("list")
>/book/list/
  • 如果有应用命名空间或者有实例命名空间,那么应该在反转的时候加上命名空间,示例代码如下:

reverse("book:list")
>/book/list/
  • 如果这个url中需要传递参数,那么可以用kwargs来传递参数,

示例代码如下:

reverse("book:detail", kwargs={"book_id":1})
>/book/detail/1
  • 因为django中的reverse反转url的时候不区分GET请求和POST请求,因此不能在反转时候添加查询字符串的参数。如果想要添加查询字符串的参数,只能手动添加,示例代码如下:

login_url = reverse('login') + "?next=/"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Electronic_Rain

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

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

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

打赏作者

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

抵扣说明:

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

余额充值