Django新手小问题

列出了在学习Django时的一些小问题,新手应该都会遇到。

  1. 新建项目
django-admin startproject projectname
  1. 创建应用
python manage.py startapp appname
  1. 外网访问

修改settings.py,改为

ALLOWED_HOSTS = ['*']
  1. NameError: name ‘url’ is not defined

urls.py中添加

from django.conf.urls import url
  1. NameError: name ‘include’ is not defined

urls.py中添加

from django.urls import include
  1. admin管理员
    python manage.py createsuperuser

然后通过访问/admin就可以登录了。

  1. 处理GET/POST请求

    if request.method=='GET':
    if request.GET:
        text = request.GET.get('str', default='')
    if request.method=='POST':
    if request.POST:
        text = request.POST.get('str', default='')
  2. 处理POST请求报403 CRSF

需要在setttings中注释掉这一行,不然会报403 CRSF错误

'django.middleware.csrf.CsrfViewMiddleware'
  1. 发起GET/POST请求

这个问题不是Django独有的,随便一个Python项目都有这个需求。

首先需要安装requests依赖,它不是内建的,需要额外安装。

pip install requests
import requests

def get_post(request):
    url = 'http://127.0.0.1:8012/wordseg/jieba_seg/'
    # GET请求
    get1 = requests.get(url);
    print(get1.text)

    # POST请求
    post1 = requests.post(url, data = {'str':'我是一个新世纪码农'})
    print(post1.text)

    return HttpResponse('complete')
  1. 返回json
# 首先引入json
import json

def res_test(request):
    resp = {'code': 0, 'msg' : "请求参数不能为空"}
    return HttpResponse(json.dumps(resp), content_type="application/json")

如果不加content_type="application/json",返回的则是文本格式的json字符串,而非json格式。

  1. 首页

对于一个初始项目,首页是django的一个介绍页。如果配置过urls.py且开启了DEBUG,首页会是一个信息页面,显示所有app的访问路径。

如果想自定义首页,可以在urls.pyurlpatterns里加上

path('', myapp.views.index, name= 'home'),

其中myapp是一个app。

Leave a Comment

豫ICP备19001387号-1