Django学习一

Django学习一
麟玖SamDjango学习一
前置条件(python3.9)
安装django
pip install Django
创建项目
django-admin startproject (DjangoDemo)←项目名称
#创建完成后的项目目录
$ cd DjangoDemo/
$ tree
DjangoDemo/ # 项目根目录
├── manage.py # 项目管理脚本
├── db.sqlite3 # SQLite 数据库文件
├── __pycache__/ # Python 字节码缓存
└── HelloWorld/ # 项目配置目录(与项目同名)
├── __init__.py # 包标识文件
├── settings.py # 项目设置
├── urls.py # 主路由配置
├── asgi.py # ASGI 配置
└── wsgi.py # WSGI 配置
文件/目录 | 作用 |
---|---|
**manage.py ** |
Django 命令行工具入口,用于运行开发服务器、数据库迁移等操作。 |
**db.sqlite3 ** |
SQLite 数据库文件(默认数据库,开发环境使用)。 |
**__pycache__/ ** |
Python 字节码缓存目录(自动生成,无需手动修改)。 |
文件/目录 | 作用 |
---|---|
**__init__.py ** |
空文件,告诉 Python 该目录是一个包。 |
**settings.py ** |
**核心配置文件**,包含: \- 数据库设置 (`DATABASES`) \- 静态文件路径 (`STATIC_URL`) \- 应用注册 (`INSTALLED_APPS`) \- 调试模式 (`DEBUG=True/False`) |
**urls.py ** |
**主路由配置文件**,定义 URL 路径与视图的映射关系。 |
**asgi.py ** |
ASGI 服务器配置(用于异步 Web 服务器,如 Daphne)。 |
**wsgi.py ** |
WSGI 服务器配置(用于传统 Web 服务器,如 Gunicorn、uWSGI)。 |
启动项目
#进入项目目录运行
python manage.py runserver
关键文件详解
settings.py (核心配置)
# DjangoDemo/settings.py 示例片段
# 安全警告:生产环境必须关闭 DEBUG!
DEBUG = True
# 允许访问的域名(DEBUG=False 时需配置)
ALLOWED_HOSTS = []
# 注册的 Django 应用
INSTALLED_APPS = [
'django.contrib.admin', # 管理员后台
'django.contrib.auth', # 认证系统
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', # 静态文件处理
]
# 数据库配置(默认 SQLite)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3', # 数据库文件路径
}
}
# 静态文件 URL(CSS/JS/图片)
STATIC_URL = 'static/'
urls.py(路由配置)
# HelloWorld/urls.py 示例
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls), # 后台管理路由
# 可在此添加自定义路由,如:
# path('blog/', include('blog.urls')),
]
manage.py(项目管理脚本)
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
视图和 URL 配置
DjangoDemo/views.py代码
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
绑定 URL 与视图函数。打开 urls.py 文件,将以下代码复制粘贴到 urls.py 文件中
from django.urls import path
from . import views
urlpatterns = [
path("", views.hello, name="hello"),
]
path函数
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。
语法格式:
path(route, view, kwargs=None, name=None)
- route: 字符串,定义 URL 的路径部分。可以包含变量,例如 int:my_variable,以从 URL 中捕获参数并将其传递给视图函数。
- view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。
- kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。
- name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。这对于在模板中生成 URL 或在代码中进行重定向等操作非常有用。
Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果