赵龙 全栈之路

网站运行逻辑

| Comments

网站基本结构

*路由(Route): 前端(View) <=> 后台(Model与Controller) <=> 数据库(Mysql) *

Route:网站路由确定网址,当用户点击超链接按钮时,向网站后端发出对应的指令,调出相应的网页。
Model:网站调用与处理数据库数据的中心。
View:网页内容的前端展示台。
Controller:网站后台的控制中心。

网站运行基本逻辑

用户打开网站对应网址,通过路由(routes)向网站发送 get 指令,获取网站页面前端(views)页面,在网站上进行操作向网站后台(Model与Controller)发送 post 指令,对网站数据库执行对应操作,通过 get 指令更新前端(views)页面。
网站最重要的部分是数据库,前端(View) 与后台(Model与Controller)可以根据需要进行优化或更换相应的框架,都是为了更好的使用与操作数据库的数据。只有数据库不能轻易更换。

Routes

在互联网早期发展,网站的路由设置只有 GET(读取),POST(发送表单)两种方法:

  • GET(读取):读取网站页面信息(网络爬虫会自动执行GET)。
  • POST(新增):向网站发送表单,让网站数据库新增一条数据(本质是向网站发送表单,网站数据库根据表单内容执行操作)。

在网站运营过程中,发现这样的设置让代码越发庞大与难以维护,为了简化路由设置增加了其他的新方法,以 Ruby on Rails 为例:

  • PUT(更新):本质还是 POST 动作,让网站数据库执行某一条数据更新覆盖。
  • DELETE(删除):本质还是 POST 动作,让网站数据库执行数据删除。

参考资料:

Model

在 rails 中,Model 必须与数据库的数据表对应,rails 中的数据表不用僵硬的设置外键,在 Model 根据项目逻辑灵活设置关联关系即可。跟数据库相关数据的处理自定义为项目需要的方法,直接供相应的 Controller 调用。

参考资料:

Views

在 rails 中,"form_for" 表单是为了简化常用的 form 表单而存在,gem ‘simple_form’ 更进一步简化了。

参考资料:

Controllers

在 rails 中,Controller 是否顺利执行的关键在于准确接收前端(View)传递的参数,使用 gem 'pry' 可以查看前端传递的参数。
设定前端参数的方法

# app/controllers/books_controller.rb
  def createa
    @book = Book.new(                
    :title => params[:book_title],  #手动设定接受前端参数
    :text => params[:book_text]
    )
  
    if @book.save
      redirect_to books_path
    else
      render 'new'
    end
  end


# app/views/books/indexa.html.erb

<p>
  <% @books.each do |book| %>
    <tr class="text-info">
      <td><%= book.title %></td>
      <td><%= book.text %></td>
      <td><%= book.book_stock %></td>
      <td>
          <%= link_to '显示', showa_books_path(book) %><span style="margin-left: 5px;">|</span>
                                                      #正下方是:手动设定传递的前端参数
          <%= link_to '借阅', add_to_borrow_books_path(:id => book.id), :method => :post, :class => "btn btn-primary btn-lg btn-danger" %>
      </td>
    </tr>
  <% end %>

Comments

comments powered by Disqus