【python项目实战】BBS论坛(2)页面初始设计

一、下载一个页面模板(当然也可以自己写)

找到如下页面,然后右键——另存为,全部保存

http://v3.bootcss.com/examples/navbar-fixed-top/#

下载下来的文件就是初步模板

二、编辑settings.py

1、加入 静态页面路径,并在项目目录里面新建statics文件夹

STATICFILES_DIRS = (
    "%s/%s" %(BASE_DIR, "statics"),
)

2、 加入DIRS,默认生成的是空 DIRS,启动服务后,会报异常

Exception Type: TemplateDoesNotExist
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‘,
            ],
        },
    },
]

三,下载css、js模板

http://www.bootcss.com/,使用 Bootstrap v3.3.5,简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。

下载jquery 2.1.4

http://www.jq22.com/jquery-info122  (jquery下载所有版本(实时更新))

把下载好的文件放入statics文件夹,

四、编辑urls.py

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^$‘, views.index, name="index" ),

]

五、编辑views.py

def index(request):

    articles = models.Article.objects.all()
    return render(request,‘index.html‘,{‘articles‘:articles})

六、run project,访问127.0.0.1:8000

正常情况下页面可以访问,但是页面格式失效,在浏览器中按F12,打开调试——console

runnerw.exe C:\Python27\python.exe C:/pyfile/pyproject/s11bbs/manage.py runserver 8000
Performing system checks...

System check identified no issues (0 silenced).
April 15, 2016 - 16:50:48
Django version 1.9.5, using settings ‘s11bbs.settings‘
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

可以看到是那些css,js文件路径问题,因为下载的模板html文件里面引用的css、js等文件都是原始路径,现在需要改为自己的路径

比如:

<!-- Bootstrap core CSS -->
    <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">

有的文件没有的话,需要去原始页面下载

比如:

navbar-fixed-top.css

body {
  min-height: 2000px;
  padding-top: 70px;
}

错误页面:一条一条排查

七、附代码:

## index.html

<!DOCTYPE html>
<!-- saved from url=(0049)http://v3.bootcss.com/examples/navbar-fixed-top/# -->
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="http://v3.bootcss.com/favicon.ico">

    <title>天天游戏论坛</title>

    <!-- Bootstrap core CSS -->
    <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="/static/bootstrap/css/navbar-fixed-top.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don‘t actually copy these 2 lines! -->

      <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>

    <!-- Fixed navbar -->
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="">游戏论坛</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="{% url ‘index‘ %}">综合讨论区</a></li>
            <li><a href="{% url ‘category‘ 1 %}">DOTA1</a></li>
            <li><a href="{% url ‘category‘ 2 %}">DOTA2</a></li>
            <li><a href="{% url ‘category‘ 3 %}">LOL</a></li>
            <li><a href="{% url ‘category‘ 4 %}">星际争霸</a></li>

          </ul>
          <ul class="nav navbar-nav navbar-right">
              <li class="dropdown">
                  <a href="./Fixed Top Navbar Example for Bootstrap_files/Fixed Top Navbar Example for Bootstrap.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">英雄<span class="caret"></span></a>
                  <ul class="dropdown-menu">
                      <li class="dropdown-header">角色分类:</li>
                      <li><a href="">中单</a></li>
                      <li><a href="">后期</a></li>
                      <li><a href="">辅助</a></li>
                      <li role="separator" class="divider"></li>

                  </ul>
              </li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">
        {% block page-container %}
            {{articles}}
            {{ request.path }}
        {% endblock %}

    </div> <!-- /container -->

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="/static/bootstrap/js/jquery-2.1.4.js"></script>
    <script src="/static/bootstrap/js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="/static/bootstrap/js/ie10-viewport-bug-workaround.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){

            var menus = $("#navbar a[href=‘{{ request.path }}‘]")[0];
            $(menus).parent().addClass("active");
            $(menus).parent().siblings().removeClass("active");
            console.log(menus);
        })

    </script>

</body></html>
时间: 2024-10-12 20:30:45

【python项目实战】BBS论坛(2)页面初始设计的相关文章

Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点

开发一个简单的BBS论坛 项目需求: 1 整体参考“抽屉新热榜” + “虎嗅网” 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发任何项目的时候,设计到数据库,

Django小项目简单BBS论坛

开发一个简单的BBS论坛 项目需求: 1 整体参考"抽屉新热榜" + "虎嗅网" 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发

Python项目实战:福布斯系列之数据采集

1 数据采集概述 开始一个数据分析项目,首先需要做的就是get到原始数据,获得原始数据的方法有多种途径.比如: 获取数据集(dataset)文件 使用爬虫采集数据 直接获得excel.csv及其他数据文件 其他途径… 本次福布斯系列数据分析项目实战,数据采集方面,主要数据来源于使用爬虫进行数据采集,同时也辅助其他数据进行对比. 本文主要是介绍使用爬虫进行数据采集的思路和步骤. 本次采集的福布斯全球上市企业2000强排行榜数据,涉及年份从2007年到2017年,跨越10多年. 本次采集的目标网站,

Jenkins部署Python项目实战

一.背景 我们工作中常用Jenkins部署Java代码,因其灵活的插件特性,例如jdk,maven,ant等使得java项目编译后上线部署一气呵成,同样对于脚本语言类型如Python上线部署,利用Jenkins强大的插件功能,轻松实现CI/CD,但如果部署多项目到同一台服务器涉及环境一致性问题,对此可以利用容器技术Docker解决,也可以利用Python虚拟环境例如virutalenv或conda等优秀等工具解决,在此由于后期根据requirements来安装依赖包比较慢,且后期需要将Pytho

【python项目实战】BBS论坛(3)页面输出数据,及跳转

一.主页输出简单数据 核心代码; index.html     <div class="container">         {% block page-container %}             {{articles}}             {{ request.path }}         {% endblock %}     </div> <!-- /container --> views.py def index(request

【python项目实战】BBS论坛(4)尝试页面美化

页面美化--选中的板块变灰色 使用标签<li class="active"> </li> 需要把显示的板块名元素,addClass("active") 那就需要找出当前显示的板块名称是哪个? 板块显示是根据板块id来设计url的,那通过获取当前页面url的path就能找到是哪个板块了 使用的变量是--{{ request.path }} 要找到匹配标签的表达式:$("#navbar a[href='{{ request.path }

【python项目实战】BBS论坛 (1)搭建项目框架

一.准备工作: Windows7-64位 python 2.7 mysql version: 5.7.12 django 1.9.5 IDE开发工具:pycharm 2.7 二.设计表结构 主要涉及点: 1.表的ER图,要设计逻辑,有哪些表,每个表有哪些属性 2.models的 模型常用字段要熟练,本次使用的有: CharField ForeignKey ImageField TextField DateTimeField BooleanField IntegerField ManyToMany

【python项目实战】BBS论坛(5)帖子列表展示

一.帖子中心区域是 <div class="container"> (1)在里面实现一个 <div class="row">,包含左右两个小模块区:<div class="col-md-8 left-content-panel">  和 <div class="col-md-4 right-sidebar"> 其中用 django内置的 class="row"

python项目实战:实时博客项目 源码下载

最终效果 ASGI .Django Channels 简介 ASGI 的完整说明我在去年做了一个翻译. ASGI 由 Django 团队提出,为了解决在一个网络框架里(如 Django)同时处理 HTTP.HTTP2.WebSocket 协议.为此,Django 团队开发了 Django Channels 插件,为 Django 带来了 ASGI 能力. 在 ASGI 中,将一个网络请求划分成三个处理层面,最前面的一层,interface server(协议处理服务器),负责对请求协议进行解析,