Django_day1

创建Django项目

  • 命令行的方式进行创建
  • 打开终端
  • 输入
django-admin startproject [项目的名字] [ . 指定的目录]

用pycharm进行创建

查看Django的版本


django-admin --version

运行Django项目

通过命令行的方式进行

python manage.py runserver (网址:端口)
# 可以改变端口

创建一个APP

python manage.py startapp [APP 的名字] (路径)
# 可以指定路径
python manage.py startapp api apps/api

基础

打开 DEBUG 模式(在 settings.py 文件中)

DEBUG = True

写路由匹配

 path('', index) # 这里不用写上 / ,自带有 /

写返回 response 时

# 首先进行导入
from django.shortcuts import HttpResponse

def index(request):
    # request 第一个参数
    return HttpResponse('欢迎来到我的网页!')

url 进行传参时,有两种

# 对应的 path 函数的写法
path('book/<int:book_id>', book_detail_id)

def book_detail_id(request, book_id):

# 对应的 path 函数的写法
path('book', book_query_id)

def book_query_id(request):

path 函数的参数

# 第一个参数
str 非空字符串 <str:变量名字>
int 0 或者正数的整形 <int:>
slug 有 _ 或者 - 或者英文或者数字 <slug:>
uuid 匹配 uuid 字符串 <uuid:>
path 匹配字符串 <path:>

路由模块化

在一个 app 的 urls 文件中

from django.urls import path
from . import views

app_name = '' # 写上命名空间

urlpatterns = [
    path('', 函数名称, name=''),
]

然后再主项目的 urls 文件中

from django.urls import include

urlpatterns = [
    path('', include(?.?))
]

request 对象

request.resolver_match # 获取匹配到的路由相关的信息

request.path_info # 请求的路径

request.method # 请求方法

request.body # 请求体(原始数据)

request.POST# 请求体

request.POST.get('') # 请求体获取其中的值

request.FILES # 文件

request.FILES.get('') # 文件

request.headers # 请求头

request.COOKIES # cookie 信息

路由反转

from django.urls import reverse

reverse('path 函数中 name 的值')

# 当 path 的 url 需要传参时
reverse('', kwargs={'key': value})

# 当一个 app 有命名空间时,在进行 url 反转时
# 必须带上 url 的命名空间
reverse('命名空间 app_name 的值 : path 函数中 name 的值')

渲染模板

第一种方式(不方便)

# 通过 render_to_string 函数
html = render_to_string('HTML文件的名字')
HttpResponse(html)

第二种方式

from django.shortcus import render

def book_list(request):
    return render(request, 'HTML文件的名字')

渲染模板的变量

HTML 中

# HTML 中
{{ 这里使用变量 }}
# 变量的使用只能用 . 来进行
# 数组也一样 arr.0

# 在 django 的代码
# 使用 render 函数来给 HTML 进行传参
# 使用字典的形式,context 是一个字典
render(request, 'HTML 文件的名字', context={这里进行参数的传递})

在 HTML 中使用循环遍历

# 遍历数组
{% for ? in ?s %}

{% endfor %}

# 遍历对象
{% for key, value in ?.items %}

{% endfor %}

一些标签的使用

# with 的使用
{% with ?=? %}
    {% ? %}
{% endwith %}

# url 的使用
{% url 'path 函数中 name 的值' %}

要想在模板中执行python的函数,只需要传一个函数名就行了,会自动添加一个括号

常见的过滤器

|cut:'' # 进行切割

|date:'' # 格式化字符串

|default:'' # 默认值

|default_if_none:'' # 默认值

|first # 第一个

|join # 组合

|length # 获取长度

|safe # 安全 (对于 html 标签来说)

模板的继承

# 添加
{% include('HTML 文件名') %}

# 继承
{% extends 'HTML 文件名' %} # 必须为文件的第一行
# 留坑
{% block 变量 %}
# 使用父模板
{% block.super %}

导入配置的区别

from 项目名 import settings (少)

from django.conf import settings (多)

开发访问 url 时遇到的问题

APPEND_SLASH = TRUE
# 前提要设置是 debug,然后再设置请求的域名为 *

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值