PYTHON 八月 21, 2019

第1节、安装配置

文章字数 7.9k 阅读约需 7 mins. 阅读次数 1000000

一、安装

命令:
pip3 install django==1.11.4

支持python解释器的版本为 2.7、3.4、3.5、3.6

检查是否安装成功:

>>> import django
>>> django.get_version()
1.11.4

注意:

如果电脑是在windwos安装的django,所有代码书写都相同,如果django不能够运行,则查看计算机的名称是否为中文。

二、创建django项目

命令:

django-admin startproject helloworld(项目名称)

创建成功后:目录层级为

helloworld/
    helloworld/
    __init__.py  
    settings.py    配置文件
    urls.py        路由地址文件
    wsgi.py        项目的入口 项目部署的时候使用
manage.py    项目启动文件

项目启动:

python3 manage.py runserver [Ip:port]
127.0.0.1:8000
python3 manage.py runserver 0.0.0.0:8000 #任何地址都可以进行访问

三、配置django数据库

默认使用的是sqlite

配置sqlite数据库代码

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

配置mysql数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'djangopython1807',#数据库名称
        'USER':'root',  #用户名
        'PASSWORD':'123456', #密码
        'HOST':'127.0.0.1', #主机
        'PORT':3306, #端口
    }
}

在helloworld的init.py文件添加如下代码

import pymysql
pymysql.install_as_MySQLdb()

四、想要添加你的模型,视图,url,模板,需要创建App

命令:

python3 manage.py startapp App(应用名称)
或者
django-admin startapp App

五、添加路由地址,视图函数

App/views.py 添加视图函数

from django.shortcuts import render,HttpResponse

# Create your views here.

def index(request):
    return HttpResponse('hello django')

render 渲染模板

HttpResponse 直接构造响应

helloworld/urls.py文件中

from django.conf.urls import url
from django.contrib import admin
from App import views #导入视图函数的模块

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', views.index), #访问首页视图
]

请求地址为为:http://127.0.0.1:8000s

路由地址url的注意:

url方法中的^的作用

就是必须以当前的路由地址作为开头 如果^ 不存在 则是包含关系

实例:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # url(r'^$', views.index),
    url(r'^test/$',views.test), #/test/
    url(r'test/',views.test), #/test/
]

上面俩个test的路由地址区别:

  1. 带^是访问时候 地址必须为 127.0.0.1:8000/test/
  2. 不带^ 访问地址为 127.0.0.1:8000/abctest/ #只要路由地址包含test 就可以访问成功

六、将在自己的App下 创建自己的路由文件

App/urls.py代码

from django.conf.urls import url
from App import views

urlpatterns = [
    url(r'^test/$', views.test),  # /test/
]

helloworld/urls.py代码

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^',include('App.urls')),
]

七、配置模板目录

路径:

App/templates/ 模板引擎选择 django

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>test渲染的模板</h1>
</body>
</html>

views.test视图函数

def test(req):
    return render(req,'test.html')

更改settings.py的DIRS的值

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 'DIRS': [],
        'DIRS': [os.path.join(BASE_DIR,'templates')],#配置模板路径
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

注意:

在install_apps 下添加app的名字

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'App', #项目名称
]

渲染模板

注意:
变量和标签 和 flaske模板中的一样

def test(req):
    return render(req,'test.html',{'con':'渲染的内容'}) #参数1 request 模板名称

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>test渲染的模板</h1>
<h2>{{ con }}</h2>
</body>
</html>

八、指定错误页面

(1) 在settings.py文件中 关闭调试模式

DEBUG = False

注意:

如果debug不改为False 则不会返回错误的模板 而是显示错误信息

(2) ALLOWED_HOSTS 设置允许那些主机访问

ALLOWED_HOSTS = [‘*’]

(3) 在templates模板目录中 添加404.html

当出现404时 自动返回404.html

(4) request_path 展示 NOT_FOUND的路由地址

实例:

settings.py

DEBUG = True
# DEBUG = False

ALLOWED_HOSTS = ['*']

404.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>404页面</h1>
<h2>{{ request_path }}</h2>
</body>
</html>

上一篇:
下一篇:
0%