django前后端不分离代码结构详解

liurwei liurwei     2022-12-21     707

关键词:

Demo:  hello_pycharm

根目录文件:hello_pycharm [__init__.py  __pycache__  settings.py  urls.py  wsgi.py]

Apphello [admin.py  apps.py  __init__.py  migrations  models.py  tests.py  urls.py  views.py  __pycache__ ]

模板文件:templates

 

 

 

 

根路由urls中:

from django.conf.urls import url,include

from django.contrib import admin

from hello import views

 

urlpatterns = [

    url(r‘^admin/‘, admin.site.urls),

    url(r‘^hi/‘,views.hi),

    url(r‘^hell/‘,views.hello_use_template),

    url(r‘^hello/‘,include("hello.urls"))

 

]

 

App文件夹hello中的子路由urls中:一个应用app可以有一个路由 称为主应用的子路由也叫二级路由

urlpatterns = [

    

    url(r‘^a/‘,views.hi),

    url(r‘^b/‘,views.hello_use_template)

 

]

 

 

 

 

 

views中:

 

from django.shortcuts import render

from django.http import HttpResponse

 

def hello_use_template(request):

 

    return  render(request,"hello.html",context="name":"Gavin")

 

def hi(request):

 

    html = ‘‘‘<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<h1>Hello World!</h1>

 

</body>

</html>

    ‘‘‘

return HttpResponse(html)

 

 

模板(templates)中:hello.html

 

<!DOCTYPE html>

<html lang=‘en‘>

 

<head>

    <meta charset=‘UTF-8>

    <title>Title</title>

</head>

 

<body>

<h1>Hello name!</h1>

</body>

 

</html>

 

 

 

 

Settings中:

 

import os

 

print(__file__)

print(os.path.abspath(__file__))

print(os.path.dirname(os.path.abspath(__file__)))

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

 

SECRET_KEY= ‘ja=_kx#x^i0swyl_1b0f8*%p^8g5pj)d2!ovwk7hpopnqyaa‘

 

DEBUG = True

ALLOWED_HOSTS = []

INSTALLED_APPS = [

    ‘django.contrib.admin‘,

    ‘django.contrib.auth‘,

    ‘django.contrib.contenttypes‘,

    ‘django.contrib.sessions‘,

    ‘django.contrib.messages‘,

    ‘django.contrib.staticfiles‘,

    ‘hello.apps.HelloConfig‘,或者用app.py文件的name值简写:‘hello

]

 

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‘,

]

 

ROOT_URLCONF = ‘hello_pycharm.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_APPLICATION = ‘hello_pycharm.wsgi.application‘

 

DATABASES =

    ‘default‘:

        ‘ENGINE‘: ‘django.db.backends.sqlite3‘,

        ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),

    

 

 

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‘,

    ,

]

LANGUAGE_CODE = ‘zh-Hans‘

 

TIME_ZONE = ‘UTC‘

 

USE_I18N = True

 

USE_L10N = True

 

USE_TZ = True

 

STATIC_URL = ‘/static/‘

print(BASE_DIR)

print(os.path.join(BASE_DIR, ‘templates‘))

 

 

路由(b)经过模板渲染输出结果:

127.0.0.1:8000/hello/b/

 

‘’Hello August !

django开发:前后端不分离,开发个人博客(代码片段)

...调用二、写逻辑在views.py中,默认引入了   fromdjango.shortcutsimportrende 查看详情

django初探-前后端不分离(代码片段)

...这个文件可以在setting中自己配置1TEMPLATES=[23‘BACKEND‘:‘django.template.backends.django.DjangoTemplates‘,4‘DIRS‘:[os.path.join(BASE_DIR,‘templates‘)],5#‘DIRS‘:[os.path.join(BASE_DIR,‘templates2‘)],6#可以在这里自由配置从哪个目录下找前端页面views... 查看详情

django的crsf机制防御详解及在前后端分离中post数据到django-vue(代码片段)

django的crsf机制防御详解及在前后端分离中post数据到django 更新于: 2018-07-28 |  分类于 djangoCSRF(CrossSiteRequestForgery)跨站点伪造请求某个用户已经登陆了你的网站,另外有一个恶意的网站有一个指向你网站的链... 查看详情

什么是前后端分离与前后端不分离

  我起初认为前后端分离是,在软件开发过程中前后端分工就叫做前后端分离,其实是前端所有用到的数据都是后端通过异步接口的方式提供的,前端只管页面的展示及效果。   前端和后端不分离的时候,前端的页面也... 查看详情

django_类视图_mtv模式(代码片段)

Django_类视图_MTV模式两种开发模式MVT模式和两种开发模式类视图_HttpResponse_JsonResponse定义路由视图的路由条目处理不同类型的接口参数两种开发模式通常我们在程序中,有分为两种开发模式,分别为前后端不分离的开发模... 查看详情

django_类视图_mtv模式(代码片段)

Django_类视图_MTV模式两种开发模式MVT模式和两种开发模式类视图_HttpResponse_JsonResponse定义路由视图的路由条目处理不同类型的接口参数两种开发模式通常我们在程序中,有分为两种开发模式,分别为前后端不分离的开发模... 查看详情

vue发布中的前后端分离和前后端不分离

前后端分离思路:前端和后台完全分离.前端提供静态的css和js,在运行时将css和js给后端,后端进行数据的请求(ajax)前后端分离就是前端和后台在不同的服务器上。基本是前端一个nginx加css和js后端nginx加index.html当用户访问的时候... 查看详情

深入浅出:了解前后端分离优势以及前后端接口联调

目录:1.项目有前后端分离和前后端不分离;2.前后端接口联调;3.前端性能优化;一、项目有前后端分离和前后端不分离:  在前后端不分离架构中,所有的静态资源和业务代码统一部署在同一台服务器上。服务器接收到浏览... 查看详情

前后端分离与前后端不分离

前后端不分离  在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制的,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。  这种应用模式比较适合纯网页应用,但是当... 查看详情

前后端不分离

...不小心发了这篇,哈哈哈一直做后台管理系统,采用react前后端分离,以接口的形式相互交流,猝不及防得来了三个页面开发,然后:项目概况:二月开始接手A项目,该项目由前端写静态页面,php开发嵌套数据的形式展现,为期... 查看详情

前后端分离与前后端不分离的区别

前后端不分离   在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。    这种应用模式比较适合... 查看详情

drfserializer使用(代码片段)

drf序列化  在前后端不分离的项目中,可以使用Django自带的forms组件进行数据验证,也可以使用Django自带的序列化组件对模型表数据进行序列化。  那么在前后端分离的项目中,drf也提供了数据验证与序列化,相比于Django原... 查看详情

django-rest-framework(drf入门)(代码片段)

django-rest-frameworkrestful规范,drf入门,视图,序列化(最重要)响应,权限,认证频率,过滤,分页今日内容1web开发模式#前后端混合开发(前后端不分离):返回的是html的内容,需要写模板#前后端分离:只专注于写后端接口,... 查看详情

前后端分离项目(代码片段)

目录1.后端Django项目(1)settings.py文件(2)api/models.py文件(3)api/admin.py文件(4)urls.py文件(5)api/urls.py文件(6)api/views/course.py文件(7)api/serializers/course.py文件2.前端Vue项目(1)src/main.js文件(2)src/router.js文件(3)src/views/Course.vue文件1.后端Django项目目... 查看详情

django前后端分离开发解决跨域问题(代码片段)

django前后端分离开发解决跨域问题利用django-cors-headers插件来解决前后端分离时遇到的跨域问题第一步安装django-cors-headerspipinstalldjango-cors-headers第二步在settings.py文件中进行配置在INSTALLED_APPS里添加"corsheaders"INSTALLED_APPS=[...... 查看详情

django开发之前后端分离开发模式(代码片段)

...不同,服务器IP不同,这些都是跨域3.处理跨域的问题:安装django-cors-headers模块在settings.py中配置#注册appINSTA 查看详情

drf0.前后端分离

...HypermediaAPIimooc.com/article/304756https://www.imooc.com/article/304756django-guardian:Objectlevelpermissionssupport,对象级别的权限支持。 查看详情

django集成jwt基于token凭证方式,实现前后端分离(代码片段)

功能简介业务需求:今天想尝试为Django添加安全验证框架,但是看了相关Django涉及Authentication模块的配置,过于繁琐且不适合当前前后端分离趋势发展,所以放弃Django自带安全模块,使用Django集成Jwt基于Token凭... 查看详情