django-admin startproject + 项目名称 创建django项目实例

本文详细介绍了如何使用Django框架搭建一个微信社交平台,包括项目初始化、创建应用、配置静态文件、定义URL和视图函数、启动项目、数据库模型设计、数据迁移、使用admin管理界面、创建超级用户并添加数据,最后展示了数据动态展现和用户登录登出功能。教程涵盖了Django基础操作和实战应用。
摘要由CSDN通过智能技术生成

一、初始化项目

django-admin startproject  +  项目名称

在这里插入图片描述

外层wechat是项目目录,跟项目有关的总体的信息放在内层的wechat目录里面

二、 创建app

django-admin startapp  +  app名称

执行后发现多了一个目录moments:
在这里插入图片描述
然后将app名称moments添加到下面这个地方:
在这里插入图片描述
三、引入静态文件
链接:https://pan.baidu.com/s/14VMVqZPCI3DKZLkCtyO2aw
提取码:9km2

在这里插入图片描述
四、配置url和view函数处理请求
在这里插入图片描述
在这里插入图片描述

五、启动项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
六、传参:环境对象
在这里插入图片描述
下面模板页面取值:
在这里插入图片描述
刷新首页。数据发生了改变:
在这里插入图片描述
七、定义模型
models.py文件

from django.contrib.auth.models import User  # django自带的用户机制
from django.db import models


# Create your models here.

# Model: django的基类
class WeChatUser(models.Model):
    user = models.OneToOneField(User, models.CASCADE)  # 来自于django自带的用户模型, CASCADE意思是django用户表里面删掉一行记录后,WechatUser里面也会级联删除一行记录
    motto = models.CharField(max_length=100, null=True, blank=True)  # 座右铭
    pic = models.CharField(max_length=50, null=True, blank=True)
    region = models.CharField(max_length=50, null=True, blank=True)

    def __str__(self):
        return self.user.username  # 用户名作为对象的表达形式

# 动态实体
class Status(models.Model):
    user = models.ForeignKey(WeChatUser, models.CASCADE)  #哪个用户发布的
    text = models.CharField(max_length=280)
    pics = models.CharField(max_length=100, null=True, blank=True)
    pub_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text

    class Meta:
        ordering = ['-id']

八、将模型与数据库关联起来

把模型里面的数据搬到数据库,使数据库产生跟模型相对应的数据:

python manage.py makemigrations

运行脚本:

python manage.py migrate
在这里插入图片描述
当然我们可以查看刚才这个命令具体做了些什么:

python manage.py sqlmigrate moments 0001

在这里插入图片描述
可以发现它其实是执行了上面这些sql语句

九、使用django自带的admin app来添加记录

在这里插入图片描述
十、创建超级用户(登录需要),登录管理后台,添加数据
在这里插入图片描述
然后登录:
在这里插入图片描述
登录进来,下图就是django自带的管理页面,moments是我们创建的app:
在这里插入图片描述
添加用户:
在这里插入图片描述
在这里插入图片描述
添加动态:
在这里插入图片描述
下图即是刚刚添加的两条动态:
在这里插入图片描述
十一、数据动态展现
在这里插入图片描述
status.html:

{% extends "base.html" %}

{% block title %}Status{% endblock %}
{% block status %}class="active"{% endblock %}

{% block content %}
    <div class="container">

        {% for status in statuses %}

        <div class="row">
            <div class="col-md-2">
                <img src="/static/image/{{status.user.pic}}" class="img-responsive img-thumbnail">
            </div>
            <div class="col-md-10">
                <h1 style="font-size:70px">{{status.user}}</h1>
                <p style="font-size:50px">{{status.text}}.</p>
                {% if status.pics %}
                <div class="col-md-8">
                    <img src="/static/image/{{status.pics}}" class="img-responsive">
                </div>
                {% endif %}
                <div class="col-md-12">
                    <p style="float:left; color:gray; font-size:30px">{{status.pub_time|date:"Y-m-d H:i:s"}}</p>
                    <button style="float:right;background-color:gray" class="btn btn-default"><span class="glyphicon glyphicon-option-horizontal" aria-hidden="true" style="color:white"></span></button>
                </div>
                <div class="col-md-12" style="background-color:gray; padding-top:20px">
                    <p style="font-size:30px"><span class="glyphicon glyphicon-heart-empty" aria-hidden="true"></span> Monkey, Serpent</p>                   
                    <hr>
                    <p style="font-size:30px">Monkey: Great!</p>
                    <p style="font-size:30px">Po@Monkey: Thanks!</p>

                </div>

            </div>
        </div>

        {% endfor %}

        <hr>
    </div>
{% endblock %}

在这里插入图片描述
十二、登入、登出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
退出:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值