【python之django1.11框架一】django环境搭建及基本操作

1. 环境准备

$ conda activate py36
$ django-admin

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

环境准备完成。

2. django 基本操作

1. 命令行操作方式

# 1.创建django项目
  	"""
  	你可以先切换到对应的D盘 然后再创建
  	"""
  	django-admin startproject mysite
    
    	mysite文件夹
      	manage.py
      	mysite文件夹
        	__init__.py
        	settings.py
          urls.py
          wsgi.py
 # 2.启动django项目
	"""
		一定要先切换到项目目录下	
		cd /mysite
	"""
  python manage.py runserver
  # http://127.0.0.1:8000/
 
# 3.创建应用(具体的业务)
"""
Next, start your first app by running python manage.py startapp [app_label].
"""
	python manage.py startapp app01
    应用名应该做到见名知意
      user
      order
      web
      ...

主要文件介绍

-mysite项目文件夹
	--mysite文件夹
  	---settings.py	    配置文件
    ---urls.py			路由与视图函数对应关系(路由层)
    ---wsgi.py			wsgiref模块(不考虑)
  --manage.py				django的入口文件
  --db.sqlite3			django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)
  --app01文件夹
  	---admin.py			django后台管理
    ---apps.py			注册使用
    ---migrations文件夹		数据库迁移记录
    ---models.py		数据库相关的 模型类(orm)
  	---tests.py			测试文件
    ---views.py			视图函数(视图层)

2. pycharm 创建项目

在这里插入图片描述

3. 命令行与pycharm创建的区别

# 1 命令行创建不会自动有templatew文件夹 需要你自己手动创建而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
]
# 命令行创建
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
]
"""
也就意味着你在用命令创建django项目的时候不单单需要创建templates文件夹还需要去配置文件中配置路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
"""

# 2. 注册应用
***********************创建的应用一定要去配置文件中注册**********************
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',  # 全写
  	'app01',			 # 简写
]
# 创建出来的的应用第一步先去配置文件中注册 其他的先不要给我干
ps:你在用pycharm创建项目的时候 pycharm可以帮你创建一个app并且自动注册

4. 小试牛刀

# 1. 创建应用 app01。并在study_web01目录下的setting.py文件中进行注册。

# 2. 在urls.py文件
from django.conf.urls import url
from django.contrib import admin

from app01 import views

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

# 3. 在app01.views 文件中
from django.shortcuts import render, HttpResponse, redirect


# Create your views here.
def index(request):
    # request 请求相关的所有数据对象
    # return HttpResponse("hello world")
    # return render(request, 'first.html')
    # return redirect('https://www.baidu.com')  # 可自动跳转到其他地址,也可跳转自己项目的其他路由
    return redirect('/login')


def login(request):
    return HttpResponse("login")

"""
总结:
HttpResponse
	返回字符串类型的数据

render
	返回html文件的 (需要在 templates中增加对应的html文件)

redirect
	重定向
	return redirect('https://www.baidu.com/')
    return redirect('/home/')
"""

3. 静态文件配置

  • 我们将html文件默认都放在templates文件夹下
  • 我们将网站所使用的静态文件默认都放在static文件夹下
  • django默认是不会自动帮你创建static文件夹 需要你自己手动创建
"""
一般情况下我们在static文件夹内还会做进一步的划分处理
	-static
  	--js
    --css
    --img
    其他第三方文件
"""

1. 配置静态资源存放路径

# 在settings.py 文件中
STATIC_URL = '/static/'  # 类似于访问静态文件的令牌
"""如果你想要访问静态文件 你就必须以static开头"""
"""
/static/bootstrap-3.3.7-dist/js/bootstrap.min.js

/static/令牌
取列表里面从上往下依次查找
    bootstrap-3.3.7-dist/js/bootstrap.min.js
    都没有才会报错
"""
# 静态文件配置,在此新增以下代码
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static'),
]

# 在html文件进行引用静态文件
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>

2. 静态文件动态解析

# settting.py 文件不做改动。只需要修改html中引用静态文件的地方
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>

4. request对象基本操作

1. 获取请求方法

# request.method
# 返回请求方式 并且是全大写的字符串形式  <class 'str'>

2. 获取请求参数

# 获取用户数据
# print(request.POST)  # 获取用户提交的post请求数据(不包含文件)
# <QueryDict: {'username': ['jason'], 'password': ['123']}>
username = request.POST.get('username')
print(username, type(username))  # tom <class 'str'>
# get方法 只会获取列表最后一个元素

# getlist 获取完整的列表
username = request.POST.getlist('username')
hobby = request.POST.getlist('hobby')
# ['tom'] <class 'list'>
# ['111', '222', '333'] <class 'list'>

总结

"""
request.method # 返回请求方式 并且是全大写的字符串形式  <class 'str'>
request.POST  # 获取用户post请求提交的普通数据不包含文件
	request.POST.get()  # 只获取列表最后一个元素
  request.POST.getlist()  # 直接将列表取出
request.GET  # 获取用户提交的get请求数据
	request.GET.get()  # 只获取列表最后一个元素
  request.GET.getlist()  # 直接将列表取出
"""
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值