接上一篇:Django开发实战之定制管理后台界面及知识梳理(中)
1、前台设置
1、隐藏路由
当你输入一个错误地址时,可以看到这样的报错:
从这样的报错中,我们可以看到,这个报错页面暴漏了路由,存在安全隐患
,需要关闭,从这句:You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.你可以知道当DEBUG = True的时候就可以看到这样的报错信息,那么为了不让这样的报错信息出现,那么就需要关闭DEBUG
D:\cekai\xuexi\Tesla\Tesla\settings.py
DEBUG = False
可是当你打算运行: pdm run R
进行启动时,遇到了下面的报错
可以进行下面的设置:
D:\cekai\xuexi\Tesla\Tesla\settings.py
DEBUG = False
然后再次启动
再去刷新页面,页面展示如下:
在这里插入图片描述
除了这个方式,我们还可以修改admin的地址,因为:http://127.0.0.1:8000/admin 这个地方非常容易被别人猜到
所以我们可以改他的默认地址,比如把admin地址改成:admin_by_lanruo
urlpatterns = [
path("![admin_by_lanruo](https://img-blog.csdnimg.cn/direct/736f71f832ea4a83880608492b02eb58.png)
/", admin.site.urls),
path("lili/", include("lili.urls")),
path("accounts/", include("django.contrib.auth.urls")),
path("accounts/", include("lili.accouts_urls")),
]
2、设置默认首页
这样设置之后,首页的默认访问url就是:http://127.0.0.1:8000/
2、静态文件
1、关闭DEBUG模式后,Django不再处理静态文件
2、Django知识点梳理
1、核心流畅:接收请求,返回响应
流程:
接收请求=》匹配路由=》调用视图=》检查鉴权=》读取数据(GET,POST,FILES,SESSION,BODY)->
返回响应《= 生成响应(状态码,相应头,json,文件下载)《=操作数据库(ORM,MODEL,CRUD)
2、管理命令
1、manage.py
2、设置:settings.py
1、导入内容可以通过下面的方式导入
2、编辑视图函数
D:\cekai\xuexi\Tesla\lili\views.py
import json
from django.contrib.auth import login
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.http import HttpResponse, JsonResponse
from lili.models import Feedback
from django.conf import settings
def hello(request):
html = 'hello'
print(settings.NAME)
return HttpResponse(html)
3、添加路由
D:\cekai\xuexi\Tesla\lili\urls.py
from django.urls import path
from . import views
urlpatterns = [
# path('feedback/', views.feedback_view, name='feedback'),
path("", views.submit, name="submit"),
path("result/", views.result, name="result"),
path("hello/", views.hello, name="hello"),
# 定义更多的URL模式...
]
4、访问
访问链接:http://127.0.0.1:8000/hello/
可以看到:
lanruo
Name被打印出来
可以看出:
1、Django自动过滤了非大写
2、得到默认值
3、避免Django配置文件加载出错
3、数据库
1、连接数据库
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
2、操作数据库
models.py
3、后台管理
admin.py
4、视图
视图:函数
请求:参数
响应:返回值
5、路由
urls.py
将URL和视图建立映射关系