Django基本开发流程
Django的主要文件
Django按照MTV设计模式以松耦合的方式把不同功能分配到各个文件,这些文件各司其职,通过代码或配置的方式完成独立功能,并与其他文件协作:
urls.py 是进行URL配置的文件,是网址入口,建立URL表达式与视图函数的对应关系,也就是建立访问网址就调用对应函数的机制
views.py 是视图函数存放模块,处理用户发过来的请求。用户请求从url.py中的配置项映射过来,逻辑代码分析用户请求后,从数据库中提取数据,向templates文件夹中的模板文件传递数据
models.py 是数据模型,定义数据表结构,是数据库操作的基础
templates 目录中的文件是模板文件,这些文件是视图函数渲染改造的对象,一般是HTML文件,它与视图函数共同生成具有动态内容的网页。HTML文件中引用到的CSS、JavaScript、图像、音视频等文件一般会另外存放在static目录中,这两个目录都是需要手动创建的。
admin.py 是管理后台配置文件,经过简单的配置代码,就能让后台对数据库数据进行管理
settings.py 是Django配置文件,在文件中可设置应用程序模块、数据库类型、中间件等,可以让各应用程序共享配置内容
apps.py 是应用程序本身的配置文件
manage.py 是简单的命令文件封装文件,可以通过这个文件生成应用程序
Django基本开发流程
部署开发环境:
1、下载django库,这里采用终端命令下载:
pip install django
2、在python安装目录下找到Script目录,查看该目录下有没有django-admin.exe文件,如果有就是安装成功。然后将Script目录添加到环境变量path中,例如我是用的anaconda默认环境,我要在path环境变量中添加的就是C:\Anaconda3\Scripts,如果使用的是其他环境就在C:\Anaconda3\envs找到对应的python环境名再往下找
创建项目:
选择一个目录放置项目,终端进入该目录输入命令
django-admin startproject mypro
执行上述命令后我们就得到了一个名为mypro的目录,该目录我们暂且叫它根目录,之后所有的终端命令都是在这个目录下执行的。根目录下是一个manage.py文件和一个与根目录同名的mypro目录,里面的这个mypro目录暂且叫它项目目录,前边提到的urls.py和setting.py都在这个项目目录下面
创建应用程序:
终端进入项目的根目录,输入命令
python manage.py startapp myapp
执行上述命令后,根目录下会创建一个名为myapp的应用程序目录,前边提到的admin.py、apps.py、views.py、models.py都在这个目录下面
编写逻辑代码:
在myapp/views.py中编写视图函数
from django.shortcuts import *
def index(request):
hi = "hello world!"
return render(request,"demo01.html",{"hello":hi})
上述代码的意思就是将模板文件demo01.html,使用字典{“hi”:hi}映射去渲染模板文件中的模板变量。django.shortcuts库里面向客户端反馈信息的函数有三个:HttpResponse()、render()、redirect()。如果只是向客户端传输简单的内容,用HttpResponse()在里面写入字符串格式的html代码就可以,render()、redirect()是将已有的html文件传输过去,具体用法这里不再赘述。
建立URL与视图函数的对应关系:
在mypro/urls.py中编写对应关系
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path("admin/",admin.site.urls),
path("index/",views.index)
# path()函数的第一个参数是客户端的请求信息,第二个参数是视图函数
]
其实到这里,我们就可以通过终端命令让项目跑起来了,但是我们上面写的视图函数是向客户端传递一个渲染后的demo01.html,所以还需要把模板文件demo01.html写出来
加载html页面:
在项目根目录下创建模板文件目录templates,在templates目录下创建模板文件demo01.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body>
<h1>
{{ hello }} /* 模板变量 */
</h1>
</body>
</html>
模板变量格式为双花括号中间加一个变量名,变量名前后有空格,变量的值在视图函数中赋予。
模板文件写好后还需要让Django知道模板文件的位置,这是需要打开mypro/settings.py文件,找到TEMPLATES,修改DIRS值
TEMPLATES = [
{
"DIRS" : os.path.join(BASE_DIR,"templates"),
...
}
]
关于模板文件所引用到的静态文件存放目录static,也是同样需要在settings.py中配置一下。在项目根目录下创建目录static,然后打开mypro/settings.py文件先在列表INSTALLED_APPS中添加"django.contrib.staticfiles",再在mypro/settings.py文件中添加以下代码:
STATIC_URL = "/static/"
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"static"),
)
做完这些,一个简单项目就算是写好了。
运行项目:
终端进入项目的根目录,输入命令
python manage.py runserver
django运行程序默认使用端口8000,在浏览器上打开http://127.0.0.1:8000/index/就可以看到我们视图函数想让客户端看到的信息了