Django项目启动
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项目启动相关推荐
- 开发必备知识点--django项目启动时,url加载之前,执行某个.py文件
django项目启动时,自定义执行某个py文件 在任意的app下的apps.py中的Config类下自定义ready()方法,并且调用autodiscover_modules. app01/apps. ...
- Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)
阅读目录 摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作 ...
- django项目启动加载训练的模型报错OSError: Unable to open file (unable to open file: name = ‘model/model_weigh完美解决
1.原因分析 此错误原因多样通过网上整理有一下几种 ①h5py版本过高 ,重装h5py ② 相对路径改成绝对路径 ③文件无权限访问,点击文件属性,点击高级.赋予权限 ④这个是我报错的解决办法 因为他单 ...
- linux下使用nohup挂后台启动django项目
django在linux上运行,一般在xshell远程连接后,是通过如下命令启动服务: python manage.py runserver 0.0.0.0:8000 但是这样有个弊端,窗口关闭服务就 ...
- ## Django项目命令启动
一.Django项目命令启动 1. Django项目如何启动 export DJANGO_SETTINGS_MODULE=mysite.settings.dev python manage.py ru ...
- Django项目日志概述
Django项目日志概述 本文环境python3.5.2,Django版本1.10.2 Django项目中日志的实现 Django项目中使用的日志,使用了Python标准库中的logging模块进行实 ...
- 怎么创建python django项目_python怎么创建django
python怎么创建django?下面给大家带来具体的步骤: 一.在命令行中创建Django项目(Windows平台.python3.6) 1.建立虚拟环境(创建一个独立的Python运行环境) 为项 ...
- Django项目中使用第三方登录——支付宝登录
1. 首先在支付宝开放平台(https://open.alipay.com/platform/home.htm)扫码注册信息 选择开发者中心选择研发服务 配置沙盒应用密钥 使用密钥生成工具生成公钥与私 ...
- Python Web框架 Django项目搭建与测试详解
Django项目搭建 0. 项目准备: python:(目前更新到3.9了),下载地址: 点此下载python https://www.python.org/downloads/ python解释器: ...
- Pycharm社区版运行Django的三种方法(Pycharm添加配置参数快捷启动Django、Pycharm社区版Django项目创建)
目录 Pycharm社区版运行Django的三种方法 Django安装和环境变量的配置(MacOS) 创建Project 启动Django Webserver 方法一:终端启动 方法二:pycharm ...
最新文章
- elegance suites bangkok info
- 高级指令——hostname指令【作用:操作服务器的主机名(读取、设置)】、id指令【查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…)】、whoami指令、ps -ef指令
- 如果用中文编程....那么... (如果..那么...这搭配很完整吧)
- Java当中的IO一
- Nginx配置中的log_format用法梳理(设置详细的日志格式)
- 为什么用 windbg 看 !address 显示出的Free是128T 大小?
- influxdb mysql对比_InfluxDB和MySQL的读写对比测试
- 北大mooc课程平台
- Spring/Spring boot正确集成Quartz及解决@Autowired失效问题
- Bitmap 图片说明
- autocad不能画图_学了这50条CAD技巧,画图速度提10倍!
- iMazing v2021绿色便携版iOS设备数据管理工具
- 【云原生之Docker实战】使用Docker部署BookStack文档管理系统
- 主分区损坏diskgenius_使用Diskgenius完成磁盘结构损坏且无法读取的的情况
- iOS 日记app的制作过程(Objective-C)
- swift-UIStoryboard故事板
- Connection error: QRedisClient compiled without ssh support
- llc变换器计算机仿真,LLC谐振变换器的参数设计
- uni-app项目配置UrlSchemes在外部打开APP
- python图像缺陷检测_python OpenCV 实现缺陷检测
热门文章
- 固态硬盘性能下降,造成win10卡顿,及解决方法
- 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理
- 单系统 台电x80pro_台电X80HD安装Win8单系统教程
- JS 获取当前页面url(不含参数)
- HTML点击头像修改页面,头像修改页.html
- java web后台开发跟手机APP后台开发有什么不同
- 单元格下拉全选快捷键_wps表格怎么选中单元格,快捷键是什么?
- Sm4【国密4加密解密】实战
- 应用时间序列分析案例操作--基于SAS软件,以北京市1980-2009年降水量为对象
- 怎么在win10服务器上搭建网站,win10怎么搭建web服务器 win10搭建web服务器的方法...