pythondj教程_Django教程--持续更新中···

f1bf035b6f0028ea09a92051e4e0042c.png

一 了解Django

Django 是Python下最具有代表性的WEB框架;

是一个开放源代码的web应用框架,使用Python编写;

遵守BSD版权,初次发布于2005年7月,于2008年9月颁布正式版1.0;

采用了MVC的软件设计模式,模型M-视图V-控制器C。

二 Django 安装

2.1 准备

安装前需要安装Python开发环境,并配置好Python环境变量(修改系统变量path,添加加Python的安装路径);

Django1.6.x以上版本已经兼容Python3.x;

2.2 安装

2.2.1 windows 环境

下载Django压缩包;

解压后与Python安装目录放在同一个根目录,使用命令解压

tar xzvf Django-3.0.3.tar.gz

进入Django目录,执行命令

python setup.py install

Django将安装到Python的lib下的site-package;

···

Installed c:\python37\lib\site-packages\pytz-2019.3-py3.7.egg

Finished processing dependencies for Django==3.0.3

配置环境变量,添加以下路径到系统环境变量path中:C:\Python37\Lib\site-packages\Django-3.0.3-py3.7.egg\django;

C:\Python37\Scripts。

使用命令检查

>>> import django

>>> django.get_version()

'3.0.3'

2.2.2 Linux环境

2.2.2.1 yum安装方法

命令 安装setuptools:

yum install python-setuptools

使用easy-install 命令安装django

easy-install django

检查安装:(python解释器中使用命令)

>>> import django

>>> django.VERSION

(1,6,5,'final',0)

2.2.2.2 pip安装方法

安装pip工具

参照 python pip安装使用

安装django

pip install Django

2.2.2.3 源码安装

下载源码包

安装

tar xzvf Django-X.Y.tar.gz #解压下载包

cd Django-X.Y #进入Django目录

python setup.py install #执行安装命令

2.2.3 Mac环境

下载最新稳定版本

进入下载目录,默认是/User/XXX/Downloads, XXX是用户名

$ tar zxvf Django-3.0.3.tar.gz

或者github 上下载

git clone https://github.com/django.git

进入解压后的目录,安装

cd Django-3.0.3

sudo python setup.py.install

2.3 创建Django项目

先进入站点目录,使用命令创建demodj1项目

$ django-admin.py startproject demodj1

启动服务

cd demodj1

$ python manage.py runserver

···

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

三 创建第一个项目

Python3.7.4

Django 3.0.3

3.1 Django管理工具

django-admin

3.2 创建项目

django-admin startproject HelloWorld

项目目录结构

cd helloworld

tree

.

|-- HelloWorld #项目的容器

| |-- __init__.py #一个空文件,告诉python该目录是要给python包

| |-- asgi.py #

| |-- settings.py #该项目的设置、配置

| |-- urls.py #该项目的url声明,一份有Djange驱动的网站目录

| `-- wsgi.py #一个WSGI兼容的web服务器的入口

`-- manage.py #使用的命令行工具

添加view.py

from django.http import HttpResponse

def hello(request):

return HttpResponse("Hello world ! ")

修改urls.py

from django.urls import path

from . import view

urlpatterns= [

path('hello/', view.hello),

]

打开http://127.0.0.1:8000/hello,显示正常。

3.3 path()函数

path(route, view, kwargs=None, name=None)

route:必选参数,字符串,表示url的规则,匹配的url会执行对应的view

view:必选参数,执行与正则表示式匹配的url请求

kwargs:视图使用的字典类型的参数

name:用来反向获取url

四 Django 模板

模板是一个文本,用于分离文档的表现形式和内容

4.1 模板应用

在HelloWorld项目中创建templates目录并建立hello.html

hello.html文件:(使用双大括号)

{{hello}}

修改settings.py文件

TEMPLATES = [

{

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS':[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',

],

},

},

]

修改view.py

from django.shortcuts import render

def hello(request):

context={}

context['hello'] = 'Hello World!'

return render(request,'hello.html',context)

4.2 模板标签

4.2.1 if/else

基本语法格式

{% if condition %}

··· display

{% endif %}

# 或者

{% if condition1 %}

··· display1

{% elif condition2 %}

··· display2

{% else %}

··· display3

{% endif %}

if/else支持嵌套

{% if %} 接受and \or \ not 关键字

4.2.2 for

{% for %} 允许在一个序列上迭代。

{% for athlete in athlete_list %}

{{ athlete.name }}

{% endfor %}

给标签增加一个reversed 使得该列表被反向迭代

{% for athlete in athlete_list reversed %}

···

{% endfor %}

可以嵌套使用{% for %} 标签

4.2.3 ifequal/ifnotequal 标签

比较两个值,user currentuser

{% ifequeal user currentuser %}

Welcome!

{% endifequal %}

支持 else 标签

{% ifequal section 'sitenews' %}

Site News

{% else %}

No News Here

{% endifequal %}

4.2.4 注释标签

{# #}

4.2.5 过滤器

{{ name|lower }}

4.2.6 include

允许在模板中包含其他的模板的内容

{% include "nav.html" %}

### 4.2.7 模板继承

模板可以用继承的方式来实现复用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值