Django入门

这篇博客介绍了Django的安装、项目创建、应用设立、模板创建、URL配置、数据模型及后台管理等方面,详细讲解了从启动服务器到显示数据库数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

官网链接

Pip 安装

pip install Django==2.1.7

源码安装

下载源码,进入源码的根目录执行 python setup.py install

注意:支持Python 3+ 和 支持Python 2.7以上

创建项目

django-admin startproject [项目名称]

image-20190311164241534

image-20190311165439499

项目的目录结构

image-20190311165711512

manage.py命令

image-20190311170152800

启动服务器

python manage.py runserver

开启服务器,默认地址为127.0.0.1:8000

python manage.py runserver 0.0.0.0:8000

指定0.0.0.0:8000,这个 IP 地址是告诉服务器去侦听任意的网络接口

项目启动后,通过你的电脑IP地址就可以在手机上访问到你的项目了。

比如:我的电脑IP是 192.168.1.5 那么手机的访问地址就是:http://192.168.1.5:8000

注意:还必须在项目里找到setting.py ,在里面的的 ALLOWED_HOSTS里加上自己电脑的ip地址 ,不加ip地址的话,手机访问不到

image-20190311170800936

wsgi.py

image-20190311171039580

url.py

image-20190311171149630

setting.py

image-20190311171211189

_init_.py

Python中声明模块的文件

默认内容为空的

创建应用app

python manage.py startapp blog

注意:千万千万千万千万千万千万千万千万不要忘了新建app后,把他添加到setting.py的INSTALLED_APPS里

注意:千万千万千万千万千万千万千万千万不要忘了新建app后,把他添加到setting.py的INSTALLED_APPS里

image-20190311171942812

注意:千万千万千万千万千万千万千万千万不要忘了新建app后,把他添加到setting.py的INSTALLED_APPS里

应用目录结构

image-20190311173216974

admin.py:应用的后台管理配置

apps.py:该应用的一些配置

models.py:数据模块,使用ORM框架,类似于MVC框架的models(模型)

tests.py:自动化测试模块

views.py:执行响应代码所在的模块,代码逻辑处理的主要地点,项目中的大部分代码在这里编写

创建第一个响应

image-20190311173812793

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.
def first(request):
	return HttpResponse('Hello world!+++')

image-20190311173834453

from django.contrib import admin
from django.urls import path
# 导包 因为要引用函数
import blog.views as bv

urlpatterns = [
 path('admin/', admin.site.urls),#这是admin的url地址,此处先忽略
 path('first/', bv.first),#给first请求配置url
]

请求url为:http://127.0.0.1:8000/first/

配置url的第二种方式

以上方式是把所有的url都配置在了项目的根url里了,这样不便于维护,每个应用的url应该由该应用来维护

image-20190311223617867

在应用下的url

from django.urls import path
from . import views#记得导包,从当前目录导入views.py

urlpatterns = [
 # 第一个参数是地址,第二个参数是响应函数
 path('first/', views.first),

]

根目录下的url

from django.contrib import admin
from django.urls import path, include
# 导包 因为要引用函数
import blog.views as bv

urlpatterns = [
 path('admin/', admin.site.urls),#这是admin的url地址,此处先忽略
 # path('first/', bv.first),#不要使用这在根url里配置地址的方式
 # 引入应用内的url方式来代替
 path('', include(('blog.urls'),
]

这个请求的url为:http://127.0.0.1:8000/first/

第一个Template

image-20190311231556423

第一步:image-20190311232006441

第二步:image-20190311232349066

第三步:

image-20190311232634827

该页面的路径为:http://127.0.0.1:8000/second/

后台给页面传递参数

image-20190311233237886

image-20190311233149452

image-20190311233355614

解决不同应用下的Template同名冲突

image-20190311233518736

image-20190311233551824

image-20190311233610226

image-20190311233948252

Models是什么

image-20190312091103423

image-20190312091205093

第一步:编写Models

 from django.db import models #引入models模块
 
 
 # Create your models here.
 class Article(models.Model):#创建一个类继承自models.Model(对应于数据库一张表)
     # 创建两个字段
     title = models.CharField(max_length=32, default='Title')
     content = models.TextField(null=True)  # 可为空

第二步:执行命令完成迁移

image-20190312092044892

python manage.py makemigrations

python manage.py migrate

执行完上面的代码,会生成移植文件

  1. python manage.py makemigrations

image-20190312092719678

  1. python manage.py migrate

image-20190312093159626

查看sql语句

image-20190312094226948

python manage.py sqlmigrate [应用名] [文件id]

image-20190312094135344

Admin

创建用户

image-20190312094912999

python manage.py createsuperuser

image-20190312095420239

入口:http://127.0.0.1:8000/admin/

image-20190312101030599

在admin里查看数据库里的表

image-20190312101511906

from django.contrib import admin

# Register your models here.

from .models import Article

# 把数据库的Article表注册到admin,这样在admin里才能看到这张表的数据
admin.site.register(Article)

image-20190312101617000

增加一条数据看看

image-20190312102108812

修改默认的名字

image-20190312102159718

image-20190312102313970

from django.db import models


# Create your models here.
class Article(models.Model):
    # 创建两个字段
    title = models.CharField(max_length=32, default='Title')
    content = models.TextField(null=True)  # 可为空

    def __str__(self):
        return self.title

image-20190312102441558

把数据库里的数据显示到页面(template)

网表里插入数据,暂且通过admin里新增按钮来操作,

本例子主要说明,如何从数据库取数据,templates如何展示数据

第一步:在templates下新建html文件,注意:for循环写法

image-20190312103941815

articles是后台传递过来的对象(列表)

第二步:在views.py里新建一个方法,处理这个页面的请求

#记得导入包models
from blog import models
# 新增一个方法index,处理展示blog列表的请求
def index(request):
    articles = models.Article.objects.all()
    return render(request, 'blog/index.html', {'articles': articles})
第三步:为这个页面的请求配置url
from django.urls import path
from . import views

urlpatterns = [
 	# 第一个参数是地址,第二个参数是响应函数
    # 配置首页的url
    path('index/', views.index),
]

ok,现在去请求吧 http://127.0.0.1:8000/index/

image-20190312105609605

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值