Django 开发网站初学者教程第一部分

13 篇文章 0 订阅
13 篇文章 0 订阅

Django 开发网站初学者教程

创建第一个项目
django-admin.py startproject 项目名
运行第一个项目
python manage.py runserver 0.0.0.0:8000     #说明除了本地其他电脑也能通过本机IP地址访问
python manage.py runserver localhost:8000    #说明对外是封闭的,只有本机能访问,其他机子访问不了

第一次运行会报这样的错:

django.core.exceptions.DisallowedHost: Invalid HTTP_HOST header: '10.122.209.150:8000'. You may need to add '10.122.209.150' to ALLOWED_HOSTS

那是因为还没有指定那些IP地址对应的机子能访问
注意:只能指定那些能访问,不能指定那些不能访问。也就是说没在能访问列表里的就不能访问
在项目的目录内有一个settings.py 文件, 里面有这样一行代码:

ALLOWED_HOST = []   # 只有在这个列表里的IP能访问

把它改成:

ALLOWED_HOST = ["*"]  #  "*"说明允许所有IP地址的访问
自定义第一个视图和url配置

在settings.py文件所在目录新建view.py,其内容如下:

from django.http import HttpResponse
def hello(request):
    return HttpResponse("Hello django.")

找到urls.py文件添加以下内容,记住添加就ok,原有内容不用管

from . import view
from django.conf.urls import url
urlpatterns = [
    url(r"^$",view.hello)
]
使用模板提高效率 模板-英文名:template

模板是一个文本,主要作用是 分离 文档的 表现形式 和 内容

1.先在manage.py所在的目录新建目录templates
2.再在templates目录里新建 (目录名).html 文件

<ul>
    {%for x in list reversed%}
    <h1>
        {{x}}
    </h1><br>
    {%endfor%}
</ul>

3.修改settings.py文件里一下的内容(注意:其他内容不用管,不能改动):

'DIRS': [BASE_DIR + "/templates"],

4.修改view.py内容:

from django.shortcuts import render
def hello(request):
    context= {}
    context["list"] = [1,2,3,45,6]
    return render(request,'template1.html',context)

当你再次通过浏览器访问该网页时会报一下错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737: illegal multibyte sequence

那是因为初次安装使用时,django的很多东西的都是默认值,而这里就是django默认以gbk模式打不开你以utf-8写的/templates/template.html文件。
解决办法:
打开 C:\Users\XXX\AppData\Local\Programs\Python\Python%\Lib\site-packages\django\views\debug.py
转到第331行代码:

with Path(CURRENT_DIR, 'templates', 'technical_500.html').open() as fh:

改成这样:

with Path(CURRENT_DIR, 'templates', 'technical_500.html').open(encoding="utf-8") as fh:

刷新浏览器页面:
在这里插入图片描述

模板继承
{% extends "base.html" %}    #用这句话来继承制定模板

父类模板可重载部分

{% block block-name %}
	父类的原内容
{% endblock block-name %}

子类模板的重写父类block的方法

{% extends "base.html" %}    #用这句话来继承制定模板
{% block block-name %}
		重载内容
{% endblock block-name %}

注意:如果 无论是在那个模板 变量名与block-name不能一样,否则两个都失效

Django 模型 ---- 其实就是个数据库模型

Django规定,如果要使用模型必须要创建一个app

1 . 创建app

python manager.py startapp  APP名字

2.定义模型
修改 APP名字/models.py的内容:

from django.db import models

# Create your models here.
class Test(models.Model):
    name = models.CharField(max_length = 20)  # 新建字段 name  其数据类型为varchar(20)

3.注册app
修改settings.py的内容:

INSTALLED_APPS = [
.....,
"APP名字"   # 添加这一项就行其他的不用改
]

4.创建django自带的表的表结构(建立数据库表结构,并写入更改)

python manage.py migrate

5.让Django知道我们在我们的模型上做了一些变更

python manage.py makemigrations APP名字

6.创建指定app的模型的表结构(建立数据库表结构,并写入更改)

python manage.py migrate APP名字

就这样模型建好了。
个人感言:
一个Django项目可以有多个app
多个app可共享同一个模板,但不能共享同一个模型
这就说明数据的重要性,数据面前模板就根本不值钱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Sadam

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

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

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

打赏作者

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

抵扣说明:

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

余额充值