创建新的Django框架的虚拟环境:
注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Administrator.virtualenvs)
# Windows安装pipenv
pip install pipenv
pipenv shell # 进入虚拟环境
exit # 退出虚拟环境
pipenv --rm # 删除整个环境 不会删除pipfile
Window系统安装Django 2.2(注意要在虚拟环境下)
# Window系统安装Django 2.2
在Django框架中,将Controller改换成Templates模板,就成了MVT,但是在Django中的View视图负责的功能就是MVC思想中Controller的功能。
推荐使用命令行创建项目的方法
# 进入虚拟环境,xxx是自己创建的虚拟环境文件夹
cd /d xxx
pipenv shell
# 查看虚拟环境python的版本,需要是3.6的
python
# 创建项目:打开终端,使用命令:
django-admin startproject [项目名称]
比如:django-admin startproject first_project。
需要使用Pycharm Professional版本的,社区版本无法创建。
Pycharm专业版本激活方法参考:https://shimo.im/docs/DJ3h3tJv98ppTYyH/read
# 启动Django项目
python manage.py runserver
# 如果想要在项目启动的时候指定端口,可以执行
python manage.py runserver 8888
# 此时就可以使用http://127.0.0.1:8888/ 端口进行访问Django
上图中有红色部分提醒信息是因为有些Django默认的信息我们还没更改,比如admin, auth, contenttypes, sessions.
运行成功显示界面效果:Django默认开启Debug模式,此时版本为2.2.
1.选择Edit Configurations选择项
2.添加 runserver 参数
3.在manage.py文件中右键选择Run manage,项目启动成功如下:
以下是Django项目固定的设置,不同于Flask框架。
python manage.py [子命令]
。python manage.py help
看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。因此这里要有一个概念: django项目由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app。
项目要求:高内聚低耦合,两个独立模块的联系越少越好。
python manage.py startapp [app名称]
应用注册
建立应用和项目之间的联系,需要对应用进行注册。
修改 settings.py中的INSTALLED_APPS配置项
测试代码:
utls.py文件定义和绑定不同的路由,这种方法和路由都在一起,后期会造成项目的代码文件臃肿。
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
# django框架中写视图函数,必须要传参request
def index(request):
return HttpResponse("hello world") # 返回值必须是 HttpResponse包裹住的类型
# django框架中写视图函数,必须要传参request
def book(request):
return HttpResponse("图书首页") # 返回值必须是 HttpResponse包裹住的类型
urlpatterns = [
path('admin/', admin.site.urls), # django默认路由前面有/,不需要添加
path('', index), # 路由为/,绑定的方法是index,此时不能加()
path('book/', book), # 路由为book/,绑定的方法是book
]
book/views.py 文件中定义路由的方法
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
# django框架中写视图函数,必须要传参request
def book(request):
return HttpResponse("图书首页") # 返回值必须是 HttpResponse包裹住的类型
# django框架中写视图函数,必须要传参request
def index(request):
return HttpResponse("hello world") # 返回值必须是 HttpResponse包裹住的类型
utls.py文件绑定不同的路由
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from book.views import book # 从其他app模块中导入定义的路由方法
from book.views import index
urlpatterns = [
path('admin/', admin.site.urls), # django默认路由前面有/,不需要添加
path('', index), # 路由为/,绑定的方法是book模块中views.py的index方法
path('book/', book), # 路由为book/,绑定的方法是book模块中views.py的index方法
]
• 开启了debug模式,那么修改代码,然后按下ctrl+s,那么Django会自动重启项目
• Django项目中代码出现了问题,在浏览器中和控制台中会打印错误信息
• 如果项目上线了,关闭debug模式,不然有很大的安全隐患,因为项目错误信息会显示在页面上,不安全
• 关闭DEBUG模式,在setting文件中,将DEBUG = False