python bootstrap 视频_想用Django+ Bootstrap写一个网站, 有哪些比较系统完整的书或者视频可以参考?...

前几天刚是社群的小伙伴写了个博客,Django写博客是很多学习Python人必经之路,今天我特别整理了一个建博客实录出来希望可以是Django学习之路的一个好启发,希望对大家有帮助。

——————————

1.django简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。

Django适合快速开发web开发。

1.1Django的结构模型

1.2Django相关依赖的环境和安装

1.准备一个linux的虚拟机

2.安装一个pyenv:具体安装的方法看这里

3.通过pyenv 安装一个python3.6.2

pyenv install 3.6.2

4.使用pip安装:

pip install django==1.11

pip install mysqlclient

5.安装mysql数据库

1.3Django的简单配置

新建一个项目:

django-admin startproject blog

在项目里面新建一个app和相关的模版静态文件:

cd blog

python manage.py startapp ariclte

mkdir templates

mkdir static

mkdir media

配置相关的设置

cd blog

vim settings.py

vim urls.py

settings.py配置

urls.py配置

2Django操作数据库

2.1Django里面主要使用orm来操作数据库

我们来看下什么是orm

使用orm有什么好处

Dajngo的orm-model

1.什么是ORM?

ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

2.ORM的优缺点是什么?

优点:摆脱复杂的SQL操作,适应快速开发;让数据结构变得简洁;数据库迁移成本更低(如从mysql->oracle)

缺点:性能较差、不适用于大型应用;复杂的SQL操作还需通过SQL语句实现

2.2Blog的数据结构

blog的常用的数据结构:

文章,分类,评论,注册

一般来说一个blog至少包含这4个表

我们今天只写文章表和分类表

大家可以先自己想下:

文章表和分类表包含的字段是哪些?

文章和分类是什么关系?

文章和用户又是什么关系?

表之间是否需要外键进行关联?

表之间的关系:

一个用户可以发表多篇文章

一个分类里面也多篇文章

分类和用户没有直接的关系

理清这些之后,现在开始编写对应的model模型

2.3编写models.py

2.4创建和同步数据库

3.Admin

3.1 admin

1.django自带一个admin的后台,只需要简单的配置就能让我们快速的使用,这是django的一个强大之处。

2.配置admin.py之前,需要先了解一下admin的用法

需要继承admin.ModelAdmin

list_display:admin 后台显示的字段

search_fields:admin 后台查询的字段

fields:允许修改的字段

actions: 禁用的操作

admin.site.register: 关联model和admin

3.2 编写admin

4.djangod的视图

4.1Django的视图

Django有很多的优秀的视图:

View

DetailView

ListView

FormView

CreateView

DeleteView

UpdateView

我们的blog里面暂时只用到了ListView和DetailView

4.2使用dajngo自带的ListView

• 编写app的views.py

4.3用django自带的DetailView

4.4配置app的urls.py

4.5 启用django

访问admin后台

填充相关的信息

5.配置相关的模板

5.1配置app的模板

1.把模板的index.html 放到templates里面

2.模板的css,js,images,fonts,kindeditor放到static里面

5.2模版继承-base.html

1.首先新建一个base.html

声明模版

第一行:{% load staticfiles %}

2.block

母版html中将一些需要替换的部分用{% block xxx %}。。。{% endblock %}括起来

模版继承-index.html

模版继承-detail.html

5.3前端展示-列表页面

5.4前端展示-详情页

好了,以上为60分钟建立一个个人博客的全部流程,希望大家玩得爽。

最后把辛苦的作者小智老师介绍下,马哥教育Python自动化实战师傅,原百度时代有限公司福州研发分公司移动云事业部高级运维开发工程师,现福建某文化发展有限公司技术经理,从事4年的python开发和pythonweb开发,擅长团队协作,性格开朗,爱分享。

————————

欢迎大家指正和补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子计算机混战:新贵离子 vs 老派超导体

来源:云头条作者:Paul Smith-Goodson是知名研究分析公司Moor Insights & Strategy的量子计算常驻分析师。英特尔公司正迅速取得进展,将超导量子计算测试芯片的量子位增加到更多数量:从7个量子位增加到17个量子位,现…

C++万能头文件

<bits/stdc.h>包含了全部的C头文件

射命丸文 (Standard IO)

Description 在幻想乡&#xff0c;射命丸文是以偷拍闻名的鸦天狗。当然&#xff0c;文文的照相机可不止能够照相&#xff0c;还能够消除取景框里面所有的弹幕。假设现在文文面前有一块N行M列的弹幕群&#xff0c;每一个单位面积内有分值有num[i][j]的弹幕。相机的取景框可以将一…

c++ opencv 通过网络连接工业相机_摄像头和机器人视觉开发中的「相机标定」,你了解多少?...

目前我们团队在做一个项目&#xff0c;通过采集到的人脸图像测量人脸上两个瞳孔间的实际距离。注意是实际距离&#xff0c;不是两个瞳孔之间隔多少个像素点。找了很久资料&#xff0c;好像“相机标定”可以解决我的问题&#xff0c;看了不少资料来理解【相机标定】&#xff0c;…

怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中

【IT168 技术】Python和R语言是在数据工程师间最流行的编程语言&#xff0c;但是&#xff0c;它并不能适用于应用程序构建的所有部分。这也就是你为什么有时需要找到一种方法&#xff0c;将Python或R编写的机器学习模型部署到基于.NET等语言的环境中。本文将为大家展示如何使用…

刚刚上班才回来,今天和你说说hash数组

hash算法: 专门接受一个字符串&#xff0c;并计算出一个尽量不重复的编号。相同字符串&#xff0c;计算出的号一定相同&#xff01;不同字符串&#xff0c;计算的号几乎不相同。 添加元素时: 将下标名称交给hash算法&#xff0c;计算出一个唯一的序号&#xff0c;将值保存到数组…

C++ set insert的返回值

pair<iterator,bool> insert (const value_type& val); 返回布尔对以表示是否发生插入&#xff0c;如果重复插入一个元素会返回false。返回迭代器指向新插入元素。

【GNN】一份完全解读:是什么使神经网络变成图神经网络?

图1&#xff1a;来自(Bruna等人&#xff0c;ICLR&#xff0c;2014)的图&#xff0c;描绘了3D领域内的MNIST图像。虽然卷积网络很难对球面数据进行分类&#xff0c;但是图网络可以很自然地处理它。可以把它当做是一个处理工具&#xff0c;但在实际应用程序中会出现许多类似的任务…

TTU智能配电终端_分布式dtu智能配电终端10KV配网自动化专用介绍

SGE300FD 系列分布式配电自动化终端&#xff08;以下简称装置&#xff09;采用了先进的数字信号处理技术、高速工业网络通信技术、嵌入式工业芯片组和多任务实时操作系统&#xff0c;稳定性强、可靠性高、实时性好、环境性广、功能强大、维护简易、操作方便。与20KV及以下电压等…

python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!

近些年随着Python语言越来越流行&#xff0c;越来越多的人选择Python语言作为自己的职业方向。如何在心仪公司的面试中获得好成绩&#xff0c;并最终成功获得offer是每一个Python开发者都要慎重对待的事情&#xff0c;如下是笔者整理的Python程序员在面试中经常被问到的问题&am…

C++ priority_queue对链表节点建立小根堆

链表的节点为&#xff1a; struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}}; 首先对链表节点建立一个结构体&#xff0c;结构体包含节…

python基础学习1-内置函数

#!/usr/bin/env python # -*- coding:utf-8 -*- 系统内置函数n abs(-1) #绝对值 print(n)#bytes()函数 s"离开" re bytes(s,encoding"utf-8") # bytes() 把字符串 转换成字节 print(re)res str(re,encoding"utf-8") #转换回字符串 print(res) …

数学与 AI「融通」 ,徐宗本院士进行超强“迁移学习”

来源&#xff1a; AI科技评论 编辑 | 唐里徐宗本院士在数学与 AI 之间进行了一次超强的“迁移学习”。9 月 21 日至 22 日&#xff0c;为期两天的 CCAI 2019 正在秋意浓浓的中国青岛胶州隆重举行。本次会议选址室外体育馆召开&#xff0c;为原本严肃的学术会议增添了几分活泼、…

mac怎么合并两个容器_Mac怎么合并文件夹?macz不容错过的苹果mac教程分享

关于合并文件夹&#xff0c;与Windows操作不同的是&#xff1a;Mac中很可能会出现文件丢失。 因为它对相同名称文件的实际操作是替换而不是另命名复制&#xff01;你的Mac电脑是否有重复文件想要合并&#xff1f;想了解Mac电脑合并文件夹而不丢失文件&#xff1f;那一定不要错过…

C++ 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变

C 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变 例子&#xff1a; class A{int a;int b; };class B:public A{int c; };int main(){B* pnew B();cout<<p<<endl;cout<<static_cast<A*>(p)<<endl;return 0; }

JMX学习笔记(一)-MBean

JMX学习笔记(一)-MBean 标签&#xff1a; jmxstringjavainterfaceexceptionclass2010-12-07 22:20 15360人阅读 评论(5) 收藏 举报分类&#xff1a;JMX&#xff08;11&#xff09; JMX 即 Java Management Extensions Java管理扩展MBean 即 managed beans …

关于大脑未必是破解智能和意识之谜的钥匙探讨

来源&#xff1a;刘锋的未来课堂“人脑能创造11维结构”是瑞士的研究机构蓝脑&#xff08;Blue Brain&#xff09;的一个研究结论&#xff0c;蓝脑&#xff08;Blue Brain&#xff09;研究所主要目标是建立一个由超级计算机驱动的人脑模型。这篇短文主要是由《崛起的超级智能》…

结构化分析和面向对象分析的区别 例子_管理游戏测评例子

在测评中心技术中&#xff0c;有一个非常有趣的场景的模拟测评&#xff0c;打造敏捷高绩效团队&#xff0c;提高执行力(包括人才测评)&#xff0c;旨在帮助学生培养自主性&#xff0c;了解自己&#xff0c;以独立的意见做出决策&#xff0c;采取果断的行动&#xff1b;培养赋权…

C++获取多维数组维数

#include <iostream> using namespace std;int main(void) { int a[3][4];cout<<sizeof(a)/sizeof(a[0])<<endl; //3cout<<sizeof(a[0])/sizeof(a[0][0])<<endl; //4return 0; }

python编程购物车_python编写购物车新写法

用另一种方式完成购物车的功能实现#!/usr/bin/pythonzijin input("请输入资金&#xff1a;")if zijin.isdigit():zijin int(zijin)else:print("请输入数字&#xff01;")exit_flag Falseprint("欢迎来到本人的购物小店".center(40,"-&qu…