Django实践-01入门

2023-10-16 17:00:06 浏览数 (1)

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

如果看到如下页面则代表安装成功

说明:

  1. 刚刚启动的Django自带的服务器只能用于开发和测试环境,因为这个服务器是纯Python编写的轻量级Web服务器,不适合在生产环境中使用。
  2. 如果修改了代码,不需要为了让修改的代码生效而重新启动Django自带的服务器。但是,在添加新的项目文件时,该服务器不会自动重新加载,这个时候就得手动重启服务器。
  3. 可以在终端中通过python manage.py help命令查看Django管理脚本程序可用的命令参数。
  4. 使用python manage.py runserver启动服务器时,可以在后面添加参数来指定IP地址和端口号,默认情况下启动的服务器将运行在本机的8000端口。
  5. 在终端中运行的服务器,可以通过Ctrl C来停止它 。通过PyCharm的“运行配置”运行的服务器直接点击窗口上的关闭按钮就可以终止服务器的运行。
  6. 不能在同一个端口上启动多个服务器,因为会导致地址的冲突(端口是对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 }}

0 人点赞