学习内容:
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:自行创建(管理应用路由);
五、配置应用
- app1/views.py:
from django.http import HttpResponse
# 必须返回一个response对象
def hello_world(request):
return HttpResponse('hello world')
- my_django/setting.py:
向INSTALLED_APPS列表中添加你的应用 app1.apps.App1Config
- 创建应用级路由页面app1/urls.py:
from django.urls import path
# 引入应用视图页面
import app1.views
urlpatterns = [
path('hello_world', app1.views.hello_world)
]
- 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)