慕课:Django入门与实践

 
 

视频:django入门与实践            文字:Django个人网站,从开发到部署总结

官网:Django 中文文档

学习目标学习并了解Django框架

MVC

  • MVC框架的核心思想是:解耦     设计高度拓展,向后兼容,低耦合,高内聚(电脑零件模块类比)
  • 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用

MVT

官网概要

1、Django 无需数据库就可以使用,它提供了 对象关系映射器 通过此技术,你可以使用 Python 代码来描述数据库结构

2、变量都被双大括号括起来了。 {{ article.headline }} 的意思是“输出 article 的 headline 属性值”。这个“点”还有更多的用途,比如查找字典键值、查找索引和函数调用。可替代   前端可以直接获取render()的字典数据

我们注意到 {{ article.pub_date|date:"F j, Y" }} 使用了 Unix 风格的“管道符”(“|”字符)。这是一个模板过滤器,用于过滤变量值。在这里过滤器将一个 Python datetime 对象转化为指定的格式。可编程

{% for athlete in athlete_list reversed %}  #for遍历,反转
...
{% endfor %}

3、上网流程:http请求,http响应


快速入门

python3 -m django --version   看安装版本


准备工作:创建项目 Django-admin startproject myblog(项目名)

启动服务:python manage.py runserver 8080   #仅仅用来测试,不是实际生产环境

项目 VS 应用:项目可以包含很多个应用。应用可以被很多个项目使用。


实践篇搭建一个实例,命名后别乱改

开发环境:虚拟环境Pycharm

虚拟环境很重要啊,不然到时都不知道错误在哪!!!


1、创建工程(app),并了解项目目录下部分:目录名称别修改,配置文件引用了目录
  1. 创建应用 python manage.py startapp appname 必须与manage.py同级目录不能与模块名称冲突创建应用就要添加路径settings.py里面,
  2. 启动服务器: python3 manage.py runserver [9999] 默认端口可不写
  3. 应用目录
    admin.py:admin后台管理文件,可配置
    __init__.py:如上一个__init__.py文件,一般为空
    migrations:数据库相关目录
    models.py:主要用一个 Python 类来描述数据表。 称为模型(model) 。 运用这个类,你可以通过简单的 Python 的代码来创建、       检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。
    views.py:包含了页面的业务逻辑。 latest_books()函数叫做视图。核心
    tests.py:自动化测试文件,注:后面的页面设计文件,在此目录下创建目录templates,名为XX.html的文件放在此处。

  • views.py非常重要,视图文件编写,响应逻辑代码模块导入模块,配置urls,推荐第二种方式 正则匹配页面重启服务器 python3 manage.py runserver

urls高效配置页面,解决冲突,主站点下面副站点总的urls配置站点名字,应用有自己的urls

 
 

函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name

主页超级链接设置

templates 三部曲

templates创建在项目 根目录中,其实就是html,有库,修改总设置里面改模板
创建Tamplates:
 
  
1.在应用的根目录下创建templates目录
 
  
2.在Tamplates目录下创建HTML文件。
 
  
3.在views.py中返回render(渲染)
render有三个参数,第一个request,第二个模板(html页面)。第三个支持一个dict类型参数,传递数据到前端。(键值对,键就是前端获取的参数名,就是模板中类似{{}}引用的,值是要传递给前端的数据)(替换的HTML页面) 
 
   
 
  
 
 
 
  
render(request,'index.html',{'hello':'hello,blog'})  第二个参数网站,第三个参数前端{{数据}}
在blog下创建文件夹templates在这个文件夹下创建html文件   Tamplates有坑,
Tamplates新建应用同名文件夹,各自views路径也要改,模板都是INSTALLED_APPS里面templates顺序查找,不同应用使用第一个templates。

 
  
 
  
 
  
 
   
  
 
  

编写models 生成数据表

 1.   python manage.py makemigrations app(准备)  
 2.   python manage.py migrate(迁移),自带应用数据也要迁移,项目下面可以看数据语句
查看数据:python manage.py sqlmigrate 应用名 文件id:查看sql语句    




页面展现数据:后端+前端

后端views,取出数据
article = models.Article.objects.get(pk=1)  pk类似id的意思
render(request, page, 'article':article)
{{ 前端用.属性 }}

 
  
 
  
 
  

admin 自动化管理界面,自带的强大的后台管理系统

 
  
创建超级用户:
python manage.py createsuperuser    接着输入密码,邮箱,用户名
访问admin: lichun li*chun12356
localhost:8000/admin/  根目录下加admin
显示设置 zh_Hans   时间显示:Asia/Shanghai
 
  
 
  
在admin.py中配置app,应该写成  :
from .models import Article  
admin.site.register(Article)
 
  
 
  
 
  
 
  
修改默认的admin中名字显示:不返回类对象
在类里边增加方法,def __unicode__(self):return self.title(python2)   
                              def __str__(self):return self.title(python3)

完善博客 任何页面都要建立HTML文件

1.主页面(文章标题链接,发表按钮),2.内容页面,3.编写页面


 
  
前端模板For循环
                         {% for xx in xxs  %}    #非{{ }}
                         {% endfor %}

2、博客文章页面:标题+内容+修改链接
 
  

超链接配置

超链接会用到name(非根目录)
 
  

编辑页面:标题+内容+提交按钮

 
  
 
  
 
  
 
 
 
 
      post请求的表单需加上 {% csrf_token %}

注意:增加页面就一修改urls


补充内容:

过滤器(替代if-else语句,设置默认值),模板语言,修改变量,显示不同内容,
超级简化代码

 
  
Django shell用途:    1.调试   2.测试未知方法
 
 
 
 
管理员配置才有界面,别乱登录
 
  
admin增强
 
  
后台配置更强大,点击排序,他自己的过滤器(日期筛选)

models.py改了别忘记移植


from django.contrib import admin
from .models import Article

# Register your models here.
class ArticleAdmin(admin.ModelAdmin):
    # 必须字符串
    list_display = ('title','content','pub_time')
    list_filter = ('pub_time',)

admin.site.register(Article, ArticleAdmin)

这框架好强大

总结:

 
  
完结打卡,谢谢杜秉轩老师,谢谢慕课网

续:

前端美化






我仿写的:

简版入门教程后续改进前端,改进数据库

高手自己改的地址


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值