MVT小案列

本文介绍了Django项目开发流程,包括创建模型类、生成迁移文件和表、通过模型类操作数据表、定义视图函数、配置urls以及创建模板文件夹等步骤。同时提到导入模型类时因pycharm路径问题报错,配置urls需用正则表达式分组,总结了浏览器请求页面的处理流程。

1.创建模型类:

from django.db import models

# Create your models here.

class BookInfo(models.Model):
    '''图书模型类'''
    title = models.CharField(max_length=20)
    pub_date = models.DateField()
    read = models.IntegerField(default=0)


class HeroInfo(models.Model):
    # 关系属性,建立图书类和英雄类一对多关系
    book = models.ForeignKey('BookInfo')
    name = models.CharField(max_length=5)
    # 性别采用布尔字段,默认Flase为男
    gender = models.BooleanField(default=False)
    comment = models.CharField(max_length=120)

2.生成迁移文件和执行迁移生成表:

python manage.py makemigrations
python manage.py migrate

3.通过模型类操作数据表:

python manage.py shell

   导入模型类:

from booktest.models import BookInfo,HeroInfo

  进行数据操作:

>>> b = BookInfo()  # 定义一个BookInfo类的对象
>>> b.title='天龙八部'  # 给title属性赋值
>>> from datetime import date
>>> b.pub_date = date(1990,10,11)
>>> b.save()  # 执行这部才会将数据保存进数据库
>>> b2 = BookInfo()
>>> b2.title = '射雕英雄传'
>>> b2.pub_date = date(1991,1,1)
>>> b2.save()
>>> h = HeroInfo()
>>> h.name = '郭靖'
>>> h.gender = False
>>> h.comment = '主角,武功盖世'
>>> h.book = b2
>>> h.save()
>>> h2 = HeroInfo()
>>> h2.name = '乔峰'
>>> h2.gender = False
>>> h2.book = b
>>> h2.save()
>>> h2.comment = '男主角,厉害'
>>> h2.save
<bound method Model.save of <HeroInfo: HeroInfo object>>
>>> h2.save()

最后,可以看出数据都已添加进数据库

 

 

4.定义视图函数:

​
​
from django.shortcuts import render
from booktest import models  
# Create your views here.

def show_books(request):
    '''显示图书详细信息'''
    # 1.从M中获取图书信息
    books_info = models.BookInfo.objects.all()  # 返回一个对象列表
    # 2.返回数据
    return render(request, 'booktest/show_books.html', {'books': books_info})


def detail(request, bid):
    # 根据bid查找图书信息
    book_info = models.BookInfo.objects.get(id=bid)
    # 查询出book_info图书中所有的英雄人物信息
    heros_info = book_info.heroinfo_set.all()
    # 返回数据
    return render(request, 'booktest/detail.html', {'book': book_info, 'heros': heros_info})

​

​

注意:第二行我想from booktest.models import BookInfo这样导入,但是Django会报错找不到models,所以我直接导入models。这是因为pycharm路径问题,后续找出解决方案。

 

5.配置urls:

from django.conf.urls import url
from booktest import views

urlpatterns = [
    url(r'^books$', views.show_books),
    url(r'^books/(\d+)$', views.detail),  # 利用正则表达式分组后,django会把分组的内容当做参数传进视图函数中

]

注意:这里要利用正则表达式分组,这样django会把内容传递给视图函数中的参数,这里是传递给bid这个参数

 

6.创建模板文件夹,分别定义books.html和detail.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>{{ book.title }}</h1>
英雄信息如下:<br>

<ul>
    {% for hero in heros %}
        <li>{{ hero.name }}---{{ hero.comment }}</li>
    {% empty %}
        <li>当heros这个列表为空时执行这条语句</li>
    {% endfor %}
</ul>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<ul>
    <!-- 这里返回的是对象,要想得到标题就 对象.标题 -->
    {% for i in books %}
        <li><a href="/books/{{ i.id }}">{{ i.title }}</a> </li>
    {% endfor %}
</ul>
</body>
</html>

总结:当一个浏览器向Django网站服务器请求页面时,先会到项目的urls中进行匹配,然后再到应用的urls中进行匹配,匹配成功之后执行相应的视图函数,在视图函数中调用模板文件,最后返回内容显示给浏览器。

提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值