django基本内容学习(一)

3 篇文章 0 订阅
3 篇文章 0 订阅

一、django配置信息

1.setting.py的基本配置

BASE_DIR:当前项目在系统的具体路径

SECRET_KEY:随机值,用于用户密码、CSRF机制(表单提交)和会话Session等数据加密

DEBUG:开发调试阶段为True,部署上线后应为False

ALLOWED_HOSTS:DEBUG为True且为空时,项目只允许在127.0.0.1上访问,DEBUG为False时,此项为必填项,如果所有域名访问,填入'*'

INSTALL_APPS:

    'django.contrib.admin',----内置的后台管理系统

    'django.contrib.auth',----内置的用户认证系统

    'django.contrib.contenttypes',----记录项目中所有model元数据(orm框架)

    'django.contrib.sessions',----会话功能,表示当前访问网站的用户身份,记录相关用户信息

    'django.contrib.messages',----消息提示

    'django.contrib.staticfiles',----查找静态资源(包含css样式表和js文件)路径

2.模板:

django模板示例:

TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        'DIRS': [],

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

            ],

        },

    },

]

  • BACKEND:定义模板引擎,用于识别模板里面的变量和指令
  • DIRS:查找模板位置,默认为空
  • APP_DIRS:是否在App中查找模板文件
  • OPTIONS:用于填充RequestContext中上下文的调用函数,一般情况下不做修改

3.中间件:处理用户信息,中间件设置顺序固定,不能随意更改

MIDDLEWARE = [

    'django.middleware.security.SecurityMiddleware',----内置的安全机制,保障通信安全

    'django.contrib.sessions.middleware.SessionMiddleware',----会话session功能

    'django.middleware.locale.LocaleMiddleware',----支持本地语言

    'django.middleware.common.CommonMiddleware',---处理请求信息,规范内容

    'django.middleware.csrf.CsrfViewMiddleware',----开启CSRF防护功能

    'django.contrib.auth.middleware.AuthenticationMiddleware',----开启内置的用户认证系统

    'django.contrib.messages.middleware.MessageMiddleware',----开启内置的信息提示功能

    'django.middleware.clickjacking.XFrameOptionsMiddleware',----防止恶意程序点击劫持

]

二、编写URL规则:

1.include:

path('',include('index.urls'))

url为空,代表为网站的域名,即127.0.0.1:8000,通常为网站首页,include将该URL分发给index的urls.py处理

2.带变量的url

(1)url的变量类型:

  • 字符型
  • 整型:0和正整数
  • slug:注释、后缀、附属等
  • UUID:匹配一个uuid格式的对象
  • <year>:变量名为year,数据格式为字符型
  • <int:month>变量名为month,整型
  • <slug:day>day,slug格式

(2)正则表达式:eg:(?P<year>[0-9]{4})

  • ?P固定格式
  • <year>为变量编写规则
  • [0-9]{4}是正则表达式的匹配模式,变量长度为4,允许值为0-9

三、探究视图

1.构建网页内容:

     (1)下载功能的实现:

#urls.py代码

path('download.html',views.download)

#views.py代码

def download(request):

    response = HttpResponse(content_type = 'text/csv');#定义HTTPResponse的响应类型为text/csv类型,生成response对象

    response['content-Disposition'] = 'attachment;filename = "somefilename.csv"'#定义content-Disposition,设置浏览器下载文件的方式,attachment设置文件下载方式,filename文件名

    writer = csv.writer(response);#使用csv模块加载response对象,把数据写入response对象所设置的csv文件并将response对象返回到浏览器上

    writer.writerow(['First row', 'A', 'B', 'C'])

    return response;

    (2)render()函数:request和template_name为必需参数:

  • request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式
  • template_name:HTML模板文件名,用于生成HTML网页
  • context:对HTML模板的变量赋值,以字典格式表示,默认为空字典
  • content_type:响应数据的数据格式,一般为默认值
  • status:状态码,默认200
  • using:html模板转换为html的网页模板引擎

2.数据可视化:

(1)基本步骤

step1:定义数据模型,以类的方式定义数据表的字段,在数据库创建数据表时,数据表由模型定义的类生成

step2:在视图导入模型所定义的类,该类也称为数据表对象,django为数据表对象提供独有的数据操作方法,可实现数据库操作,从而获取数据库数据

step3:视图函数获取数据后,将数据以字典、列表或对象的方式传递给HTML模板,并由模板引擎接收和解析,生成相应的HTML网页

(2)通用视图:

  • TemplateView直接返回HTML模板,但无法将数据库数据展示出来
  • ListView能将数据库数据传递给HTML模板,通常获取某个表的所有数据
  • DetailView能将数据库的数据传递给HTML模板,通常获取数据表的单条数据

四、深入模板

1.模板继承的步骤:

step1:在模板index.html中使用{% extend "base.html" %}来继承模板base.html的代码

step2:由标签{% block body %}在继承模板的基础上实现自定义模板的内容

step3:由{% endblock %}结束block标签

2.自定义过滤器:

(1)过滤器的使用:

{{ variable | filter }}

过滤器filter处理变量variable,再将处理后的变量显示在网页上

(2)django过滤器种类:

https://www.cnblogs.com/Deaseyy/p/10859893.html

五、模型与数据库

1.构建模型:

(1)配置目标数据库信息:在settings.py中设置

(2)构建虚拟对象数据库,在相应app的models.py文件中以类的形式定义模型

(3)通过模型在目标数据库中创建相应的数据表

(4)在视图函数中通过对模型操作实现目标数据库的读写操作

2.django表字段数据类型和表字段参数

https://blog.csdn.net/big_white_py/article/details/102847956

3.对模型实现数据表数据的插入步骤:

step1:从models.py导入模型(类)

step2:对模型声明并实例化,生成对象p

step3:对对象p的实行逐一赋值,属性来自于模型中所定义的字段,完成赋值后再进行保存

六、表单与模型

1.初识表单:由四部分组成

  • 提交地址:设置用户提交的表单数据由哪个URL接受和处理,由控件<form>的属性action决定
  • 请求方式:设置表单的提交方式,通常为get或post请求
  • 元素控件:供用户输入数据信息的输入框,由HTML的<input>控件实现,type用于设置输入框类型
  • 提交按钮:供用户提交数据到服务器,同由HTML的<input>控件实现

2.django内置的表单字段:https://www.cnblogs.com/wuhengood/p/11328382.html

  参数:https://blog.csdn.net/weixin_34419326/article/details/92688469

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值