当前位置: 代码迷 >> 综合 >> django-admin startproject + 项目名称 创建django项目实例
  详细解决方案

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

热度:11   发布时间:2023-11-24 02:22:43.0

一、初始化项目

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.textclass 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 %}

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

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

  相关解决方案