创建第一个Django项目

创建第一个项目

使用 django-admin 来创建 HelloWorld 项目:

django-admin startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- manage.py

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

settings.py 配置文件说明

1,配置项分为公有配置和自定义配置

2,配置项格式:BASE_DIR = ‘xxxxxx’(配置项名称必须大写)

3,常用配置项说明:

  • BASE_DIR: 当前项目的根目录的绝对路径。

  • DEBUG:项目的启动模式,True代表调试模式启动;False代表上线启动模式。

    ​ True模式特点:检测代码改动之后立马重启服务;详细的报错页面;

    ​ False模式特点:无

  • ALLOW_HOST:允许访问的网络阈。

    ​ []空列表表示只有请求头中的host为127.0.0.1能访问本项目

    ​ [‘*’]表示任何请求头都能访问本项目

  • INSTALL_APPS:

  • ROOT_URLCONF:Django的主路由

  • LANGUAGE_CODE:语言设置

  • TIME_ZONE:时间区域设置

URL和视图函数

URL – 统一资源定位符(Uniform Resource Locator)

URL格式:protocol://hostname[:port]/path

path(route,views,name=None)

re_path(reg,views,name=None)

请求以及响应

请求的类型:

  • GET:指定请求的页面信息,并实体主体。
  • HEAD:类似于GET请求,但是返回的响应中没有具体的内容,用于获取报头。
  • POST:向指定资源提交数据进行处理请求。数据包含在请求中。POST请求可能会导致新的资源的建立或者已有资源的修改。

Request参数的字段:

  print(request.GET)

  print(request.POST)

  print(request.body)

  print(request.path_info)

  print(request.get_full_path())
<QueryDict: {'a': ['11'], 'b': ['112']}>
<QueryDict: {}>
b''
/page/111
/page/111?a=11&b=112

GET请求和POST请求

通过Request.method字段获取该请求是属于哪种请求并对应做出反应。

构建的form表单格式:

<form method = 'POST' action = '/response'>
    username:<input type='text' name = 'uname'>
    <input type= 'submit' value='subbit'>
</form>

需要在form表单内部指明方法为POST并且指出所属路由。

设计模式以及模板层

模板和标签

Django采用MTV设计模式(Model-Template-View)

加载模板:

方案一:

# views.py
from django.template import loader
# 通过loader加载模板
t = loader.get_template("模板名称")
# 将t转化成HTML字符串
html = t.render(dic)
# 完成响应
return HttpResponse(html)

方案二:

# views.py
from django.shortcuts import render
return render(request,'模板名称',dic)

模板的变量使用:

{{变量名}},{{变量名.index}},{{变量名.key}},{{对象.方法}},{{函数名}}

模板的标签:

{%标签%}

{%结束标签%}

过滤器和继承

过滤器格式见官网[https://docs.djangoproject.com/zh-hans/3.2/topics/templates/]

继承:

模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块

语法–父模板中:

  • 定义父模板中的块block标签
  • 标识出哪些在子模块中是允许被修改的
  • block标签:在父模板中定义,可以在子模板中覆盖

URL反向解析

静态文件

什么是静态文件:css,js,视频,音频

在settings.py中配置STATICFILE_DIRS

应用

创建应用

python managy.py startapp xxx

之后在INSTALLED_APPS中注册该app

分布式路由

在主路由中调用include函数:include(‘app名字.url模块名’)

模型层以及ORM

ORM:Object Relation Mapping对象关系映射

数据库链接:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxx',
        'USER': 'root',
        'PASSWORD': 'xxx',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值