美文网首页Django - 开发站点
Django NBA Web开发 - Step 1 首页建立

Django NBA Web开发 - Step 1 首页建立

作者: AllenBigBear | 来源:发表于2019-02-26 21:07 被阅读2次

    自己之前用Flask撸过网站,现在重新学习Django框架,网上博客教程不少,不想完全模仿博客教程。

    所以自己构思一个和NBA有关系的网站。

    目前构思的基本功能是用户基本功能: 注册/登录/注销/修改密码/重置密码

    博客功能:发布博客/发表评论/点赞

    其他自定义功能:自定义头像 / 多功能登录(邮箱或者用户名都可登录)

    这篇主要记录一下首页和球队信息的实现.
    目前不涉及前端美化,只设计到功能的实现

    开发环境:

    Django 2.1.5 + Python 3.5 + MySQL
    环境的搭建就不在这里叙述了,网上大量文章

    1: 首页的简单建立

    首页

    在首页上,主要设计是显示30个球队的名字,并通过点击每个名字可以进入球队详细描述页面

    先创建名为NBAsite的项目,并在其中首先创建mainsite和team两个app,并在setting中做好对应设置

    初步框架 App设置
    数据库设置

    mainsite--->对应主要模型和主页的建立
    team--->对应每个单独球队页面的介绍信息,发布文章等功能

    2: 建立球队信息的模型

    from django.db import models
    
    class Team(models.Model):
        team_id = models.AutoField('球队序号',primary_key=True)
        team_chinese_name = models.CharField('球队中文名称',max_length=50,default='zh_name')
        team_english_name = models.CharField('球队英文名称',max_length=50,default='en_name')
        team_conference = models.CharField('所属联盟',max_length=50,default='conference')
        team_location = models.CharField('所属城市',max_length=50,default='city')
    
        def __str__(self):
            return self.team_chinese_name
    

    切记注意,如果在创建模型过程中,不是一次完成模型建立的,比如先创建了3个字段,后续又添加了2个字段,这时候Django的ORM会要求你对原来已经存在的行数进行那个字段数据的添加,或者要求你添加默认值.

    所以基本上模型的每个字段里,都设置了default值.
    之后我通过CSV文件向MYSQL里面导入了球队所有的信息

    球队信息建立

    3:views视图函数及前端模板

    球队信息建立完以后,需要设置views函数了,通过Team模型选出所有球队的QuerySet,这是一个可以迭代的对象.

    from django.shortcuts import render
    from .models import *
    
    def index_page(request):
        team_list = Team.objects.all()
        return render(request,'index.html',{'team_list':team_list})
    

    然后我们来看一下前端模板,我不想所有的前端模板都需要重复写所有代码,所以建立了一个base_page.html,放在项目根目录templates下面


    基本模板
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}首页{% endblock %} - NBA Site</title>
    </head>
    <body>
        <a href="{% url 'mainsite:main_page' %}">首页</a><br>
        {% block content %}
        {% endblock %}
    </body>
    </html>
    

    这样,网页title后缀就永远是 - NBA Site了,页面title可以自行替换
    然后在body里面,每个页面都会放一个首页按钮,关于链接,后面再说.
    随后,再来添加主页的内容

    {% extends 'base_page.html' %}
    {% block title %}球队总览页面{% endblock %}
        {% block content %}
            {% for team in team_list %}
                <a href="{% url 'team:team_page' team.team_id %}">{{ team.team_chinese_name }}</a>
        {% endfor %}
    {% endblock %}
    

    球队名字上的超链接暂时忽略,后面再建立.

    4: URL路由配置

    主页的路由配置如下,从views里面导入刚才写的函数,这样运行服务器,主页就可以看到了

    python manage.py runserver

    from django.urls import path
    from . import views
    
    app_name='mainsite'
    urlpatterns = [
                path('',views.index_page,name='main_page')
    

    相关文章

      网友评论

        本文标题:Django NBA Web开发 - Step 1 首页建立

        本文链接:https://www.haomeiwen.com/subject/eyvzyqtx.html