栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django初识下

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django初识下

http

Http协议是超文本传输语言

请求方式

get 获取服务端数据
post 向服务端提交数据
put 向服务端上传数据
delete 删除服务端的资源

状态码

状态码 状态码英文标示 意义
200 OK 请求成功 查询成功
201 修改和添加 成功
204 删除成功
301 Moved Permanently 客户端请求的资源已被永久移动到新的URL 重并项
302 Found 客户端的资源被临时移动用于三方登陆之后的跳转
304 Not Modified 请求的资源未被修改,可以继续访问原URL常用于使用缓存的情况下
400 Bad Request 客户端语法错误
401 Unauthorized 请求需要经过身份验证
402 Payment Required 保留状态码,为以后使用做准备
403 Not Found 客户端直接拒绝客户端的请求
404 Method Not Allowed 客户端请求的资源找不到
500 Internal Server Error 服务端内部错误
502 Bad Geteway 服务端内部错误,服务端错误的网关
503 Serbice Unavailable 服务端无法响应客户端的请求

django框架

Django主要采用MVT模式
MVT
M-model:模型,操作数据库功能部分
V-view:视图,处理业务逻辑
T-Template:模版,操作页面

MVC

M-model:模型,和MVT中的M是一样的
V-view:视图,和MVT的T是一样的
C-Controller:控制器,用来进行数据的逻辑操作

Django框架安装:pip install django==2.2.2
Django项目创建:django-admin startproject 项目名
启动项目:python manage.py runserver

Django 介绍

Django是一个开放源代码的Web应用框架,由纯Python写成

Django的特点

Django适合与内容有关的项目,常见的就是后台管理

子应用创建

python manage.py startapp 应用名

注意:文件夹名最好用字母或数字不能有特殊字符

模版配置

把html页面存到哪里就需要打开settings.py文件
project.settings.py
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’,
],
},
},
]

创建模版

有了这个文件夹的配置之后,接下来在项目根目录下创建与配置同名的文件夹template/
并在其中书写一个简单的
html*,并命名为index.html

hi 真不错

今天这个天气是晴天

# 视图渲染 在views.py中引入一个新的方法render这个方法专门用来返回一个html页面 #app.views.py from django.shortcuts import render

def index(request):
return render(request, ‘index.html’)

模版变量渲染

模版变量类似:{{ var }}
修改一下刚才的index.html页面

hi 真不错

今天这个天气是{{ weather }}

在页面中模版变量叫:weather,在视图函数代码中,就需要有一个**映射格式数据**他的key值对应html页面中的模版变量,value是这个模版变量渲染的结果 app.views.py from django.shortcuts import render

def index(request):
content = {‘weather’: ‘晴天’}
return render(request, ‘index.html’, content)

还可以直接用locals方法,将当前函数作用域下的变量及值组合为字典
app.views.py
from django.shortcuts import render
def index(request):
weather = ‘晴天’
return render(request,‘index.html’,locals())

总结render

render可以用来返回一个模版页面并将一个字典组合成的模版变量传递到模版页面上,完成页面的渲染
render(request, template_name, context=None)
‘’’
request: 固定接收 request 请求,与视图 han s 第一个参数相同
template_name: 为一个可以找到的模板页面,填写配置 template 的相对路径即可
context: 模板页面所需模板变量,是一个字典格式,key 为模版变量,value 为渲染的值
‘’’

模版语句循环、分支 for标签

固定格式:{% for 变量 in 循环对象 %}
{{变量}}
{% endfor %}
注意:模版语言中,不会出现索引超出范围的IndexError或者Key值不存在的KeyError,取不出任何东西则只是一个空

if标签

{% if %}用来判断
{% if test_list %}
列表不为空
{% elif test_dict %}
列表为空,字典不为空
{% else %}
列表字典均为空
{% endif %}

静态资源 静态资源概念

静态资源可以引入css、img、js等,来装饰我们的页面

静态资源路径配置

在settings中配置静态文件目录路径
STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static’),
)
STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录
在和settings的文件夹同级下创建static文件夹并保存到里面一张图片

静态资源模版使用

有了图片就可以直接引入并使用

{% load staticfiles %} hi {{ message }} {% tag %}***这个叫**模版标签**,**模版标签**不同于**模板变量**,**模版标签**经常用来**加载数据**,或这是一些处理**逻辑,**使用模版标签可以方便我们在模板页面上实现某些只有在后台代码中才可以实现的逻辑功能 在页面中要引入**静态资源**,*css*、*img*、*js*文件在引入时都需要通过***{% static "path" %}***来进行引入

注意:需要使用静态标签***{% static %}前使用{% load staticfiles %}***标签进行静态资源路径的加载

ORM映射 ORM映射概念

ORM映射关系是django与数据库之间的一个桥梁,可以使开发者不再关注如何去编写SQL语句直接一套ORM所提供的API借口即可方便对各种怪数据库进行交互

模型类编写

通过ORM映射在models.py种创建模型类
myapp/models.py
from django.db import models
Create your models here.
class Weather(models.Model):
weather = models.CharField(max_length=100,verbose_name=“天气”)
class Meta: # 定义元类
verbose_name_plural = “天气” # 可以控制模型类的属性 在后台管理站点中看到的效果
# 设置当前表名的一个可读的性更好的名字
def str(self): # 控制后台管理站点中添加对象的名字
return self.weather # 将天气2个字返回 效果都是在后台管理中站点看到的

CharField为字符串 max_length 最大长度 verbose_name 后台管理的字段名
IntegeField 整型
要记得在settings文件中进行配置
#myproject/settings.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘myapp’,
]

生成迁移文件

python manage.py makemigrations 创建数据库迁移文件

执行迁移

python manage.py migrate 根据数据库迁移文件生成对应SQL语句并执行

报错

sql = self.db.ops.last_executed_query(self.cursor, sql, params)
File “C:Users马家伟AppDataLocalProgramsPythonPython37libsite-packagesdjangodbbackendsmysqloperations.p
y”, line 146, in last_executed_query
query = query.decode(errors=‘replace’)
AttributeError: ‘str’ object has no attribute ‘decode’

解决方案:这个是因为operatins.py文件中的decode不对打开那个文件改成encode就ok了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/829095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号