#前言:
关于Django的基本操作我会分十天左右发完,最后会做个项目,大家有兴趣的话可以关注我坐等后续,并且欢迎各位大佬指正错误。
关于Django的配置创建我在上一篇博客中已经有详细的讲解了,有兴趣可以看这里:Python之创建Django(保姆级教程)-CSDN博客
这篇博客我会详细介绍Django创建好之后各个文件里面具体是写什么内容的以及一些注意点。其次我会着重介绍Django项目中 settings.py 文件中的配置信息和通过 urls.py 文件中对定义路由和视图函数之间的映射关系进行配置,其它文件内容我会在后续博客中持续更新。
一.详细讲解:
1.创建应用(app):
创建应用的目的是为了实现项目的功能,实现项目功能的分离。
在创建应用之前,我先说一下如何启动Django项目,因为这个Django项目不是由单独一个板块构成,它由很多有小的板块整合而成,所以运行它是不是运行代码那般操作,详细操作看下:
在创建好Django文件后在右上角点击你创建的Django文件后再运行才是运行整个Django项目。
然后运行结束后在运行框里点击下方Terminal后输入:python manage.py startapp 应用名称(注意这个应用名称同样不可以为中文),这样就创建好了一个应用文件。
2.Django项目文件的作用:
现在系统默认创建出的项目文件有这么多,其中:
myapp是我自己起的应用名字,untitled是外我自己起的Django文件名。
1.在myapp(自命名)文件夹下:
migrations:负责保存数据迁移记录。
admin.py:负责后台管理文件。
apps.py:用来注册app。
models.py:用来操作数据库、模型。
tests.py:测试文件,可以单独运行。
views.py:试图文件,响应数据操作。
2.untitled(自命名)文件下:
asgi.py:存放的是项目的配置文件。
settings.py:项目的配置文件。
urls.py:项目的路由配置。
wsgi.py:封装socket服务端的内容.
3.templates 文件:
存放html文件,模板文件。
4.manage.py 文件:
Django项目的启动执行文件啊。
3.Django项目中 settings.py 文件中的配置信息:
BASE_DIR = 项目的根目录。
SECRET_KEY = 秘钥,用来对数据加密。
DEBUG = Django项目的启动模式,默认Ture,启动之后项目执行过程中有异样会抛出异样信息,是在开发时会使用的状态 。当设置为False,表示生产环境,设置的前提是ALLOWED_HOSTS值不能为空。
ALLOWED_HOSTS = 设置允许访问这个项目的 ip。其中空列表表示只能访问当前主机(也即是127.0.0.1)。['*']表示所有访问。['192.168.163,31',...]表示允许指定的IP访问。
INSTALLED_APPS = 注册项目中的应用。
MIDDLEWARE = 注册中间件使用(拉黑IP等)。
ROOT_URLCONF = 配置根目录级别的路由。
TEMPLATES = 配置模板使用的模板引擎。
WSGI_APPLICATION = 项目运行在 WSGI 兼容的 web 服务器中。
DATABASES = 配置数据库信息。
AUTH_PASSWORD_VALIDATORS = Django 的授权认证。
LANGUAGE_CODE = 项目语言 "zh-Hans"表示中文。
TIME_ZONE = 项目使用的时区,"UTC"表示零时区,我们是东八区,"Asia/Shanghai"
STATIC_URL = 静态文件配置(css js image)
DEFAULT_AUTO_FIELD = 默认 auto 认证
4.注册应用:
在使用前需要先注册应用。
在 settings.py 文件中 INSTALLED_APPS 列表中最后添加配置信息 。
写法一:'myapp.apps.MyappConfig'-------也就是:[应用名称.apps.应用名称Config]
写法二:'myapp'[应用名称]
5.实现视图:
1.视图的响应,响应功能就要写到应用的 views.py 文件中:
注意使用前先导入:
from django.shortcuts import render,HttpResponse,redirect
def index(request):
'''
:param request: 接收浏览器发送的请求信息,视图函数必须要有这个参数
:return: HttpResponse 响应字符串信息
'''
return HttpResponse('大家好,我是小龙,最帅的那个人')
2.通过 urls.py 文件中对定义路由和视图函数之间的映射关系进行配置,使用 path 函数对路由的配置对应关系:
# 导入视图所在的应用的视图模块文件
from myapp import views
urlpatterns = [
path('index/' , views.index),
]
此时运行程序,在web段输入该路由就能显示views文件里的内容了:
3.响应 html 文件视图:
在views.py文件中:
def html_info(request):
# 响应 html 文件,需要使用 render
# 对 html 文件进行模板化
return render(request , 'info.html')
def html_info1(request):
# render(request , html文件 , 数据)
# render 传入的数据必须以字典类型传入
# return render(request , 'info2.html', {'name':'林谋','age':20,'address':'中国'})
data = {'name':'小龙','age':20,'address':'辽宁'}
return render(request , 'info2.html', data)
def html_info2(request):
name = '小龙'
age = 18
address = '地球'
'''
locals() 方法 把当前视图函数所在的名称空间中所有的名称全部传递到 html 文件中
'''
return render(request , 'info2.html' , locals())
在urls.py文件中:
urlpatterns = [
path('info1/' , views.html_info),
path('info2/' , views.html_info1),
path('info3/' , views.html_info2),
]
注意:html_info、html_info1、html_info2都是在templates文件夹下面创建的html内容。
4.重定向:
重定向就和html中的标签的作用差不多,是用来实现页面跳转的。
在views.py文件中:
def baidu(request):
# rediect 重定向 , 实现 url 跳转
return redirect('https://www.baidu.com')
def my(request):
# 重定向到项目中的 url
return redirect('/info2/')
def myview(request):
# 重定向到单前文件中的某个视图函数
return redirect(html_info2)
在urls.py中与上述用path方法调用的一致。
二.总结:
该文主要讲了:详细介绍Django创建好之后各个文件里面具体是写什么内容的以及一些注意点;Django项目中 settings.py 文件中的配置信息;通过 urls.py 文件中对定义路由和视图函数之间的映射关系;重定向等内容。如若各位大佬发现错误欢迎指正。