【django】新闻模块——首页导航和类别显示【27】

【django】新闻模块——首页导航和类别显示【27】,第1张

数据准备:

a、SQL脚本录⼊新闻数据
$ mysql -h127.0.0.1 -u zl -p mangguodb</home/zhilong/Desktop/sucai/newsdata.sql
b、FastDFS服务器录⼊图⽚数据

1、准备新的图⽚数据压缩包

$ cd ~/Desktop
$ ls  
data.zip

2、删除 storage 中旧的data⽬录

$ cd /var/fdfs/storage

$ ls 
data logs 

$ rm -rf data/

$ ls 
logs

3、拷⻉新的图⽚数据压缩包到 storage,并解压

$ sudo cp ~/Desktop/data.zip ./

$ sudo unzip data.zip

4、查看新的data⽬录

首页导航和类别显示功能实现

全局上下文是整站共享的上下文数据 实现步骤:

1、在子应用下创建mycontext.py文件
2、编辑mycontext.py文件
3、配置文件中自定义全局上下文
4、模板中直接引用

新闻首页中的导航栏是公用的

一、创建全局上下⽂类
from .models import NewsChannel

def get_channels(request):
    '''获取导航信息'''
    channels=NewsChannel.objects.order_by('id')
    return {'channels':channels}

二、配置全局上下⽂
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',  # jinja2模板引擎
        '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',
                'newsapp.mycontext.get_channels'	## 指定⾃定义的全局上下⽂类
            ],
            # 补充Jinja2模板引擎环境
            'environment': 'mgproject.utils.jinja2_env.environment',
        },
    },
]
三、编辑base.html
<div class="header-nav-container">
			<div class="container">
				<div class="header-nav-wapper main-menu-wapper">

					<div class="header-nav">
						<div class="container-wapper">
							<ul class="teamo-clone-mobile-menu teamo-nav main-menu " id="menu-main-menu">
                                {% for channel in channels %}
                                    <li class="menu-item m-active">
                                        <a  style="font-weight: normal;font-size: 16px;" href="{{ channel.url }}" class="teamo-menu-item-title">{{ channel.name }}a>
                                    li>
                                {% endfor %}

								<li class="menu-item">
									<a style="font-weight: normal;font-size: 16px;" href="/about/" class="teamo-menu-item-title"  >更多a>
								li>
							ul>
						div>
					div>
				div>
			div>
		div>
<div class="widget widget-categories">
   <h3 class="widgettitle">h3>
	   <ul class="list-categories">
	       <li><a href="#">全部a>li>
	       {% for category in channels[0].newscategory_set.all() %}
	           <li><a href="#">{{ category.name }}a>li>
	       {% endfor %}
	   ul>
div>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/876291.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存