Django项目启动 – 潘登同学的后端笔记

文章目录

    • Django项目启动 -- 潘登同学的后端笔记
  • 快速启动
    • 创建子应用
  • Django介绍
    • MVC模式
    • MTV模式
    • ORM映射
  • Django请求
  • Django配置文件
    • 配置详解

快速启动

virtulaenv django_env
pip install django
django-admin startproject MyFirstDjango
cd MyFirstDjango
python manage.py runserver

目录结构

MyFirstDjango/manage.py        # 启动文件MyFirstDjango/__init__.py  # 初始化文件settings.py  # 数据库配置urls.py      # router控制wsgi.py      # 项目部署文件

创建子应用

当然可以在原MyFirstDjango下写,但是有时候想创建子应用,与MyFirstDjango应用有一些文件的隔离

创建一个叫myapp01的子应用

python  manage.py  startapp  myapp01

Django介绍

MVC模式

​ MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • M: 管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。

  • V: 负责把数据格式化后呈现给用户。

  • C: 接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。

MTV模式

​ Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

  • M: 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

  • T: 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

  • V: 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。

ORM映射

ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。

ORM 有下面这些优点

  • 数据模型都在一个地方定义,更容易更新和维护,也利于重用代码。
  • ORM 有现成的工具,很多功能都可以自动完成,比如数据消毒、预处理、事务等等。
  • 它迫使你使用 MVC 架构,ORM 就是天然的 Model,最终使代码更清晰。
  • 基于 ORM 的业务代码比较简单,代码量少,语义性好,容易理解。
  • 你不必编写性能不佳的 SQL。

ORM 也有很突出的缺点

  • ORM 库不是轻量级工具,
  • 对于复杂的查询,ORM 要么是无法表达,要么是性能不如原生的 SQL。
  • ORM 抽象掉了数据库层,开发者无法了解底层的数据库操作,也无法定制一些特殊的 SQL。

Django请求

myapp01\view.py中设置

from django.shortcuts import render,HttpResponse# Create your views here.
def first_test(request):print('第一个Django项目views')return HttpResponse('Django项目第一次请求成功')def first_html(request):html = '''<html><body><form method="post">用户名:<input name = "username" type="text"></input></br>密码:<input name = "password" type = "password"></input></br><input type="submit" value="登录"></input></form></body></html>'''return HttpResponse(html)

urls.py配置

from myapp01 import viewsurlpatterns = [path('admin/', admin.site.urls),path('test/',views.first_test),path('login/',views.first_html),
]

启动项目,并在浏览器中打开,127.0.01:8000/test/127.0.01:8000/login/

Django配置文件

django项目创建后,在主应用中,会有一个settings.py文件,这个就是该项目的配置文件

  • settings文件包含Django安装的所有配置
  • settings文件是一个包含模块级变量的python模块,所以该模块本身必须符合python规则,并且可以使用python的语法
  • settings中的所有配置项的key必须全部大写
  • settings中每一个配置项都有默认值,默认配置内容在django/conf/global_settings.py中可以查看到,项目中不需要导入该模块,django框架会自动获取
  • settings中可以添加自定义的配置项

配置详解

import os
"""当前文件所在文件夹的上一级目录的绝对路径切记2个 os.path.dirname
"""
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))"""用于加密session,一个随机的字符串这样生成:from django.core.management import utilsutils.get_random_secret_key()
"""
SECRET_KEY = '=*f&bx760nyar7@8lb8!w$9h(3ea6p3apl$iua!td1q%-u5r4='# 调试模式,可以看到错误的所有相信信息,部署时一定要修改为False
DEBUG = True"""允许访问的域名设置开发环境不用理会运行环境,配置 DEBUG = False后,如果允许所有域名访问,则设置 ALLOW_HOSTS = ['*']如果指定某些域名可以访问,则设置 ALLOW_HOSTS = ['*.baidu.com']
"""
ALLOWED_HOSTS = []"""应用的配置,如:'polls.apps.PollsConfig'如果没有 PollsConfig ,那么可以配置为  'polls'
"""
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles', # 只有 DEBUG = Ture 才有效'myapp01'  # 子应用必须配置,否则不起作用
]"""中间层配置自己编写的 中间层 需要配置在最后譬如:mymidlle.md.TestMiddleware
"""
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]# 配置基础的urls
ROOT_URLCONF = 'firstdjangopy.urls'# 配置模板
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]# 服务器部署的WSGI配置
WSGI_APPLICATION = 'firstdjango.wsgi.application'"""数据库配置mysql在python3的使用,需要在 __init__.py 中加入以下代码:import pymysqlpymysql.install_as_MySQLdb()
"""
# DATABASES = {#     'default': {#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django_test1','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306',}
}"""用户密码验证
"""
AUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# 语言选择 , zh-Hans 为中文
LANGUAGE_CODE = 'en-us'# 时区 Asia/Shanghai 是中国时区
TIME_ZONE = 'UTC'# 国际化
USE_I18N = True# 本地化
USE_L10N = True# 使用时区,配套TIME_ZONE使用,必须设置为 False
USE_TZ = False"""静态文件的路径,默认是 static如果在各自项目的static目录以外,还有目录存放静态文件,需要添加如下属性:STATICFILES_DIRS = (os.path.join(BASE_DIR, "common_static1"),'/var/www/static/',)
"""
STATIC_URL = '/static/'

Django项目启动相关推荐

  1. 开发必备知识点--django项目启动时,url加载之前,执行某个.py文件

    django项目启动时,自定义执行某个py文件 在任意的app下的apps.py中的Config类下自定义ready()方法,并且调用autodiscover_modules. app01/apps. ...

  2. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

    阅读目录 摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作 ...

  3. django项目启动加载训练的模型报错OSError: Unable to open file (unable to open file: name = ‘model/model_weigh完美解决

    1.原因分析 此错误原因多样通过网上整理有一下几种 ①h5py版本过高 ,重装h5py ② 相对路径改成绝对路径 ③文件无权限访问,点击文件属性,点击高级.赋予权限 ④这个是我报错的解决办法 因为他单 ...

  4. linux下使用nohup挂后台启动django项目

    django在linux上运行,一般在xshell远程连接后,是通过如下命令启动服务: python manage.py runserver 0.0.0.0:8000 但是这样有个弊端,窗口关闭服务就 ...

  5. ## Django项目命令启动

    一.Django项目命令启动 1. Django项目如何启动 export DJANGO_SETTINGS_MODULE=mysite.settings.dev python manage.py ru ...

  6. Django项目日志概述

    Django项目日志概述 本文环境python3.5.2,Django版本1.10.2 Django项目中日志的实现 Django项目中使用的日志,使用了Python标准库中的logging模块进行实 ...

  7. 怎么创建python django项目_python怎么创建django

    python怎么创建django?下面给大家带来具体的步骤: 一.在命令行中创建Django项目(Windows平台.python3.6) 1.建立虚拟环境(创建一个独立的Python运行环境) 为项 ...

  8. Django项目中使用第三方登录——支付宝登录

    1. 首先在支付宝开放平台(https://open.alipay.com/platform/home.htm)扫码注册信息 选择开发者中心选择研发服务 配置沙盒应用密钥 使用密钥生成工具生成公钥与私 ...

  9. Python Web框架 Django项目搭建与测试详解

    Django项目搭建 0. 项目准备: python:(目前更新到3.9了),下载地址: 点此下载python https://www.python.org/downloads/ python解释器: ...

  10. Pycharm社区版运行Django的三种方法(Pycharm添加配置参数快捷启动Django、Pycharm社区版Django项目创建)

    目录 Pycharm社区版运行Django的三种方法 Django安装和环境变量的配置(MacOS) 创建Project 启动Django Webserver 方法一:终端启动 方法二:pycharm ...

最新文章

  1. elegance suites bangkok info
  2. 高级指令——hostname指令【作用:操作服务器的主机名(读取、设置)】、id指令【查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…)】、whoami指令、ps -ef指令
  3. 如果用中文编程....那么... (如果..那么...这搭配很完整吧)
  4. Java当中的IO一
  5. Nginx配置中的log_format用法梳理(设置详细的日志格式)
  6. 为什么用 windbg 看 !address 显示出的Free是128T 大小?
  7. influxdb mysql对比_InfluxDB和MySQL的读写对比测试
  8. 北大mooc课程平台
  9. Spring/Spring boot正确集成Quartz及解决@Autowired失效问题
  10. Bitmap 图片说明
  11. autocad不能画图_学了这50条CAD技巧,画图速度提10倍!
  12. iMazing v2021绿色便携版iOS设备数据管理工具
  13. 【云原生之Docker实战】使用Docker部署BookStack文档管理系统
  14. 主分区损坏diskgenius_使用Diskgenius完成磁盘结构损坏且无法读取的的情况
  15. iOS 日记app的制作过程(Objective-C)
  16. swift-UIStoryboard故事板
  17. Connection error: QRedisClient compiled without ssh support
  18. llc变换器计算机仿真,LLC谐振变换器的参数设计
  19. uni-app项目配置UrlSchemes在外部打开APP
  20. python图像缺陷检测_python OpenCV 实现缺陷检测

热门文章

  1. 固态硬盘性能下降,造成win10卡顿,及解决方法
  2. 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理
  3. 单系统 台电x80pro_台电X80HD安装Win8单系统教程
  4. JS 获取当前页面url(不含参数)
  5. HTML点击头像修改页面,头像修改页.html
  6. java web后台开发跟手机APP后台开发有什么不同
  7. 单元格下拉全选快捷键_wps表格怎么选中单元格,快捷键是什么?
  8. Sm4【国密4加密解密】实战
  9. 应用时间序列分析案例操作--基于SAS软件,以北京市1980-2009年降水量为对象
  10. 怎么在win10服务器上搭建网站,win10怎么搭建web服务器 win10搭建web服务器的方法...