基本使用方法
基本命令
django-admin
startproject 创建一个项目
startapp 创建一个应用
check 校验项目完整性
runserver 本地简易运行项目
shell 进入项目的Shell环境
test 执行用例测试
makemigrations 创建模型变更
migrate 执行迁移
dumpdata 数据库导出文件
loaddata 文件导入数据库
目录结构
manage.py 项目管理
settings 配置
urls 路由
wsgi WSGI应用
django应用
一个项目(Project)内可以有多个应用(App)
views 视图处理
models 定义应用模型
admin 定义admin管理对象
apps 声明应用
tests 编写测试用例
urls 管理应用路由
视图views
用于产生内容,实现HTML表达
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def hello(request):
return HttpResponse("Hello World")
HTTP小知识
客户端发送Request,服务器接收到后返回Response,其中包含HTML
路由urls
通过配置路由,绑定视图中的函数和URL
配置方法
在App目录创建urls.py
from django.urls import path, include import blog.views urlpatterns = [ path('hello_world', blog.views.hello) ] # 识别到hello_world这个url后立刻返回blog.views.hello这个函数
在Project目录修改urls.py
from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')) # 如果地址中含有blog,就转发到应用层面的blog.urls # 一个应用只配置一次就行了 ]
修改settings.py,把应用添加到项目里
找到 INSTALLED_APPS = [ 在其中添加 # myapp 'blog.apps.BlogConfig'
模型层(models.py)
基本概念
位于视图层和数据库之间
把数据库表和python对象互相转换
必要性:屏蔽不同数据库的差异
模型层的配置:settings中的database部分
设计博客文章的模型
- 标题
- 摘要
- 内容
- ID标记
- 发布日期
模型层定义字段
数字:IntegerField
文本:TextField
日期:DateTimeField
自增ID:AutoField
主键:primary_key
class Article(models.Model):
# ID
article_id = models.AutoField(primary_key=True)
# Title
title = models.TextField()
# Abstract
brief_content = models.TextField()
# Content
content = models.TextField()
# Date
publish_date = models.DateTimeField(auto_now=True)
模型的迁移:保存到数据库
python manage.py makemigrations
python manage.py migrate
Django Shell
交互式环境
用于临时验证简单的函数,小范围debugpython magage.py shell
建立一篇文章
In [1]: from blog.models import Article
In [2]: a = Article()
In [3]: a.title = 'Test Shell'
In [4]: a.brief_content = 'Test it by leozd'
In [5]: a.content = 'Test Shell, New article making content'
In [6]: a.save()
In [7]: articles = Article.objects.all()
In [8]: article = articles[0]
In [9]: print(article.title)
Test Shell
In [10]: print(article.brief_content)
Test it by leozd
Django Admin模块
自动生成的后台管理页面,自动读取模型数据
用shell新增文章太复杂了(用admin可以直接去后台生成文章)
创建管理员用户
python manage.py createsuperuser
在admin.py中注册需要管理的模型
from .models import Article
admin.site.register(Article)
在admin界面显示模型某属性作为标题
def __str__(self):
return self.title
把文章在博客显示出来
在应用路由urls.py中添加path('content', blog.views.article_content)
在views中添加
from blog.models import Article
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)
7 comments
哈哈哈,写的太好了https://www.lawjida.com/
《极盗者极盗者》动作片高清在线免费观看:https://www.jgz518.com/xingkong/45396.html
《望龙(独家版)》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/138921.html
《密室大逃脱第五季大神版》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/45157.html
不错不错,我喜欢看 www.jiwenlaw.com
看的我热血沸腾啊
博主真是太厉害了!!!