一:简介

python的web框架有很多,个人查了一下,有Django、Pylons、 Tornado、Bottle和Flask等,其中使用人数最多的是Django,而我学习Django也是因为openstack中使用的是django框架。

Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式,即模型M,视图V和控制器C。

二:安装

由于Django2.0以后便不再支持python2.x,所以在安装时一定要注意。

2.1.Python3.x+Django2.x

安装python-setuptools

yum install python-setuptools

下载Django安装包

easy_install django

2.2.Python2.x+Django1.x

安装python-setuptools

yum install python-setuptools

下载Django安装包

点击历史版本中的1.11版本下载。

输入以下命令并安装:

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

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

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

2.3检验

[root@solar django]# python

Python 2.7.3 (default, May 15 2014, 14:49:08)

[GCC 4.8.0] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import django

>>> django.VERSION

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

>>>

三:创建第一个项目

3.1创建并浏览器展示

这里要学会使用django-admin.py管理工具,来创建。

创建项目

django-admin.py startproject HelloWord

进入项目,查看目录结构

[root@localhost ~]# cd HelloWorld/

[root@localhost HelloWorld]# tree

.

├── HelloWorld --------项目的容器

│   ├── __init__.py --------一个空文件,告诉 Python 该目录是一个 Python 包

│   ├── settings.py --------该djiango项目的设置、配置

│   ├── urls.py --------该djiango项目的URL声明,一份由djiango驱动的网站“目录”

│   └── wsgi.py --------一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

└── manage.py --------一个非常实用的管理工具,可以实现与django的各种交互

1 directory, 5 files

[root@localhost HelloWorld]#

启动服务器

python manage.py runserver 0.0.0.0:8000

再在浏览器中输入服务器IP:8000

此时要注意:

1:关闭防火墙,

ALLOWED_HOSTS = [‘*‘]  #在这里请求的host添加了*

3.2修改视图内容

1.在HelloWorld/HelloWorld目录中创建一个新文件 view.py 文件,并输入代码:

from django.http import HttpResponse

def hello(request):

return HttpResponse("Hello world ! ")

2.在 urls.py 文件中注释原来的代码,添加如下代码

from django.conf.urls import url

from . import view

urlpatterns = [

url(r'^$', view.hello),

]

然后启动django,访问浏览器出现如下内容

3.3修改URL

修改urls.py代码,在其中添加如下红色类似字符

from django.conf.urls import url

from . import view

urlpatterns = [

url(r'^yaohong$', view.hello),

]

然后启动django服务

再输入原来的服务器IP:8000会出现如下报错

因为需要再在端口号后面加入刚刚添加的字符,如下图所示

四:模板

4.1实现模板数据分离

1.创建模板文件

在HelloWorld下创建创建templates文件夹再在文件夹下创建hello.html,HelloWorld/templates/hello.html

[root@bogon HelloWorld]# tree

.

├── db.sqlite3

├── HelloWorld

│   ├── __init__.py

│   ├── __init__.pyc

│   ├── settings.py

│   ├── settings.pyc

│   ├── urls.py

│   ├── urls.pyc

│   ├── view.py

│   ├── view.pyc

│   ├── wsgi.py

│   └── wsgi.pyc

├── manage.py

└── templates

└── hello.html

2 directories, 13 files

在hello.html中添加如下代码

{{ hello }}

2.在settings.py中配置模板路径

修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+”/templates”,],

TEMPLATES = [

{

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

'DIRS': [],

'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',

],

},

},

]

3.在 view.py中想模板提交数据

在view.py中加入如下代码,其中“hello”为模板中的变量,“Hello Word! my name is yaohong”为提交的数据

from django.shortcuts import render

def hello(request):

context = {}

context['hello'] = 'Hello World! my name is yaohong'

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

4.启动服务器

python manage.py runserver 0.0.0.0:8000

在浏览器中输入地址

4.2Django模板标签

if/else 标签

{% if condition1 %}

... display 1

{% elif condition2 %}

... display 2

{% else %}

... display 3

{% endif %}

for 标签

{% for athlete in athlete_list %}

{{ athlete.name }}

{% for sport in athlete.sports_played %}

{{ sport }}

{% endfor %}

{% endfor %}

ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。

{% ifequal user currentuser %}

Welcome!

{% endifequal %}

注释标签

{# 这是一个注释 #}

过滤器

#{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写

{{ name|lower }}

#将第一个元素并将其转化为大写。

{{ my_list|first|upper }}

include 标签

{% include "nav.html" %}

模板继承

首先新建一个要被继承的文件,这里命名为base.html

继承的学习

Hello World!

我是继承过来的!!!

{% block mainbody %}

original

{% endblock %}

再在hello.html继承base.html页面

{% extends "base.html" %}

{{ hello }}

{% block mainbody %}

继承了 base.html 文件

{% endblock %}

五:模型

5.1安装mysql

首先检查系统是否自带或者我们已经安装mysql,

rpm -qa | grep mysql

安装并启动mysql:

#非centos7版本

yum install mysql

yum install mysql-server

yum install mysql-devel

service mysqld start

#centos7版本执行如下

yum install mariadb-server mariadb

systemctl start mariadb #启动MariaDB

systemctl enable mariadb #设置开机启动

验证安装

执行下面语句会看到版本信息,如果没有任何输出,表示mysql没有安装成功

mysqladmin --version

设置用户

更改root密码

mysqladmin -u root password "new_password";

设置test用户密码

mysql -u root -p

>GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' \

IDENTIFIED BY 'test123';

>GRANT ALL PRIVILEGES ON test.* TO 'test'@'%' \

IDENTIFIED BY 'test123';

5.2修改相应配置

1.数据库配置

在HelloWorld/HelloWorld/settings.py下修改DATABASES{}如下:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'test',

'USER': 'test',

'PASSWORD': 'test123',

'HOST':'localhost',

'PORT':'3306',

}

}

2.定义模型

创建APP

进入HelloWorld文件夹

django-admin.py startapp TestModel

创建完成后目录如下:

[root@localhost HelloWorld]# tree

.

├── db.sqlite3

├── HelloWorld

│   ├── __init__.py

│   ├── __init__.pyc

│   ├── settings.py

│   ├── settings.pyc

│   ├── testdb.py

│   ├── testdb.pyc

│   ├── urls.py

│   ├── urls.pyc

│   ├── view.py

│   ├── view.pyc

│   ├── wsgi.py

│   └── wsgi.pyc

├── manage.py

├── templates

│   ├── base.html

│   └── hello.html

└── TestModel

├── admin.py

├── admin.pyc

├── apps.py

├── __init__.py

├── __init__.pyc

├── migrations

│   ├── 0001_initial.py

│   ├── 0001_initial.pyc

│   ├── __init__.py

│   └── __init__.pyc

├── models.py

├── models.pyc

├── tests.py

└── views.py

4 directories, 29 files

修改HelloWorld/TestModel/models.py:

创建模型

# models.py

from django.db import models

class Test(models.Model):

name = models.CharField(max_length=20)

修改settings.py

INSTALLED_APPS = (

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'TestModel', # 添加此项

)

执行下列命令

$ python manage.py migrate # 创建表结构

$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更

$ python manage.py migrate TestModel # 创建表结构

数据库操作

修改HelloWorld/HelloWorld/urls.py

from django.conf.urls import *

from . import view,testdb

urlpatterns = [

url(r'^hello$', view.hello),

url(r'^testdb$', testdb.testdb),

]

创建HelloWorld/HelloWorld/testdb.py

# -*- coding: utf-8 -*-

from django.http import HttpResponse

from TestModel.models import Test

# 数据库操作

def testdb(request):

test1 = Test(name='runoob')

test1.save()

return HttpResponse("

数据添加成功!

")

然后在浏览器中输入IP:8000/testdb

作者:姚红

python django前端框架_Python的Web应用框架–Django相关推荐

  1. python+selenium基于po模式的web自动化测试框架

    目录:导读 一.什么是Selenium? 二.自动化测试框架 三.自动化框架的设计和实现 四.需要改进的模块 五.总结 一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具, ...

  2. python学习(三):web网页框架Django,成就python全栈开发

    1.Django安装 框架很完美,组件非常多,但文件太多,过于臃肿(1.. Django是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计.· 由经验丰富的开发人员构建,它负责We ...

  3. python做性能测试框架_python常用web框架简单性能测试结果分享(包含dja

    测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动 ...

  4. python如何收集数据库_python 整理web数据库

    从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信, ...

  5. python网站模板下载_Python 的 Web 应用程序模板 - Visual Studio | Microsoft Docs

    Python Web 应用程序项目模板Python web application project templates 01/28/2019 本文内容 Visual Studio 中的 Python ...

  6. python 爬虫框架_Python网络爬虫-scrapy框架的使用

    1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...

  7. python 爬虫框架_Python实战:爬虫框架(6)

    数据挖掘 用于通过互联网到各个服务器获取数据 数据 公开数据:客户端浏览器访问网页所看到的数据 隐私数据:服务器内部没有暴露,具有隐私权限的数据 爬虫 网络爬虫:公开数据 蠕虫爬虫:携带具有攻击性病毒 ...

  8. python django flask介绍_Python开发WEB框架Flask详细介绍

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

  9. python增删改查的框架_python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查...

    Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...

最新文章

  1. 自定义类型数组的初始化
  2. Ubuntu连结远程github
  3. 【干货】运维需要掌握的 17 个实用技巧
  4. Escape The Maze (hard version) 多源最短路,bfs(1900)
  5. 报任安书文言现象_语文老师精心总结【文言文常考点】够你从初一用到初四!...
  6. 王者荣耀交流协会第四次Scrum立会
  7. Kali Linux Web 渗透测试秘籍 第四章 漏洞发现
  8. Linux系统中,各种小动物
  9. 如果REST应用程序应该是无状态的,那么如何管理会话?
  10. 什么是Thymeleaf?
  11. springboot实现语言切换
  12. 虚拟机ubuntu与真实机实现实现复制粘贴、传输文件
  13. 小程序员的不完整大学回忆3
  14. 2018今日头条内推笔试1
  15. 写点什么好呢2? 钱、事业、婚姻、人生意义
  16. 国外物联网平台大盘点
  17. 中职生职业生涯规划书2000字学计算机,中职生职业生涯规划书计算机专业
  18. 百度虚拟服务器上传,百度云空间虚拟主机502 Bad Gateway错误
  19. Flink实践:跨境电商 Shopee 的实时数仓之路
  20. Linux tar解压缩命令详解

热门文章

  1. 计算机组成原理面试总结
  2. Vmware核心处理器及内核数量相关概念
  3. 开篇鸿蒙谁为情种意思,【谁为情种】开辟鸿蒙 谁为情种
  4. cordova 将cesium 打包成Android App
  5. SSM框架整合详细案例
  6. 写一篇怎样判断三角形相似的逐字稿
  7. 向微积分手机版授课老师说句真心话
  8. 大三怎么为考研做准备?
  9. 定制建筑项目管理软件
  10. CSS !important 规则