0
点赞
收藏
分享

微信扫一扫

##保持状态

佛贝鲁先生 2022-04-27 阅读 28
python

创建过程:
1.打开setings.py文件
2. TEMPLATES选项
3.修改DIRS属性
4.HTML文件位置

TEMPLATES = [ # 模板配置 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’,
],
},
},
]

创建:
1.首先在配置过模板之后,在根目录下创建与模板配置同名的文件夹templates
2.然后在其文件夹后书写一个后缀名为html并且命名为index.html
实例代码

Title

8888

# 渲染在页面上

视图渲染的过程:
1.接上,已经配置好了模板和目录
2.让视图返回如上所创的文件
3.并引用一个新的方法为render这个是专门用来返回html页面

过程:app文件夹->views.py文件

from django.http import HttpResponse #导包

视图函数 request是请求的意思

def MyView(request):
return HttpResponse(‘

这是我的一个视图

’)
#返回一个模板页面 使用render方法

模块变量的分类:
{{var}} 可以用来改变在页面上写死的情况

在views.py中

from django.http import HttpResponse #导包

Create your views here.

视图函数 request是请求的意思

def MyView(request):
countend ={
‘age’:18,
‘scores’:[100,52,66,89,22],
‘gram’:{
‘name’:“安吉拉”,
‘atk’:‘6’,
‘sex’:‘女’
}
}
return render(request,‘index.html’,countend) #返回一个模板页面 使用render方法

在index.html文件中:

hi

真不错

今天这个天气{{ weather }}

模板语句循环

for标签:

作用:
对视图函数传递的数据进行遍历访问例如(字符串,列表,元组,字典,集合等)数据

格式:
{% for %} 和 {% endfor %}

在index.html文件中

Title

各个组员的分数为: {% for score in scores%} {{score}} {% endfor %}

#循环遍历字典

{% for key,value in gram.items %} {{ key }}:{{ value }} {% endfor %}

在views.py中

from django.http import HttpResponse #导包

Create your views here.

视图函数 request是请求的意思

def MyView(request):
countend ={
‘age’:18,
‘scores’:[100,52,66,89,22],
‘gram’:{
‘name’:“妲己”,
‘atk’:‘45’,
‘sex’:‘女’
}
}
return render(request,‘index.html’,countend) #返回一个模板页面 使用render方法

if标签

作用:
对模板变量的值进行判断

格式:
{% if %} 如果1
{% elif %}如果2(1和2是并列的关系)
{% else %}否则
{% endif %}

在index.html中

Title

{% if age > 100 %} 哇,美女 {% else %} 继续漂亮 {% endif %}

在views.py中

from django.http import HttpResponse #导包

视图函数 request是请求的意思

def MyView(request):
countend ={
‘age’:18,
}
}
return render(request,‘index.html’,countend) #返回一个模板页面 使用render方法

静态资源使用前准备:
静态的Django不能像之前的HTML代码直接引用
1.在目录创建static/在其中存放图片

project/
project/
app/
template/
static/
img/
1.jpg

2.在settings中配置静态文件如下

STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static’),

*STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录 *

在index.html中

{% load staticfiles %} hi

{{ message }}

图片

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

在myapp->models.py中创建

from django.db import models

Create your models here.

编写模型类 会自动生成id字段那也叫作编号

class Game(models.Model):
name=models.CharField(max_length=20,verbose_name=‘角色名’) #char 为字符 Fileld字段 CharField字符串 max_length最大长度 verbose_name 后台管理的字段名
atk = models.IntegerField(verbose_name=‘攻击力’)#IntegerField整形的意思
level = models.IntegerField(verbose_name=‘等级’)

当某个子应用APP涉及到了数据库的使用时,要记得在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 语句并执行
1
在子应用下的models.py下

from django.db import models

Create your models here.

编写模型类 会自动生成id字段那也叫作编号

class Game(models.Model):
name=models.CharField(max_length=20,verbose_name=‘角色名’) #char 为字符 Fileld字段 CharField字符串 max_length最大长度 verbose_name 后台管理的字段名
atk = models.IntegerField(verbose_name=‘攻击力’)#IntegerField整形的意思
level = models.IntegerField(verbose_name=‘等级’)

创建超级文件

python .\manage.py createsuperuse

注:输入的密码不要用数字键盘,因为在注册的时候密码和确认呢密码是看不见的有的电脑会不支持数字键盘

from django.shortcuts import render
from myapp.models import Game # 导包

from django.contrib import admin
from goods.models import People

Register your models here.

admin.site.register(People)

注:在admin中执行注册页面

ORM模版页面的操作
在view中实现的效果

def MyView(request):
game_data =Game.objects.all()
content ={
‘games’:game_data
}
return render(request,‘index2.html’,content)

在index中实现的渲染效果

Title {% for game in games %} {% endfor %}
</table>
编号角色攻击力等级
{{ game.id }}{{ game.name }}{{ game.atk }}{{ game.level }}
举报

相关推荐

0 条评论