Django入门与构建
官网:https://www.djangoproject.com/ 博客:https://www.liujiangblog.com/
Django介绍
Django是一个免费的开源的python WEB框架,包括足够用的中间件,用户可以基于Django在几个小时内完成web应用程序从概念到启动。 Django减少了Web开发中不必要的开销,对常用的设计和开发模式进行了封装,并对MVC架构提供了支持(Django中称之为MTV架构)。MVC是软件系统开发领域中一种放之四海而皆准的架构,它将系统中的组件分为模型(Model)、视图(View)和控制器(Controller)三个部分并借此实现模型(数据)和视图(显示)的解耦合。由于模型和视图进行了分离,所以需要一个中间人将解耦合的模型和视图联系起来,扮演这个角色的就是控制器。 稍具规模的软件系统都会使用MVC架构(或者是从MVC演进出的其他架构),Django项目中我们称之为MTV,MTV中的M跟MVC中的M没有区别,就是代表数据的模型,T代表了网页模板(显示数据的视图),而V代表了视图函数,在Django框架中,视图函数views.py和Django框架本身一起扮演了MVC中C的角色。
conda切换环境(看需要)
查看conda的环境
代码语言:javascript复制conda env list
输出为:
进入到conda命令终端
代码语言:javascript复制D:ProgramDataAnaconda3Scriptsactivate
输出为:
切换环境
代码语言:javascript复制conda activate py10
输出为:
安装虚拟环境
基于 virtualenv
1.安装虚拟环境库
代码语言:javascript复制pip install virtualenv
2.执行新建虚拟命令
代码语言:javascript复制virtualenv vip3newenv
会在VIP3出现一个env的虚拟python环境
3.激活/退出虚拟环境
代码语言:javascript复制activate.bat
退出虚拟环境
代码语言:javascript复制deactivate.bat
4.确定python解释器的位置: 方法一(指出解释器的位置和名称): 在shell命令行里输入:
代码语言:javascript复制import sys
print(sys.executable) #解释器
方法二(如果只是想查看路径的话): 在shell命令行里输入:
代码语言:javascript复制import sys
import os
print(os.path.dirname(sys.executable)) #解释器所在的文件夹
基于venv
1.创建虚拟环境
代码语言:javascript复制python -m venv vip3-django
输出为:
2.激活虚拟环境
代码语言:javascript复制vip3-djangoScriptsactivate
3.安装依赖
代码语言:javascript复制python -m pip install django
4.关闭虚拟环境
代码语言:javascript复制deactivate
Django项目构建
Django项目安装:
安装django
代码语言:javascript复制python -m pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
创建项目
代码语言:javascript复制django-admin startproject 你的项目名字
django-admin startproject djangoproject
最顶层的文件夹djangoproject是Python项目文件夹,这个文件夹的名字并不重要,Django项目也不关心这个文件夹叫什么名字。 该文件夹下有一个同名的文件夹,它是Django项目文件夹,其中包含了__init__.py、settings.py、urls.py、wsgi.py四个文件,与名为djangoproject的Django项目文件夹同级的还有一个名为manage.py 的文件,这些文件的作用如下所示:
- djangoproject/init.py:空文件,告诉Python解释器这个目录应该被视为一个Python的包。
- djangoproject/settings.py:Django项目的配置文件。
- djangoproject/urls.py:Django项目的URL映射声明,就像是网站的“目录”。
- djangoproject/wsgi.py:项目运行在WSGI兼容Web服务器上的入口文件。
- manage.py: 管理Django项目的脚本程序。
启动项目
代码语言:javascript复制python djangoprojectmanage.py runserver
在浏览器网址输入
代码语言:javascript复制127.0.0.1:8000
如果看到如下页面则代表安装成功
说明:
- 刚刚启动的Django自带的服务器只能用于开发和测试环境,因为这个服务器是纯Python编写的轻量级Web服务器,不适合在生产环境中使用。
- 如果修改了代码,不需要为了让修改的代码生效而重新启动Django自带的服务器。但是,在添加新的项目文件时,该服务器不会自动重新加载,这个时候就得手动重启服务器。
- 可以在终端中通过python manage.py help命令查看Django管理脚本程序可用的命令参数。
- 使用python manage.py runserver启动服务器时,可以在后面添加参数来指定IP地址和端口号,默认情况下启动的服务器将运行在本机的8000端口。
- 在终端中运行的服务器,可以通过Ctrl C来停止它 。通过PyCharm的“运行配置”运行的服务器直接点击窗口上的关闭按钮就可以终止服务器的运行。
- 不能在同一个端口上启动多个服务器,因为会导致地址的冲突(端口是对IP地址的扩展,也是计算机网络地址的一部分)。
创建应用
定位到djangoproject项目下
代码语言:javascript复制cd djangoproject
创建app,执行下面的命令:
代码语言:javascript复制django-admin startapp 你的app名字
django-admin startapp app1
到此目录如下
- __init__.py:一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
- admin.py:可以用来注册模型,用于在Django框架自带的管理后台中管理模型。
- apps.py:当前应用的配置文件。
- migrations:存放与模型有关的数据库迁移信息。
- __init__.py:一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
- models.py:存放应用的数据模型(MTV中的M)。
- tests.py:包含测试应用各项功能的测试类和测试函数。
- views.py:处理用户HTTP请求并返回HTTP响应的函数或类(MTV中的V)。
之后再在项目中添加两个文件夹:templates和static,templates存放html文件,static存放静态文件,此处建议static下再新建三个文件夹:js,css和images,分别存放js文件,css文件和图片。
Django运行测试
1.在settings.py中修改设置: 先导入os库:import os 再修改配置文件如下:
代码语言:javascript复制INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1.apps.App1Config', #新建的应用
]
2.在settings.py中templates修改设置:
代码语言:javascript复制'DIRS': [os.path.join(BASE_DIR,'templates')],# 指定templates的路径
3.在settings.py中修改时区语言:
代码语言:javascript复制#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
4.在settings.py中修改静态路径
代码语言:javascript复制STATIC_URL = 'static/'
# 指定静态文件的存放路径,新增部分
STATICFILES_DIRS=[
os.path.join(BASE_DIR,'static'),
os.path.join(BASE_DIR),
]
5.在templates路径下创建index.html文件
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>hello world</p>
</body>
</html>
6.在app1的views.py中创建后台逻辑:
代码语言:javascript复制def index(request):
return render(request,'index.html')
7.在urls.py中添加路由信息
代码语言:javascript复制from app1 import views # 新增
urlpatterns = [
path('admin/', admin.site.urls),
path('index',views.index) # 新增 对于index的访问,转发到views.index函数,进行处理
]
8.再次运行,就可以查看到相关页面了
代码语言:javascript复制python djangoproject/manage.py runserver
访问:
代码语言:javascript复制http://127.0.0.1:8000/index
输出为:
总结
本文主要是Django系列博客。包括虚拟环境安装,Django安装,配置修改与运行测试。
创建工程 创建app1 配置setting.py :配置app,templates路径 ,时区 ,语言, static路径 在templates创建html页面 在app1下的views.py创建函数,函数返回指定页面 在urls.py中配置路由,前端访问与views中函数的对应 传参: 后端通过{key:value} 前端接受: {{ key }}