python快速开发web项目_python快速开发Web之Django

本文介绍了如何使用Python的Django框架快速开发Web项目。作者对比了Flask和Django,认为Django更适合快速开发,因为它提供了后台管理和用户管理功能。文中详细讲解了从环境配置到创建项目、启动Web服务、创建应用、定义Model、设置数据库、创建超级用户以及使用模板和视图的过程。最后,展示了如何处理页面请求和响应,并提到了后续完善项目的计划。
摘要由CSDN通过智能技术生成

以前写测试框架,要么是纯python代码驱动的,要么是WinForm界面的框架,多人操作并不适合。

就想用python写个Web版的,于是想到了Web快速开发的框架Flask和Django两个

个人觉得Django更快一些,后台管理,用户管理都不需要自己写了,虽然相较于Flask来说Django限制要多些,但是没关系

Django足够满足需求了。果断选Django

-------------------------------------------

环境:python2.7

安装:pip install Django

成功后在Pthon\Scripts下会有django-admin.py等

确认环境变量PATH可以执行django-admin(不设置那么,每次要进入所在路径执行)

-------------------------------------------

ok,准备功作完毕,开始创建第一个项目

1、创建项目

django-admin.exe startproject mysite

执行完成,命令行下,没有返回消息,可以到命令行所在目录看下项目创建成功没

startproject命令创建的项目下,包括了三个文件

manage.py文件是同django一起工作的工具。

settings.py文件包含项目位置,数据库信息,调试标志,和一些其它重要信息。

urls.py文件它是url映射到你应用程序里的配置文件。是django里非常强大的一个特性。

2、启动web服务

manage.py runserver

如果出现start develoment server at http://127.0.0.1:8000这说明启动成功了。

可以通过浏览器访问这个ip会看到'It worked'页面我们就可以进行下边开发了。

3、创建app应用

命令行到testProject目录下执行

manage.py startapp blog

blog是应用名字,自己决定

-------------到这里,项目创建完成,下面可以进行开发了-------------------

这里使用的python开发环境pycharm

1、将应用加到项目中来Settings.py

INSTALLED_APPS设置来告诉Django app也是项目的一部分。

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'blog', #将应用加入

'bootstrap3', #这个是html样式pip可以安装

]

setting.py中配置数据库,sqlite3小型数据库,类似Access数据库

默认也是这个。如果使用sqlite3数据库不需要修改

DATABASES = {

'default': {

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

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

2、设计Model

models.py这是定义数据结构的地方;是Django操作数据库的地方

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

from __future__ import unicode_literals

from django.db import models

from django.contrib import admin

# Create your models here.

class blogPost(models.Model):

title = models.CharField(max_length=150)

body = models.TextField()

timestamp = models.DateTimeField()

class blogPostAdmin(admin.ModelAdmin):

list_display = ('title','timestamp')

admin.site.register(blogPost,blogPostAdmin)

#存储测试用例表

class caseInfo(models.Model):

step = models.AutoField #步骤序号

desc = models.CharField(max_length=150) #描述

url = models.URLField(max_length=200) #url

method = models.CharField(max_length=8) #方法 post or get

header = models.TextField() #头信息

data = models.TextField() #数据

date = models.DateTimeField() #日期时间

exetime = models.DateTimeField() #执行时间,执行时动态更新

exeresult = models.CharField(max_length=8) #执行结果

exeresponse = models.TextField() #影响信息

#后台,显示的字段,也就是/admin/登录的后台

class caseAdmin(admin.ModelAdmin):

list_display = ('desc','url','method','header','data','exetime','exeresult','exeresponse')

admin.site.register(caseInfo,caseAdmin) #将表信息注册到后台

在命令行执行,创建测试用例信息表

manage.py syncdb

如果你使用syncdb报错“未知命令”不要着急,这是由于Django 1.9版本以上命令换成了migrate

要先同步数据库:manage.py makemigrations 要不然数据库中不会有表

manage.py migrate

创建成功,会有很多的ok

可以下载工具查看数据库:SQLiteSpy.exe

----------------------------------------------------------

如果models.py中有更改,比如增加了新字段,都需要再次执行上边的两个命令makemigrations和migrate

------------------------------------------------------------------------

创建好model后,要登录后台去录入数据,那么我们需要创建个超级管理员帐户才行

创建超级用户:

manage.py createsuperuser

设置用户名,密码

然后登录:http://127.0.0.1:8000/admin/

Add增加信息

增加后,在数据库中可以查到增加信息。

-----------------------------------------------------------------------

要实现如下界面:

1、首先在app下建一个模版文件夹migrations  这个名子在Django是固定的不能改

在这下边创建html页面

#box-table-a

{

font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;

font-size: 12px;

margin: 45px;

width: 1240px;

text-align: left;

border-collapse: collapse;

}

#box-table-a th

{

font-size: 13px;

font-weight: normal;

padding: 8px;

background: #b9c9fe;

border-top: 4px solid #aabcfe;

border-bottom: 1px solid #fff;

color: #039;

}

#box-table-a td

{

padding: 8px;

background: #e8edff;

border-bottom: 1px solid #fff;

color: #669;

border-top: 1px solid transparent;

}

#box-table-a tr:hover td

{

background: #d0dafd;

color: #339;

}

{% load bootstrap3 %}

{% bootstrap_css %}

{% bootstrap_javascript %}

IABS online

StepDescriptionUrlMethodHeadersDataResultsExecute TimeExecute

{% for post in posts %}

{{post.id}}

{{post.desc}}

{{post.url}}

{{post.method}}

{{post.header}}

{{post.data}}

{{post.exeresult}}

{{post.exetime}}

{% csrf_token %}

{% endfor %}

views.py

接收页面请求,验证响应信息code

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

from __future__ import unicode_literals

from django.shortcuts import render

from django.http import HttpResponse,request,HttpResponseRedirect

from models import blogPost

from models import caseInfo,statusInfo

from requests import Session

import json

# Create your views here.

def index(request):

#posts = blogPost.objects.all()

posts = caseInfo.objects.all()

status = statusInfo.objects.all()

if request.method=="POST": #执行代码

pid = request.POST.get('id')

url = request.POST.get('url')

method = request.POST.get('method')

header = request.POST.get('header')

postdata = request.POST.get('data')

reStr = Session().post(url,data=eval(postdata))

if reStr.json()['code'] =='':

caseInfo.objects.filter(id=pid).update(exeresult='FAIL')

else:

caseInfo.objects.filter(id=pid).update(exeresult='PASS')

return render(request,"index.html",{"posts":posts,})

elif request.method =="GET":

return render(request,"index.html",{"posts":posts,})

url.py

from django.conf.urls import url

from django.contrib import admin

from blog import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^index/$', views.index),

]

代码到这基本完成了;当然还需完善;

点击,执行会将当前行的数据,传到后台,进行发送请求做处理…………

后续完善在更新…………

从零开始,使用python快速开发web站点(1)

环境:ubuntu 12.04 python版本:  2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, (ubuntu 或 ...

从零开始,使用python快速开发web站点(2)

书接上文.http://blog.csdn.net/i7788/article/details/10306595 首先是数据库的搭建,这里的django的数据模型搭建十分easy. no sql.ju ...

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 ...

Python的第三方web开发框架Django

1.Django Django是一个基于Python的第三方Web应用开发框架,可以简化Web开发. 官网:https://www.djangoproject.com/ 主要特点: ①采用MVC模型变 ...

python open-falcon docker.WEB developers---flask,---django.

http://www.verydemo.com/demo_c281_i2477.html (python Gevent – 高性能的Python并发框架) http://www.django-rest ...

python自动化开发-[第十八天]-django的ORM补充与ajax,分页器

今日概要: 1.ORM一对多,多对多 2.正向查询,反向查询 3.聚合查询与分组查询 4.F查询和Q查询 5.ajax 6.分页器 一.ORM补充: django在终端打印sql语句设置: LOGGI ...

bottle+cherrypy快速开发web服务

我目前用得最顺手的python web框架是bottle,简单方便. bottle有一个开发用的http服务器,效率不高,单线程,阻塞. 所以,得找个别的服务器来部署. 根据bottle官方的文档,发 ...

Spring Boot快速开发Web项目

我们以前使用Spring框架的时候,需要首先在pom文件中增加对相关的的依赖,然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行 ...

用python快速搭建WEB服务器

cmd下进入你要搞WEB项目的目录 输入↓方代码 python -m SimpleHTTPServer 端口号# 默认是8000 这样就启动了一个简单的WEB服务器

随机推荐

URAL 2089 Experienced coach Twosat

Description Misha trains several ACM teams at the university. He is an experienced coach, and he doe ...

java-阻塞队列

阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列 ...

CentOS vsftp安装与配置

详细配置说明:. http://www.cnblogs.com/app-lin/p/5189762.html 1.安装vsftpd yum install vsftpd 2.启动/重启/关闭vsftp ...

htop查看系统负载

htop 是 Linux 系统中的一个互动进程查看器,可以让用户进行交互式操作,可横向或纵向滚动浏览进程列表,支持鼠标操作.用户可以在安装 htop 来监控服务器的负载. 01.下载 https:// ...

docker-2 深入了解docker

docker镜像.容器.仓库的基本概念 镜像 Docker 镜像就是一个只读的模板.例如:一个镜像可以包含一个完整的 CentOS 操作系统环境,里面仅安装了 httpd或用户需要的其它应用程序. 镜 ...

Magento PDF发票,支持中文,以及修改的办法

Magento PDF发票,支持中文,以及修改的办法.   如果让magento的PDF发票支持中文.Magento生成PDF发票.使用的是zend framework的zend_pdf类. 下面是一 ...

codeforces 678D Iterated Linear Function 矩阵快速幂

矩阵快速幂的题要多做 由题可得 g[n]=A*g[n-1]+B 所以构造矩阵  { g[n] }    =  {A   B}  * { g[n-1]} {   1   }         {0   1 ...

Spring集成RabbitMQ-必须知道的几个概念

上篇我们了解了最新spring-rabbit的2.0.0.M5版本相较于之前有哪些变化.其实使用Spring-amqp确实简 ...

CentOS安装glibc-2.14

CentOS安装glibc-2.14   到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.gz wget https://ftp.gnu.org/gnu/ ...

WPF使用总结

ListboxItemContainer样式 一般items控件的项模板 很容易 设置DataTemplate就可以了,比如listbox .但是在选中和失去焦点的时候 却是Windows自带的那种 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值