Django--【1】

Django官网

  1. 查看django版本
    import django
    django.version

  2. 安装

    1. 在线安装
      sudo pip3 install django 最新版本
      sudo pip3 install django==1.11.8 指定版本
    2. 离线安装
      下载安装包
      Django-1.11.8.tar.gz
      #tar -xvf Django-1.11.8.tar.gz
      cd Django-1.11.8
      sudo python3 setup.py install
    3. 使用wheel安装
      下载
      #pip3 download -d 路径
      安装
      pip3 install Django-1.11.8.whl
  3. 卸载
    pip3 uninstall Django

使用Django框架

  1. 创建练习项目
    指令 #django-admin startproject 项目名
    #django-admin startproject mywebsite1
  2. 运行
    cd mywebsite1/
    python3 manage.py runserver
    指定端口
    python3 manage.py runserver 5000 指定设备有5000端口
    指定IP+端口
    python3 manage.py runserver 192.168.40.129:8000
    指定IP需要修改settings.py
    ALLOWED_HOSTS = [] #空列表只允许127.0.0.1访问
    ALLOWED_HOSTS = [’*’] 允许任意访问 仅限调试使用

URL介绍
http://www.tmooc.cn/live

路由
URL中不看域名的部分
/user/user_info
/cart/cart_list

urls.py
urlpatterns是一个路由列表,保存url()实例

url(r'^admin/', admin.site.urls),
url(regex,views,kwargs=None,name=None)
1.regex:字符串类型 匹配请求的路径 通常为正则表达式
2.views:表示路径对应的视图函数
3.kwargs:向视图传递参数
4.name:为地址取一个别名 

试用后台管理系统

  1. 将django准备的数据库内容迁移到本地数据库

     python3 manage.py migrate
     python3 manage.py createsuperuser
      admin
      shibw@tedu.cn
      1234.com
      1234.com
     python3 manage.py runserver
     访问127.0.0.1:8000/admin 输入用户名密码进入
    
  2. **在项目中新建views.py **

     from django.http import HttpResponse
     def home(request):
         return HttpResponse('<h1>这是我的第一个首页</h1>')
    
  3. 在项目中/urls.py

     from . import views
     urlpatterns = [
         url(r'^admin/', admin.site.urls),
         url(r'^$',views.home),
     ]
    

练习:

建立网站
http://127.0.0.1:8000 首页
http://127.0.0.1:8000/page1 第一个页面
显示:这是我的第一个页面
http://127.0.0.1:8000/page2 第二个页面
显示:这是我的第二个页面
项目/urls.py

	urlpatterns = [
	    url(r'^admin/', admin.site.urls),
	    url(r'^$',views.home),
	    url(r'^page1/$',views.page1),
	    url(r'^page2/$',views.page2),
	]
	项目/views.py
	from django.http import HttpResponse
	def home(request):
	    return HttpResponse('<h1>这是我的第一个首页</h1>')
	def page1(request):
	    return HttpResponse('这是第一个页面')
	def page2(request):
	    return HttpResponse('这是第二个页面')

带参数的视图函数

	urlpatterns = [
	    #127.0.0.1:8000/year/2015
	    url(r'^year/(\d{4})$',views.page_year),
	    url(r'^date/(\d{4})/(\d+)/(\d+)$',views.date),
	]

接收参数并显示到页面

def page_year(request,year):
    #year对应正则表达式的第一个分组() 2015
    return HttpResponse('当前的年份:' + year)

接收多个参数

def date(request,year,month,day):
    return HttpResponse(year+'年'+month+'月'+day+'日')

访问地址
http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字
显示 生日为:xxxx年xx月xx日
http://127.0.0.1:8000/birthday/2000/01/01
显示 生日为:2000年01月01日

	urlpatterns = [
	    url(r'^birthday/(\d{4})/(\d{1,2})/(\d{1,2})$',views.birthday)
	]
	
	def birthday(request,year,month,day):
	    return HttpResponse('生日为:'+year+'年'+month+'月'+day+'日')

正则表达式的命名分组(?Pxxx)
http://127.0.0.1:8000/students/shibw/20
显示学生姓名+年龄

	url(r'^students/(?P<name>\w+)/(?P<age>\d{1,2})$',
	views.students)
	
	def students(request,name,age):
	    return HttpResponse('学生姓名:'+name+' 年龄:'+age)

通过url()传参
url(regex,views,kwargs,name)
url(r’^students/$’,views.students,
{‘name’:‘shibw’,‘age’:‘20’})

练习
http://127.0.0.1:8000/goods/任意数字
显示 当前查看的是id为x 的商品

http://127.0.0.1:8000/goods/1
显示 当前查看的是id为1的商品

HttpRequest对象

视图函数的第一个参数是HttpRequest对象
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象

HttpRequest对象属性

  1. path 字符串 表示请求路由的信息

  2. method 表示HTTP请求方式 通常’GET’和’POST’

  3. encoding 表示提交数据的编码方式
    如果没有指定 默认为None 表示同浏览器编码方式
    可直接指定编码方式 通常在表单中 修改表单数据的编码

    def home(request):
    return HttpResponse(request.path)

  4. GET:包含get请求中所有的数据

  5. POST:包含post请求的所有数据

  6. FILES:包含所有上传的文件

  7. COOKIES:包含所有cookie 键和值都为字符串

  8. session:类似字典形式 包含当前会话中的数据

  9. body:请求主体内容

  10. environ:包含客户端运行的环境变量的信息

方法:
is_ajax()

HTTP请求方式POST GET HEAD
HTTP状态码
200 请求成功
301 资源永久转移到其他URL
404 请求的资源不存在
500 内部服务器错误

创建应用 app
python3 manage.py startapp 应用名称
在项目/settings.py中添加应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'music',
]

分布式路由

  1. 在应用 music 中新建路由文件 urls.py

     from django.conf.urls import url
     from . import views
     
     urlpatterns = [
        url(r'^$',views.index)
     ]
    
  2. 在应用music 的views.py中

     from django.http import HttpResponse
     def index(request):
         return HttpResponse('这是Music的首页')
    
  3. 在主目录mywebsite1的urls.py中添加应用的路由

     from django.conf.urls import url,include
     url(r'^music/',include('music.urls')),
    

练习
新建项目netease
在项目中添加三个应用 music sport user
分别显示三个应用的首页

练习:
新建项目 polls
在polls中新建应用poll
应用poll功能:
127.0.0.1:8000 显示投票应用首页
127.0.0.1:8000/x 显示x号问题内容
127.0.0.1:8000/x/result 显示x号问题投票结果

#django-admin startproject polls
#python manage.py startapp poll
向项目中添加应用
polls/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'poll',
]
#在poll/views.py中定义应用视图函数
def index(request):
    return HttpResponse('投票首页')

def detail(request,id):
    return HttpResponse(id+'号问题详情')

def result(request,id):
    return HttpResponse(id+'号问题结果')
#在poll/urls.py中定义应用路由
from django.conf.urls import url
from . import views
urlpatterns = [
    url('^$',views.index),
    url('^(?P<id>\d+)/$',views.detail),
    url('^(?P<id>\d+)/result/$',views.result)
]
#将应用路由文件添加到项目主路由文件
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^',include('poll.urls'))
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值