1、虚拟环境搭建
创建新的Django框架的虚拟环境:
注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Administrator.virtualenvs)
# Windows安装pipenvpip install pipenvpipenv shell # 进入虚拟环境exit # 退出虚拟环境pipenv --rm# 删除整个环境 不会删除pipfile
Window系统安装Django 2.2(注意要在虚拟环境下)
# Window系统安装Django 2.2
pycharm设置python解释器
2、MVC思想与Django的MVT区别
在Django框架中,将Controller改换成Templates模板,就成了MVT,但是在Django中的View视图负责的功能就是MVC思想中Controller的功能。
3、Django项目的创建
1. 命令行创建
推荐使用命令行创建项目的方法
# 进入虚拟环境,xxx是自己创建的虚拟环境文件夹cd /d xxxpipenv shell# 查看虚拟环境python的版本,需要是3.6的python# 创建项目:打开终端,使用命令:django-admin startproject [项目名称] 比如:django-admin startproject first_project。
注意:项目名称注意尽量不要有中文,项目路径也尽量不要有。
2. Pycharm专业版创建Django
需要使用Pycharm Professional版本的,社区版本无法创建。
Pycharm专业版本激活方法参考:https://shimo.im/docs/DJ3h3tJv98ppTYyH/read
4、运行Django项目
1. 命令行运行项目
# 启动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.
且Django默认自带后台
2. Pycharm启动项目
1.选择Edit Configurations选择项
2.添加runserver参数
3.在manage.py文件中右键选择Run manage,项目启动成功如下:
5、项目结构介绍
以下是Django项目固定的设置,不同于Flask框架。
manage.py:和项目交互基本上都是基于这个文件。一般都是在终端输入python manage.py [子命令]
。
可以输入python manage.py help
看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。settings.py:本项目的设置项,以后所有和项目相关的配置都是放在这个里面。Flask框架中是人为定义的config.py文件。urls.py:这个文件是用来配置URL路由的。比如访问http://127.0.0.1/news/是访问新闻列表页,这些东西就需要在这个文件中完成。Flask框架中是通过route的装饰器去配置路由,或者类视图绑定路由。wsgi.py:项目与WSGI协议兼容的web服务器入口,服务器部署的时候需要用到的,一般情况下也是不需要修改的。
1. project和app的关系
app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。因此这里要有一个概念:django项目由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app。
项目要求:高内聚低耦合,两个独立模块的联系越少越好。
2. 创建app
python manage.py startapp [app名称]
app中的文件
init.py 说明目录是一个Python模块models.py 写和数据库相关的内容views.py 接收请求,处理数据 与M和T进行交互tests.py 写测试代码的文件(暂时不需要关心)admin.py 网站后台管理相关的
应用注册
建立应用和项目之间的联系,需要对应用进行注册。
修改settings.py中的INSTALLED_APPS配置项
测试代码:
utls.py文件定义和绑定不同的路由,这种方法和路由都在一起,后期会造成项目的代码文件臃肿。
from django.contrib import adminfrom django.urls import pathfrom django.http import HttpResponse# django框架中写视图函数,必须要传参requestdef index(request):return HttpResponse("hello world") # 返回值必须是 HttpResponse包裹住的类型# django框架中写视图函数,必须要传参requestdef book(request):return HttpResponse("图书首页") # 返回值必须是 HttpResponse包裹住的类型urlpatterns = [path('admin/', admin.site.urls), # django默认路由前面有/,不需要添加path('', index),# 路由为/,绑定的方法是index,此时不能加()path('book/', book), # 路由为book/,绑定的方法是book]
3. 项目中真正的定义和绑定路由的方式
book/views.py文件中定义路由的方法
from django.shortcuts import render# Create your views here.from django.http import HttpResponse# django框架中写视图函数,必须要传参requestdef book(request):return HttpResponse("图书首页") # 返回值必须是 HttpResponse包裹住的类型# django框架中写视图函数,必须要传参requestdef index(request):return HttpResponse("hello world") # 返回值必须是 HttpResponse包裹住的类型
utls.py文件绑定不同的路由
from django.contrib import adminfrom django.urls import pathfrom django.http import HttpResponsefrom book.views import book # 从其他app模块中导入定义的路由方法from book.views import indexurlpatterns = [path('admin/', admin.site.urls), # django默认路由前面有/,不需要添加path('', index),# 路由为/,绑定的方法是book模块中views.py的index方法path('book/', book), # 路由为book/,绑定的方法是book模块中views.py的index方法]
4. DEBUG模式
• 开启了debug模式,那么修改代码,然后按下ctrl+s,那么Django会自动重启项目
• Django项目中代码出现了问题,在浏览器中和控制台中会打印错误信息
• 如果项目上线了,关闭debug模式,不然有很大的安全隐患,因为项目错误信息会显示在页面上,不安全
• 关闭DEBUG模式,在setting文件中,将DEBUG = False
Django框架学习——1—(虚拟环境搭建 MVC思想与Django的MVT区别 Django项目的创建 运行Django项目 项目结构介绍)