Python学习之【Django】

本文详细介绍了如何从安装Python环境、Anaconda、Pycharm到设置Django项目,包括基本命令、创建项目和应用、数据库操作、视图、模型、Admin模块的使用。通过实例演示了如何创建、保存模型实例并使用Django Shell。同时,讲解了如何配置Admin模块以图形化方式管理数据,并展示了如何返回和展示数据。最后,提到了使用Bootstrap实现静态页面的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习内容:

Django

学习时间:

2022/6/27 22:03


学习产出:

一、安装环境

1.安装Python环境:
https://www.python.org/downloads/

2.安装Anaconda:
https://www.anaconda.com/

3.安装Pycharm:
https://www.jetbrains.com/pycharm/download/

4.安装Django

pip install django==3.0
验证是否安装成功
django-admin
二、Django的基本命令

startproject #创建一个Django项目

starapp #创建一个Django应用

check #校验项目的完整性

runserver #本地简易运行Django项目

shell #进入Django项目的python shell环境

test #执行Django用例测试

以下为数据库相关:

makemigrations #创建模型变更的迁移文件

migrate #执行上一个命令创建的迁移文件

dumpdata #把数据库数据导出到文件

loaddata #把文件数据导入到数据库

三、创建django项目,并运行
django-admin startproject my_django
python manage.py runserver

如果报错

File "manage.py", line 17 from excs ^ SyntaxError: invalid syntax

说明运行环境有问题,修改如下配置:

在这里插入图片描述

四、创建应用
# app为应用名
python manage.py startapp app1
Django项目目录介绍
  • views.py:视图处理;
  • models.py:定义应用模型;
  • admin.py:定义Admin模块管理对象;
  • apps.py:声明应用;
  • tests.py:编写应用测试用例;
  • urls.py:自行创建(管理应用路由);
五、配置应用
  1. app1/views.py:
from django.http import HttpResponse
# 必须返回一个response对象
def hello_world(request):
    return HttpResponse('hello world')
  1. my_django/setting.py:
向INSTALLED_APPS列表中添加你的应用 app1.apps.App1Config
  1. 创建应用级路由页面app1/urls.py:
from django.urls import path
# 引入应用视图页面
import app1.views

urlpatterns = [
    path('hello_world', app1.views.hello_world)
]
  1. my_django/urls.py:
from django.urls import path, include

urlpatterns = [
    path('app1/', include('app1.urls')),
]
六、创建模型

app1/models.py:

from django.db import models

# 文章模型
class Article(models.Model):
    # 文章的唯一ID
    article_id = models.AutoField(primary_key=True)
    # 文章的标题
    title = models.TextField()
    # 文章的摘要
    brief_content = models.TextField()
    # 文章的主要内容
    content = models.TextField()
    # 文章的发布日期
    publish_date = models.DateTimeField(auto_now=True)

创建迁移文件:

python manage.py makemigrations

执行上一个命令创建的迁移文件:

python manage.py migrate 
七、Django Shell:
python manage.py shell
>>> from app1.models import Article
>>> a = Article()
>>> a.title = '我的第一篇博文'
>>> a.brief_content = '博文简介'
>>> a.content = '博文正文'
>>> print(a) #Article object (None)
>>> a.save()
>>> articles = Article.objects.all()
>>> article = articles[0]
>>> print(article.title) #我的第一篇博文

八、Admin模块
# 创建管理员用户
python manage.py createsuperuser
# 启动项目
python manage.py runserver
  • 登录后可以在图形化界面看见用Django Shell创建的第一篇博文。
  • 可以在图形化界面点击 ADD ARTICLE添加。
  • 标题默认为Article object(1)。
  • 想直接显示文章标题名,在modeles.py中Artilce类中重写__str__方法:
 def __str__(self):
        return self.title
九、实现数据返回

app1/views.py:

def article_content(request):
    article = Article.objects.all()[0]
    title = article.title
    brief_content = article.brief_content
    content = article.content
    article_id = article.article_id
    publish_date = article.publish_date
    return_str = 'title:%s, brief_content:%s, content:%s, ' \
                 'article_id: %s, publish_date:%s' % (title, brief_content, content, article_id, publish_date)
    return HttpResponse(return_str)

应用级路由,app1/urls.py中向urlpatterns追加:

path('content', app1.views.article_content)

访问http://127.0.0.1:8000/app1/content即可看到返回

十、Bootstrap实现静态页面

1.应用app1下新建文件夹templates/blog/index.html & detail.html, 头部引入cdn链接;

2.模版:

    {% for article in article_list %} <!--循环开头-->
        <h4>{{ article.title }}</h4> <!-- 变量双扩号-->
    {% endfor %} <!--循环结束->

3.article_list来自:views.py:

def get_index_page(request):
    all_article = Article.objects.all()
    return render(request, 'blog/index.html',{
        'article_list': all_article
    })

4.app1/urls增加:

path('index', app1.views.get_index_page)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值