Django 的命令行 及render/redirect /Httpresponse/JsonResponse

 目录:

  cmd命令创建和启动

   更改Django的数据库配置

  render,HttpResponse,redirect 的使用

 

 

 

cmd命令创建和启动:

# 创建项目
django-admin startproject 项目名
# 启动项目
# 切换到文件目录,执行命令
python manage.py runserver 

# 后面可以加端口号

 

创建app命令

python manage.py startapp 应用名

创建超级用户,创建之前需要先有数据库

# 创建表的命令
python manage.py makemigrations
python manage.py migrate
# 创建表后开始创建超级用户,用于登录admin管理后台
python manage.py createsuperuser
# 进入超级用户创建模式


# 访问 http://localhost:8000/admin # 进入后台管理系统

 

更改Django的数据库配置

django默认使用的数据库是sqlite3,但是我一般用mysql,所以需要更改设置

在项目目录里找到settings文件,更改settings里的DATABASES配置

 

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

 

把数据库改成mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysql',#数据库名字
        'USER':'root',  # mysql用户名
        'PASSWORD':'*****', # 密码
        'HOST':'localhost',
        'PORT':'3306',
    }
}

还需要安装pymysql,在项目目录下的__init__.py文件中替换

import pymysql
pymysql.install_as_MySQLdb()

 

 

小白必会三板斧:render,HttpResponse,redirect

首先介绍一下urls.py

 

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

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

 

urls在django中为路由,view为试图

通过在urls定义路由,到view里去访问

 

 定义了一个home路由,这时候我们访问home页面,会出错,找不到页面

 

 我们需要在view里定义home页

 

HttpResponse
# views.py页面

from django.shortcuts import render,HttpResponse,redirect
# 在一个模块中导入
from django.shortcuts import render,HttpResponse,redirect

# Create your views here.

def home(request):
    return HttpResponse('欢迎来到我的主页')

# 现在我们来访问home页面



JsonResponse

向前端返回一个json字符串的两种方式
# Httpresponse

from
django.shortcuts import render,HttpResponse import json # Create your views here. def index(request): data = ['','cao'] return HttpResponse(json.dumps(data) )
第二种
from django.http import JsonResponse

# Create your views here.
def index(request):
    data = ['','cao']
    return JsonResponse(data,safe=False)
# safe=True 只能序列字典对象,False则可以序列字典以外的对象

 



使用render
比如我们现在要返回home.html页面,首先要在templates.py文件夹下创建html页面

 


 然后在views.py的定义对应的视图函数

def home(request):
    return render(request,'home.html',locals())

我们再次访问home看看得到的结果

 

 和我们写的html页面是一样的

下面介绍最后一个 redirect ,这个是用做跳转页面的

在urls.py定义login路由,在views.py文件里写上对于的login函数

# urls
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^home/',views.home),
    url(r'^login/',views.login),
    ]
# views
def home(request):
    return redirect('/login/')

def login(request):
    return HttpResponse('这是登录页面')

 

 这时我们再次访问home页面时,会跳转到login页面

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-14 16:36  不忘初心♒  阅读(434)  评论(0编辑  收藏  举报