dedecms购物网站模板,最新网站排名优化方法,定州网站建设,一台服务器一个固定ip怎样做两个网站前言:
各位观众老爷们好#xff0c;最近几个月都没怎么更新#xff0c;主要是最近的事情太多了#xff0c;我也在继续学习Django框架#xff0c;之前还参加了一些比赛#xff0c;现在我会开始持续更新Django的学习#xff0c;这个过程会比较久#xff0c;我会把我学习的…前言:
各位观众老爷们好最近几个月都没怎么更新主要是最近的事情太多了我也在继续学习Django框架之前还参加了一些比赛现在我会开始持续更新Django的学习这个过程会比较久我会把我学习的知识都整理出来一起分享给大家希望大家可以多多支持一下。您的关注和支持是我更新的动力。话不多说开始我们今天的学习之旅吧
一创建Django项目
注意 确保您的计算机名称和项目路径中不包含中文或空格以避免潜在的问题。同时如果你想要使用Django的话还需要先下载Django可以直接在后台cmd里面下载也可以直接在官网下载。
pip install django
有以下三种方式创建Django项目
方法1通过命令行创建Django项目
打开命令提示符 导航到您希望创建项目的目录。创建项目 在命令行中输入以下命令来创建您的Django项目确保项目名称不包含中文
django-admin startproject 项目名称 启动服务器 进入项目目录找到manage.py文件并运行以下命令来启动开发服务器
python manage.py runserver
方法2在PyCharm中创建Django项目
新建项目 在PyCharm中选择File New Project。选择Django 在新建项目窗口中选择Django作为项目类型。注意 PyCharm可能会有一个小bug您可能需要在settings.py文件中手动导入os模块。
方法3创建Django应用App
创建应用 应用是实现项目功能的关键您可以通过以下命令创建一个新的应用
python manage.py startapp 应用名称
功能分离 每个应用应该负责项目的特定功能以实现代码的清晰和模块化
以下是直接创建Django的图片展示 二关于django里面的各个模块的功能
DjangoDemo/ # 项目的根目录
|--- DjangoDemo/ # 项目名称同名的子目录存放项目配置文件
| |--- asgi.py # 异步服务器网关接口用于异步Web服务
| |--- settings.py # 包含项目所有配置的设置文件
| |--- urls.py # 定义项目的URL路由将URL映射到视图函数
| |--- wsgi.py # Web服务器网关接口用于传统Web服务器部署
|--- myapp/ # 一个或多个应用目录存放应用级别的代码
| |--- migrations/ # 存放由Django自动生成的数据库迁移文件
| |--- admin.py # 定义如何在Django admin后台管理模型
| |--- apps.py # 包含应用的配置如应用的名称和可用性
| |--- models.py # 定义数据模型即数据库中的表结构
| |--- tests.py # 包含测试用例用于测试应用的功能
| |--- views.py # 包含视图函数或类处理请求并返回响应
|--- templates/ # 存放HTML模板文件由Django渲染成网页
|--- manage.py # Django命令行工具用于项目和应用管理 以下是对这些功能的详细解释
2.1.mydjango/
这是你的项目的根目录通常它包含了项目的子目录和文件。
2.2mydjango/
这个子目录与你的项目同名它包含了项目的配置文件和源代码。
2.2.1asgi.py
这是一个异步服务器网关接口用于运行项目。它允许Django项目与异步Web服务器如Daphne或Uvicorn进行通信支持异步操作。
2.2.2.settings.py
这是Django项目的主配置文件。它包含了项目的全局设置如数据库配置、应用配置、中间件配置、静态文件配置等。
而settings.py 文件是 Django 项目的配置核心它包含了项目运行所需的所有配置信息。以下是对每个配置项的详细解释
2.2.2.1.BASE_DIR
作用设置项目的根目录路径。Django 使用这个路径来查找项目中的其他文件和目录如 manage.py 脚本和 asgi.py、wsgi.py 等。重要性非常重要因为 Django 需要知道项目的根目录在哪里。
2.2.2.2.SECRET_KEY
作用一个保密的字符串用于 Django 内部的加密机制比如会话 cookie 的签名和密码的存储。重要性非常重要应该保持机密不应该在代码库中公开。
2.2.2.3.DEBUG
作用决定 Django 是否运行在调试模式。在调试模式下Django 会显示详细的错误页面这对于开发和调试非常有用。重要性非常重要在生产环境中应该设置为 False 以关闭调试模式避免安全风险。
2.2.2.4.ALLOWED_HOSTS
作用定义允许访问项目的主机名列表。这是为了防止 DNS 劫持攻击。重要性在生产环境中非常重要必须设置为允许的主机名列表。
2.2.2.5.INSTALLED_APPS
作用列出项目中激活的应用这些应用将被 Django 加载。重要性非常重要因为它决定了哪些应用对项目可用。
2.2.2.6.MIDDLEWARE
作用列出项目中使用的中间件中间件是 Django 处理请求和响应过程中的钩子。重要性非常重要中间件用于实现跨应用的通用功能如会话管理、权限控制等。
2.2.2.7.ROOT_URLCONF
作用指定项目的根 URL 配置文件通常是一个包含 urlpatterns 的模块。重要性重要因为它定义了 URL 到视图的映射。
2.2.2.8.TEMPLATES
作用配置模板引擎指定 Django 如何找到和渲染模板文件。重要性重要因为 Django 使用模板来动态生成 HTML。
2.2.2.9.WSGI_APPLICATION
作用指定项目的 WSGI 应用用于部署到生产服务器。重要性重要因为它是 Django 项目与生产服务器之间的接口。
2.2.2.10.DATABASES
作用配置数据库连接信息包括数据库引擎、名称、用户、密码等。重要性非常重要因为 Django 需要知道如何连接到数据库。
2.2.2.11.AUTH_PASSWORD_VALIDATORS
作用定义密码验证规则确保用户密码的安全性。重要性重要因为它帮助保护用户密码不被弱密码攻击。
2.2.2.12.LANGUAGE_CODE
作用设置项目的语言影响 Django admin 后台和错误消息的语言。重要性中等对于国际化项目尤为重要。
2.2.2.13.TIME_ZONE
作用设置项目使用的时区影响日期和时间的显示。重要性中等对于需要处理时区的项目尤为重要。
2.2.2.14.STATIC_URL
作用设置静态文件的 URL 前缀用于在开发中访问静态文件如 CSS、JavaScript 和图片。重要性重要因为它决定了如何在开发中访问静态文件。
2.2.2.15.DEFAULT_AUTO_FIELD
作用设置默认的自动字段类型例如 django.db.models.AutoField通常用于主键字段。重要性中等对于需要自定义字段类型的情况比较重要。
2.2.3.urls.py
在Django中路由是URL配置的简称它定义了URL模式路径和视图函数之间的映射关系。当用户访问网站时Django会根据路由配置来决定如何处理请求并调用相应的视图函数。
2.2.3.1URL的配置
URL配置是一个列表Django会按照列表的顺序从上到下查找匹配的URL模式。
2.2.3.2正则匹配路由
Django提供了两种方式来定义URL模式简单路由和正则表达式路由。
简单路由使用path()函数它使用路由到视图的直接映射不支持参数的提取。正则表达式路由使用re_path()函数它允许使用正则表达式来定义更复杂的URL模式并可以从URL中提取参数。
2.2.3.3正则分组匹配
在正则表达式中可以使用分组来捕获URL中的特定部分并将其作为参数传递给视图函数。
无名分组使用圆括号()创建匹配的值没有名称只是一个位置参数。
from django.urls import re_path
from django.http import HttpResponse
from myapp import viewsurlpatterns [re_path(r^url_text/(\w)/$, views.url_data), # 无名分组
]def url_data(request, data):return HttpResponse(f这个是无名分组接收到 url 匹配到的参数为{data})
有名分组使用命名分组(?P名称正则表达式)创建匹配的值有一个名称可以在视图函数中通过名称引用。
urlpatterns [re_path(r^url_data/(?Pnumber\d)/$, views.url_data2), # 有名分组
]def url_data2(request, number):return HttpResponse(f这个是有名分组接收到 url 匹配到的参数为{number})
2.2.3.4对应的视图函数
使用正则分组匹配路由时视图函数必须定义接收参数这些参数与URL中的分组相对应。
2.2.4.wsgi.py
这是项目的Web服务器网关接口文件用于部署项目。它允许Django项目与同步Web服务器如Gunicorn或uWSGI进行通信。
2.3myapp/
这是Django项目中的一个应用目录应用是Django项目的基本组成单元用于实现特定的功能。
2.3.1migrations/
这个目录包含了由Django自动生成的数据库迁移文件。这些文件记录了模型的变更历史用于数据库的迁移和同步。
2.3.2admin.py
这个文件用于在Django admin后台注册模型以便在后台管理界面中管理这些模型的数据。
2.3.3.apps.py
这个文件定义了应用的配置包括应用的名称、订单和可用性。它还可以包含应用的事件处理程序。
2.3.4models.py
这个文件定义了应用的数据模型即数据库中的表结构。Django模型是数据库表的抽象通常每个模型类对应数据库中的一个表。
2.3.5tests.py
这个文件包含了应用的测试用例。Django使用unittest框架来组织测试你可以在这里编写测试来验证应用的功能。
2.3.6.views.py
这个文件包含了应用的视图逻辑。视图是Django处理请求和返回响应的函数或类。
2.4.templates/
这个目录用于存放HTML模板文件。Django使用模板系统来动态生成HTML内容。模板文件包含了HTML标记和Django模板语言用于插入动态数据。
2.5.manage.py
这是一个命令行工具用于管理Django项目。通过这个工具你可以执行多种管理任务如启动开发服务器、数据库迁移、创建新的应用、收集静态文件等。
三.Django的简单应用
3.1注册应用
在Django项目中每个应用都需要在项目的settings.py文件中的INSTALLED_APPS列表里注册这样Django才能识别并加载它们。
写法一推荐使用应用的配置类。这种方式更加灵活可以在apps.py文件中定义应用的配置包括应用的名字、订单等。
# 在 settings.py 文件中
INSTALLED_APPS [...myapp.apps.MyappConfig, # 应用名称.apps.应用名称Config
]
其中myapp是应用的目录名MyappConfig是apps.py中定义的配置类。
写法二直接注册应用的目录名。这种方式简单但在大型项目中可能会导致配置管理不够灵活。
# 在 settings.py 文件中
INSTALLED_APPS [...myapp, # 应用名称
]
3.2.实现视图
视图是Django中处理用户请求和返回响应的函数或类。视图函数通常定义在应用的views.py文件中。 简单文本响应
from django.http import HttpResponsedef index(request):return HttpResponse(大家好) 这里定义了一个视图函数index它接收一个请求对象request作为参数并返回一个HttpResponse对象。
3.3.路由配置
from django.urls import path
from myapp import viewsurlpatterns [path(index/, views.index),
]
在urls.py文件中使用path函数将URL路径映射到对应的视图函数。
3.4.响应HTML文件
from django.shortcuts import renderdef html_info(request):return render(request, info.html)def html_info1(request):data {name:林谋,age:20,address:中国}return render(request, info2.html, data)def html_info2(request):# 使用 locals() 将当前视图函数的局部变量传递给模板return render(request, info2.html, locals())
3.5路由配置响应HTML
urlpatterns [path(info1/ , views.html_info),path(info2/ , views.html_info1),path(info3/ , views.html_info2),
]
3.6重定向
from django.shortcuts import redirectdef baidu(request):return redirect(https://www.baidu.com)def my(request):return redirect(/info2/)def myview(request):return redirect(views.html_info2)
使用redirect函数可以将用户重定向到另一个URL或视图。
3.7路由配置重定向
urlpatterns [path(bd/ , views.baidu),path(my/ , views.my),path(my2/ , views.myview),
]
结语
今天的分享就先到这里了由于时间和篇幅的原因我们先学到Django的这些内容后面的内容我们可以以后慢慢学记得关注和点赞我会坚持更新的由于作者的水平有限里面的内容难免会有疏漏也非常欢迎大家能够指出我的问题我也很乐意和大家一起讨论交流希望和大家一起进步谢谢大家