域名 AXUM.RS 将于 2025 年 10 月到期。我们无意再对其进行续费,如果你有意接续这个域名,请与我们取得联系。
  • AXUM.RS 现仅需人民币 3000 元(大写:叁仟元整。接受适度议价
  • 按照行业规则,AXUM.RS 到期后,大概率会进入长时间的赎回期,该期间内,如果你想拥有该域名,将要付出高额的费用
  • 我们已启用 AXUM.EU.ORG 域名,并将持续运营
  • 仅接受微信或支付宝交易
如果你对 AXUM.RS 有兴趣,请和我们进行联系:

排行榜

模板

{%extends "base.html"%} {%block content%}
<h1>排行</h1>
<table class="table">
  <thead>
    <tr>
      <th>#</th>
      <th>短链接</th>
      <th>原链接</th>
      <th>访问次数</th>
    </tr>
  </thead>
  <tbody>
    {% for row in urls %}
    <tr>
      <td>{{ loop.index }}</td>
      <td>
        <a href="//{{short_url_domain}}/{{ row.id }}" target="_balnk"
          >{{short_url_domain}}/{{ row.id }}</a
        >
      </td>
      <td>
        <div
          style="width: 100%; height:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;"
        >
          <a href="{{ row.url }}" target="_balnk">{{ row.url }}</a>
        </div>
      </td>
      <td>{{ row.visit }}</td>
    </tr>
    {% endfor %}
  </tbody>
</table>
{%endblock%}

hanlder

/// 排行
pub async fn rank(Extension(state): Extension<AppState>) -> HandlerHtmlResult {
    let handler_name = "rank";
    let client = get_client(&state, handler_name).await?;
    let result = db::rank(&client)
        .await
        .map_err(log_error(handler_name.to_string()))?;
    let tmpl = RankTemplate {
        urls: result,
        short_url_domain: state.short_url_cfg.domain.clone(),
    };
    render(tmpl).map_err(log_error(handler_name.to_string()))
}

数据库操作

要查看完整内容,请先登录