1.以字典的形式传递参数,在html页面渲染:
在views.ps下:定义函数
def myViews(request):#1.接收请求:
#2.处理数据的业务逻辑:
#3.返回请求
# return HttpResponse("<h2>我是一个页面视图</h2>")
# 返回模板:
context = {"weather":"今天是个大晴天",
'score': [100, 95, 55, 66],
'money':5000
}
return render(request,'index.html',context)
在index.html中渲染:
{# 通过键值对的键 来取数据#}
<p>天气怎么样:{{ weather }}</p>
{# 通过for指令获取数据:#}
<p>学生的成绩{% for i in score %}
{{ i }} 
{% endfor %}
</p>
{% if money < 100 %}
<p>可以买点小吃</p>
{% elif money < 500 %}
<p>你可以吃顿大餐</p>
{% else %}
<p>你可以吃顿米利奇</p>
{% endif %}
2.静态资源:
需要在settings.py配置中:
配置静态资源:
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
在主路径下创建一个(static包)存放静态数据,在index.html中输出静态资源:
{% load staticfiles %}
<img src="{% static '1.png' %}">
ORM(数据库)
1:在小黑框中创建一个库(create database 库名 charset=utf8;)
2:在主文件下的__init__.py下安装数据库:
import pymysql
pymysql.install_as_MySQLdb() #安装mysql数据库
# 先导包
3:在settings.py下的DATABASES中配置数据库:
'default': {
'ENGINE': 'django.db.backends.mysql',#数据库引擎
'HOST':'localhost',#指定主机
'PORT': 3306, #指定端口
'USER': 'root', #用户名
'PASSWORD':'3106', #密码
'NAME':'tiancheng',#指定数据库,需要创建数据库
}
4:在models.py下与数据库交互:
1.编写模型类,模型类用于生成数据库中的表:
class Games(models.Model):
# 会自动生成一个id字段,作为主键
# 字段 字符串类型 最大长度 后台管理的列名
game_name = models.CharField(max_length=20,verbose_name='游戏名')
price = models.IntegerField(verbose_name='价格')
5:元类,存放一些后端配置信息:
class Meta:
verbose_name = '游戏表' # verbose_name 后台管理的表名
verbose_name_plural = verbose_name #verbose_name_plural后台管理的表名 的 复数
db_table = 'games' #数据库中生成的 表名
6:魔法方法,直接输出对象时,输出的时游戏名:
def __str__(self):
return self.game_name
7:#编写完模型类,执行迁移操作,在数据库中生成表:
ctrl+c执行:
生成迁移文件 python manage.py makemigrations
执行迁移:python manage.py migrate
8: 创建超级用户:python manage.py createsuperuser
用户名:自己起
邮箱不要
密码:自己起
再一次确认密码:自己起
y
运行
9:在admin(管理数据中注册模型类):
1.导包:
from myapp.models import Games
把models.py中的生成表的类名导入
2.
# 注册超级用户模型类(表)就可以在admin添加数据了
admin.site.register(Games)
10:在视图(views.py)将数据库内容导入:
1.from myapp.models import Games
2.定义函数视图:
def myView2(request):
# 获取数据库中的数据:
data = Games.objects.all()
return render(request,'index2.html',{'games':data})
3.在urls.py下:
先导包:from myapp import views
再配置路由: path('myapp2/', views.函数名)
4.在html页面输出数据库中表里的内容