Django初试
创建Django项目
首先创建一个Django项目,可是使用命令创建,也可以利用pyCharm创建
创建Django项目的命令
django-admin startproject 项目名 例如 django-admin startproject mysite 执行完后就在当前目录下创建了一个名为 mysite 的项目
创建一个应用
一般由于一个项目有多个功能,所以将每一个功能都分成一个应用(也就是一个目录),每个功能都有对应的目录,互不干扰。应用同样可以利用命令创建,也可以利用pyCharm创建
创建应用的命令
进入项目的目录中,输入下列命令,就常见好了一个应用 python manage.py startapp 应用名 例如: python manage.py startapp blog 就创建了一个名为 blog 的应用
在urls.py中添加URL路由
from django.contrib import admin from django.urls import path from blog import views # 导入blog项目下的views.py文件,为URL绑定视图函数 urlpatterns = [ path('admin/', admin.site.urls), path('show_time', views.show_time), # 要添加的URL ]
在views.py中添加对应的视图函数
from django.shortcuts import render, HttpResponse # Create your views here. def show_time(req): # 将该对象返回给apache或nignx,apache将该对象封装到http里面返回给浏览器 return HttpResponse('hello') # 返回给前端的实例对象
当然,除了给浏览器返回一个HttpResponse对象以外,还可以给浏览器返回一个页面,这个页面写在django项目的templates目录下,比如写一个index.html页面,然后在views.py的视图函数中用render()方法将这个也米娜返回给浏览器即可
def index(request): return render(request, "index.html") # 思考:为什么render()方法能找到templates下的index.html文件
在上面的视图函数中,render()方法直接引用了 index.html,按理说,views.py在blog应用的目录下,而ndex.html在与blog目录同级的templates目录下,这两个文件八竿子打不着,render()方法是怎样在views.oy中找到index.html的呢?
其实这一切都能归功于setttings.py文件,在settings.py文件中有一个叫做 TEMPLATES 的列表,里面第一个字典里面有一组键值对,键名为:'DIRS',它所对应的值就是templates的路径,因此,很容易想到,这个templates目录不一定非得命名为templates,也可以是其他的名字,只要在 settings.py中把它的路径配置清楚就可以了
启动Django项目
启动django项目同样也可以通过命令和pyCharm启动
启动项目的命令
python manage.py runserver ip地址 端口 例如:python manage.py runserver 8080
启动后在浏览器输入 127.0.0.1:8080/show_time 就可以看到项目返回的结果了