从零开始的Django learning-0

从零开始的Django learning

MTV MVC 本质上

MVC:

 - 模型
 		负责业务对象与数据库的映射
 - 视图
 		负责与用户的交互
 - 控制器
 		负责转发请求,对请求进行处理

MTV:

 - Model
 		负责业务对象与数据库的映射(ORM)
 - Template
 		负责把页面展示给用户
 -   View
 		负责业务逻辑,并在适当时调用Model和Template
 - Url
 		URl分发器,负责将一个个URl的页面请求分发给不同的View处理,View再调用对应的Model和Template

Django

用户业务操作逻辑:

	在页面输入url,根据url匹配对应的View函数,然后函数去Model中取数据,Model从数据库中存取数据,然后将数据返回给View,View将要展示的数据返回给Template,
	(https://img-blog.csdnimg.cn/20210207145434674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MDY4NjQ5,size_16,color_FFFFFF,t_70#pic_center)

用户通过浏览器向我们的服务器发起一个请求,这个请求会去访问视图函数:

  • 如果不涉及数据调用,那么视图函数直接返回一个模板给用户
  • 如果涉及到数据调用,那么View函数调用Model,模型去数据库查找元素,然后逐级返回
  • View函数把返回的数据填充到Template空位中,最后返回网页给用户

创建Django项目

.创建项目
	 - 命令行操作:
			django-admin startproject 项目名称
	 - pycharm
	 		file ---> new project ---- 选择Django ---> 配置路径和项目名称 ---> 配置环境(默认用系统环境) ----> 点击create(完成创建)
.创建应用
	-命令行操作:
			python manage.py startapp 应用名
			a.第一项配置: settings.py 中INSTALLED_APPS中加入应用名
	-pycharm
			file ---> new project ---- 选择Django --->	More Settings--->application name
.运行项目
	-命令行操作:
			python manage.py runserver
	-pycharm
			点击右上角的绿色三角按钮,如需更改配置信息,下拉选择edit configurations

项目开始

.URL---path 函数初识
	path(route,view,kwargs=None,name=None)
	-route: 路由,表示URL规则
	-view: 与route匹配的对应View函数
	-kwargs: 视图使用的字典类型的参数
	-name: **用户反向获取URL**
注: Django 2.0中可以使用re_path函数兼容1.x版本的url()方法

for example:
from django.urls import include,re_path,path
urlpatterns = [
	re_path(...,views.hello,name=hello),
	path('hello/', views.hello),
	url(r'^$', views.hello),
	]
.View---视图函数初识
	视图函数就是一个接受request请求,返回HttpResponse的python函数
for example:
from django.http import HttpResponse
def hello(request):
	return HttpResponse("hello world")
.Template---模板初识
	Django 模板中,变量引用使用 {{ 变量名}}    语句指令使用 {% 代码指令 %}
	b.第二项配置: settings.py 中TEMPLATES-DIRS的值为os.path.join(BASE_DIR, 'templates')
		BASE_DIR 代表manage.py文件所在目录

example:

  • context 字典中的键,对应相应Template中的变量 {{hello}}
    1).view:{“HTML变量名”:“views变量名”}
    2).变量过滤器: {{ 变量名 | 过滤器:可选参数 }}
    3).if/else : {% if condition %}
    … display
    {% endif %}
    4).for: {{{% for … %}
    … display
    {% endfor %}
    5).include 标签: {% include %} 标签允许在模板中包含其它的模板的内容。
    6).csrf_token 用于表单中

  • 2.编写runoob的url

from django.urls import path
from . import views
urlpatterns = [
    path('runoob/', views.runoob),
]
  • 1.View中新增一个对象 runoob
from django.shortcuts import render
 
def runoob(request):
    context          = {}
    context['hello'] = 'Hello World!'
    return render(request, 'runoob.html', context)
    

静态文件配置—先得创建statics目录

c.第三项配置: settings.py文件最下方
STATIC_URL = '/static/' # 别名 
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "statics"), 
]
注:在模板中使用需要加入 {% load static %} 代码
	子模版使用{% block 父名称%} 

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值