Django入门

安装

官网链接

Pip 安装

pip install Django==2.1.7

源码安装

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

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

创建项目

django-admin startproject [项目名称]

Django入门

Django入门

项目的目录结构

Django入门

manage.py命令

Django入门

启动服务器

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地址的话,手机访问不到

Django入门

wsgi.py

Django入门

url.py

Django入门

setting.py

Django入门

_init_.py

Python中声明模块的文件

默认内容为空的

创建应用app

python manage.py startapp blog

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

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

Django入门

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

应用目录结构

Django入门

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

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

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

tests.py:自动化测试模块

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

创建第一个响应

Django入门

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


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

Django入门

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应该由该应用来维护

Django入门

在应用下的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

Django入门

第一步:Django入门

第二步:Django入门

第三步:

Django入门

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

后台给页面传递参数

Django入门

Django入门

Django入门

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

Django入门

Django入门

Django入门

Django入门

Models是什么

Django入门

Django入门

第一步:编写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)  # 可为空

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

Django入门

python manage.py makemigrations

python manage.py migrate

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

  1. python manage.py makemigrations

Django入门

  1. python manage.py migrate

Django入门

查看sql语句

Django入门

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

Django入门

Admin

创建用户

Django入门

python manage.py createsuperuser

Django入门

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

Django入门

在admin里查看数据库里的表

Django入门

from django.contrib import admin

# Register your models here.

from .models import Article

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

Django入门

增加一条数据看看

Django入门

修改默认的名字

Django入门

Django入门

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

Django入门

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

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

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

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

Django入门

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/

Django入门