Django快速上手总结

网站配置

  1. 上线环境中,在mysite/settings.py下 debug模式关闭,并且在allowed_hosts中填写主域名,这样才能通过域名访问到网站。
  2. 所有app需要注册在installed_apps下。
  3. 需要更改数据库设置的话在settings.py下的:databases
  4. 如需更嗨语言为汉语:LANGUAGE_CODE设置为’zh-hans’;时区设置为东八区:‘Asia/Shanghai’

数据库选择

主要在mysql和sqlite中 选择,sqlserver暂不考虑。(采用user用户数据插入实验)

  1. 几百条数据时sqlite有优势;
  2. 上千条数据时,相差不大,mysql小优势胜出;
  3. 上万数据时,mysql优势明显,sqlite速度慢上近十倍;
  4. sqlserver和mysql性能相差不大;

网站配置

  1. 上线环境中,在mysite/settings.py下 debug模式关闭,并且在allowed_hosts中填写主域名,这样才能通过域名访问到网站。
  2. 所有app需要注册在installed_apps下。
  3. 需要更改数据库设置的话在settings.py下的:databases
  4. 如需更嗨语言为汉语:LANGUAGE_CODE设置为’zh-hans’;时区设置为东八区:‘Asia/Shanghai’

数据库选择

主要在mysql和sqlite中 选择,sqlserver暂不考虑。(采用user用户数据插入实验)

  1. 几百条数据时sqlite有优势;
  2. 上千条数据时,相差不大,mysql小优势胜出;
  3. 上万数据时,mysql优势明显,sqlite速度慢上近十倍;
  4. sqlserver和mysql性能相差不大;

在这里插入图片描述

数据层

一:数据模型类models.MODEL

  1. class Meta:Model 元数据就是 “不是一个字段的任何数据” – 比如排序选项, admin 选项等等.
  2. 常用的数据类型
    1. 短文本:models.CharField(max_length=300)
    2. 长文本:models.TextField()
    3. 时间类型:models.DateTimeField(default = timezone.now)
    4. 外键:models.ForeignKey(User, related_name=“bolg_posts”)

二:根据MODEL建立数据库表

  1. 在project目录下(如mysite/)执行:python manage.py makemigrations
  2. 上述命令会自动在数据模型model所在的app目录下创建migrations文件夹,并且翻译model为数据库可识别形式;
  3. 上述命令的功能是创建数据库表,表名为:appname_modelname
  4. id字段自动生成为主键

二:建立视图函数views.py

实例:

from django.shortcuts import render, get_object_or_404
from .models import BlogArticles

def blog_title(request):
	blogs = BlogArticles.objects.all()
	return render(request, "blog/titles.html", {"blogs":blogs})

def blog_article(request, article_id):
	#rticle = BlogArticles.objects.get(id=article_id)
	article = get_object_or_404(BlogArticles, id=article_id)
	pub = article.publish
	return render(request, "blog/content.html", {"article":article, "publish":pub })
  1. render()的作用是将数据渲染到指定模板上
  2. request是必传参数

创建HTML模板

一个简单模板

{% extends "base.html" %}
{% block title %}blog titles{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
	<h1>我的博客</h1>
</div>
<div class="row">
	<div class="col-xs-12 col-md-8">
		<ul>
			{% for blog in blogs %}
			<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
			{% endfor %}
		</ul>
	</div>
	<div class="col-xs-6 col-md-4">
		<h2>广告</h2>
		<p>跟老齐学:www.itdiffer.com</p>
		<img width="200px" src="http://img1.cache.netease.com/catchpic/B/B7/B72167D1B28CAD51AC801BAF79317DE4.jpg">
	</div>
</div>
{% endblock %}a
  1. {{ blog.title }}双大括号表示这是对象的引用数据,否则只会照样输出。
  2. for语句:
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}
  1. if语句:
 

从零开撸Django

第一步创建项目:
django-admin startproject mysite (启动python manage.py runserver)

第二步创建项目应用:
python manage.py startapp blog(Pycharm有一个非常实用的快捷键:option+r,可直接进入manage.py的命令窗口)

第三步
在Django的配置文件中进行注册,注册名为应用名,至此一个app有了!

第四步
开始为这个空app写点东西,比如一个博客。首先你得心中有博客的数据类型。博客我主要设置四个参数:博文/作者/标题/发布时间,即title,auther,body,publish;Django的数据类型类都必须继承django.db里的models.MODEL类
models.TextField()
models.CharField()
models.DateTimeField()
models.ForeignKey()映射

第五步
Django采用ORM对象关系映射,数据类型通过migrate转为sql语句进行实际上的创建。
python manage.py makemigrations(根据model类以sql语句形式创建数据库表)
python manage.py migrate(真正创建数据库)
至此,数据库有了,数据对象也有了。

第六步:
博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级用户用户:python manage.py createsuperuser.
进入Django自带的管理面板中是看不到我们自建的blog的model数据类型的,需要在自带系统里进行注册。注册方式:在应用的admin文件中引入django.contrib库中的admin类,然后注册:adminn.site.registe(BlogArticles)

数据层

一:数据模型类models.MODEL

  1. class Meta:Model 元数据就是 “不是一个字段的任何数据” – 比如排序选项, admin 选项等等.
  2. 常用的数据类型
    1. 短文本:models.CharField(max_length=300)
    2. 长文本:models.TextField()
    3. 时间类型:models.DateTimeField(default = timezone.now)
    4. 外键:models.ForeignKey(User, related_name=“bolg_posts”)

二:根据MODEL建立数据库表

  1. 在project目录下(如mysite/)执行:python manage.py makemigrations
  2. 上述命令会自动在数据模型model所在的app目录下创建migrations文件夹,并且翻译model为数据库可识别形式;
  3. 上述命令的功能是创建数据库表,表名为:appname_modelname
  4. id字段自动生成为主键

二:建立视图函数views.py

实例:

from django.shortcuts import render, get_object_or_404
from .models import BlogArticles

def blog_title(request):
	blogs = BlogArticles.objects.all()
	return render(request, "blog/titles.html", {"blogs":blogs})

def blog_article(request, article_id):
	#rticle = BlogArticles.objects.get(id=article_id)
	article = get_object_or_404(BlogArticles, id=article_id)
	pub = article.publish
	return render(request, "blog/content.html", {"article":article, "publish":pub })
  1. render()的作用是将数据渲染到指定模板上
  2. request是必传参数

创建HTML模板

一个简单模板

{% extends "base.html" %}
{% block title %}blog titles{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
	<h1>我的博客</h1>
</div>
<div class="row">
	<div class="col-xs-12 col-md-8">
		<ul>
			{% for blog in blogs %}
			<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
			{% endfor %}
		</ul>
	</div>
	<div class="col-xs-6 col-md-4">
		<h2>广告</h2>
		<p>跟老齐学:www.itdiffer.com</p>
		<img width="200px" src="http://img1.cache.netease.com/catchpic/B/B7/B72167D1B28CAD51AC801BAF79317DE4.jpg">
	</div>
</div>
{% endblock %}a
  1. {{ blog.title }}双大括号表示这是对象的引用数据,否则只会照样输出。
  2. for语句:
{% for blog in blogs %}
<li><a href="{{ blog.id }}">{{ blog.title }}</a></li>
{% endfor %}
  1. if语句:
 

总结

从零开撸Django

第一步创建项目:
django-admin startproject mysite (启动python manage.py runserver)

第二步创建项目应用:
python manage.py startapp blog

第三步
在Django的配置文件中进行注册,注册名为应用名,至此一个app有了!

第四步
开始为这个空app写点东西,比如一个博客。首先你得心中有博客的数据类型。博客我主要设置四个参数:博文/作者/标题/发布时间,即title,auther,body,publish;Django的数据类型类都必须继承django.db里的models.MODEL类
models.TextField()
models.CharField()
models.DateTimeField()
models.ForeignKey()映射

第五步
Django采用ORM对象关系映射,数据类型通过migrate转为sql语句进行实际上的创建。
python manage.py makemigrations(根据model类以sql语句形式创建数据库表)
python manage.py migrate(真正创建数据库)
至此,数据库有了,数据对象也有了。

第六步:
博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级博客需要发布文章,新手入门先复用Django自带的管理功能发布文章。使用自带的功能首先需要创建超级用户用户:python manage.py createsuperuser.
进入Django自带的管理面板中是看不到我们自建的blog的model数据类型的,需要在自带系统里进行注册。注册方式:在应用的admin文件中引入django.contrib库中的admin类,然后注册:adminn.site.registe(BlogArticles)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许进进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值