Django框架
系统环境:Django 3.2.4,python 3.8.0,mysql 5.7
0x00、Django 项目五件套
- jango的启动服务
python manage.py runserver ip:port
- Django创建项目
# 在你想创建项目的文件夹下
django-admin startproject '项目名'
- 创建应用
# 在创建好的 Django 项目的根目录下
python manage.py startapp '应用名'
- 数据库迁移
python manage.py migrate
- 数据库表更改
python manage.py makemigrations '应用名'
0x01、主要目录配置
- 项目文件夹下存在一个同名文件,包含Django项目的主要配置文件
settings
:Django项目启动的所有配置项wsgi
:web服务配置文件urls
:主路由配置文件,所有的HTTP请求会先通过这个文件,在进行路由
settings.py
配置项格式规范:大写字母 = ‘’
- 公有配置:官方提前规定好的 诸多配置
- 如:
BASE_DIR
=os.path.dirname(os.path.dirname(os.path.abspath(file))) 获取当前项目文件根目录。 DEBUG
:- True ---- 调式开发模式,Django可以侦测到项目的任何改动,随后立即重启服务;可以生成详细报错页面
- False ---- 正式启动模式/上线模式
ALLOWED_HOSTS
:允许访问的请求头范围- [*] ---- 允许所有请求
INSTALLED_APPS
:指定当前项目中安装的应用列表MIDDLEWARE
:用于注册中间件ROOT_URLCONF
:Django 的主路由文件TEMPLATES
:指定模板的配置信息DATABASES
:数据库配置LANGUAGE_CODE
:Django项目语言 zh-Hans(中文)、en-us(英文)TIME_ZONE
:指定当前服务器端时区 UTC(世界标准时间) Asia/Shanghai(中国时区)
- 如:
- 自定义配置
- 避免与公有配置名冲突
0x02、应用
- Django框架中 项目与应用之间的关系:
一个 Django 项目可以包含多个应用,一个应用可以在多个项目中。
- 项目是特定网站的配置和应用程序的集合。
- 应用是可执行某些操作的 web 应用程序。
- polls/migrations:存放数据库模型的迁移文件
- polls/apps:应用的相关配置
- polls/models:用来写对象模型(创建数据库表)的文件
- polls/tests:Django框架 提供的测试模块的入口
- polls/views:视图函数接口文件
- polls/urls:作用等同于项目的 urls.py 文件,是应用的路由文件,这个需要自己手动创建
创建应用
# 在创建好的 Django 项目的根目录下 python manage.py startapp '应用名' # ex: polls python manage.py startapp polls
- 创建完成后,根目录下会出现应用的文件夹
配置应用
在 settings.py 中进行配置,告知 Django 应用的创建
...
INSTALLED_APPS = [
'django.contrib.admin', # Django项目自带的应用
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls.apps.PollsConfig', # 自己创建的应用
]
...
- 在上述 settings.py 文件的配置中,前面的app都属于 Django项目创建时自带的内容,最后一条是当自己创建新的 app时需要手动添加上去的应用。
0x03、视图与路由配置
- Django 处理浏览器请求流程
- 1、找主路由配置文件
- 2、加载文件中的路由配置
urlpatterns
- 3、依次匹配
urlpatterns
中提前配置好的路由信息 - 4、匹配成功,则调用对应的视图处理函数
- 5、匹配失败,404
- 视图函数 用于接收一个浏览器请求进行处理,并通过HTTPResponse对象返回响应的函数。
settings
:ROOT_URLCONF 主路由配置路由加载path的顺序是由上到下逐步进行。
path()函数
- 语法:path(route, views, kwargs,name=None)
route
:以 URL 模式解析字符串,包含四种模式,依次向下选择。views
:指定路径所对应的视图处理函数的名称。kwargs
:任意关键字参数可以在字典中传递给目标视图。name
:为地址起别名,在模板中地址反向解析时使用。
# Django默认配置
path('admin/', admin