加上你的准备的时间,估计30分钟完全够用了,因为最近在做爬虫管理平台,想着快速开发,没想到python web平台下有这么非常方便的框架,简洁而优雅。将自己的一些坑总结出来,方便给大家的使用。

准备环境:

系统:win7 or ubuntu

django版本:1.8.5

python版本:2.7.6

数据库:自带的SQLLITE3

IDE: sublime text 3

===========================Read ? go===================================

一,选择文件夹,用命令行创建文件夹

sudo django-admin startproject mysite

可以看到mysite文件夹,用命令行切换下mysite文件夹里面情况

.
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py 1 directory, 5 files

而manage.py就是我们管理mysite文件夹管理命令文件,用sublime text 3打开该文件夹。

二,在site下建立app ,输入命令:

sudo python manage.py startapp spiderinfo

这个时候文件夹的情况如下:

 2015-10-18 17:09:24 ☆  BruceUbuntu in ~/Desktop/djangoprojects/mysite
○ → tree
.
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   └── wsgi.py
└── spiderinfo
├── admin.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

三,app情况已经创建好了,django自带了ORM,我们只需要关注代码层的情况就可以了。

这个时候打开spiderinfo文件夹下的models.py,我们来简单的设计两张表

spider爬虫表,spiderconfig爬虫配置表

代码如下:

from django.db import models

# Create your models here.

class SpiderConfig(models.Model):
"""docstring for SpiderConfig"""
cid = models.AutoField(primary_key = True)
configname = models.CharField(max_length = 200)
createtime = models.DateTimeField() class Spider(models.Model):
Sid = models.AutoField(primary_key = True)
SpiderName = models.CharField(max_length=200)
Config = models.ForeignKey(SpiderConfig,to_field='cid')
Enable = models.BooleanField(default = True)

  

每个Spider有一个SpiderConfig配置方案,这样就有一个主外键的关系,我们先将写好的关系同步到数据库:

python manage.py migrate

这个时候会自动产生脚本:

Operations to perform:
Synchronize unmigrated apps: staticfiles, messages
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK

同步到数据库:

python manage.py syncdb

这个时候会产生同步的过程

○ → python manage.py syncdb
/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning) Operations to perform:
Synchronize unmigrated apps: staticfiles, messages
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
No migrations to apply. You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'bruce'):
Email address: nice_game@163.com
Password:
Password (again):
Superuser created successfully.

这个时候会让你输入管理界面的用户名密码,正常输入就可以了。

四,运行server,打开从网页中打开。

python manage.py runserver

打开server,输入网址:

http://127.0.0.1:8000/admin/

我们就可以在后台中看到管理界面了:

五,管理的后台看不到里面的内容,这个时候我们要编辑admin.py的内容,在后台管理界面来显示

代码:

from django.contrib import admin
import spiderinfo.models as app # Register your models here.
class SpiderConfigAdmin(admin.ModelAdmin):
#要显示的字段列表
list_display = ['Cid','Configname','Createtime']
#要搜索的字段列表
search_fields = ['Configname','Createtime']
list_filter = ['Createtime']
#max show count
#list_max_show_all = 100 #Config_id
class SpiderAdmin(admin.ModelAdmin):
list_display =['SpiderName','Config','Enable']
#这里特别说明,比如我要根据外键的ConfigName来在Spider实体中的
search_fields = ['SpiderName','Config__Configname']
list_filter = ['Enable','SpiderName'] admin.site.register(app.Spider ,SpiderAdmin)
admin.site.register(app.SpiderConfig , SpiderConfigAdmin)

  

最的一步,在settings.py里面为我们的应用注册

效果如下:

============================end============================

总结:说30分钟,其实只是建立一个快速搭建的界面,django写的这么优雅和简洁,30分钟怎么可能了解全部呢,一个好的东西是需要花时间好好学习的。

30分钟快速搭建Web CRUD的管理平台--django神奇魔法的更多相关文章

  1. 快速搭建Web环境 Angularjs + Express3 + Bootstrap3

    快速搭建Web环境 Angularjs + Express3 + Bootstrap3 AngularJS体验式编程系列文章, 将介绍如何用angularjs构建一个强大的web前端系统.angula ...

  2. 30分钟快速掌握AngularJs

    [后端人员耍前端系列]AngularJs篇:30分钟快速掌握AngularJs   一.前言 对于前端系列,自然少不了AngularJs的介绍了.在前面文章中,我们介绍了如何使用KnockoutJs来 ...

  3. 93.快速搭建Web环境 Angularjs + Express3 + Bootstrap3

    转自:https://www.cnblogs.com/wawahaha/p/3946023.html 前言 Angularjs越用越顺手,不仅代码量比jQuery少很多,而且实现思路特别清晰,构建大型 ...

  4. windows下如何快速搭建web.py开发框架

    在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方 ...

  5. Spring Boot入门-快速搭建web项目

    Spring Boot 概述: Spring Boot makes it easy to create stand-alone, production-grade Spring based Appli ...

  6. 在windows下如何快速搭建web.py开发框架

    在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方 ...

  7. AngularJS 30分钟快速入门【译】

    引用自:http://www.revillweb.com/tutorials/angularjs-in-30-minutes-angularjs-tutorial/,翻译如下: 简介 我三年前开始使用 ...

  8. Spring-Boot快速搭建web项目详细总结

    最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建 ...

  9. 30 分钟快速入门 Docker 教程

    原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. 一.欢迎来到 Docker 世界 1. ...

随机推荐

  1. pooling、relu、convolution的反向传播

    1.pooling的反向传播: https://blog.csdn.net/qq_21190081/article/details/72871704 pooling反向传播的原则:pooling的值和 ...

  2. application配置和profile隔离配置

    前言 github: https://github.com/vergilyn/SpringBootDemo 说明:我代码的结构是用profile来区分/激活要加载的配置,从而在一个project中写各 ...

  3. Webpack2入门

    webpack 2 将在其文档完成之后正式发布.但这并不意味着不可以开始使用它,如果你知道怎么配置的话. 什么是 Webpack? 简单来说,Webpack 就是一个针对 JavaScript 代码的 ...

  4. 第13章 GPIO输入—按键检测

    本章参考资料:<STM32F76xxx参考手册>.库帮助文档<STM32F779xx_User_Manual.chm>. 按键检测使用到GPIO外设的基本输入功能,本章中不再赘 ...

  5. JS JavaScript中的this

    this是JavaScript语言中的一个关键字 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用. function test() { this.x = 1; } 上面代码中,函 ...

  6. Restframework的版本及分页

    1.版本 1.1基于url的get传参方式 1.创建django项目(起名我的是version),再创建一个app01应用 创建完成,通过python3 manage.py startapp api ...

  7. Java项目中的下载 与 上传

    使用超级链接下载,一般会在浏览器中直接打开,而不是出现下载框 如果要确保出现下载框下载文件,则需要设置response中的参数: 1是要设置用附件的方式下载 Content-Disposition: ...

  8. 嵌入式:FreeRTOS的使用(未完)

    为了方便与UCOS对比,顺序按照UCOS那篇编写. 0.一些移植.系统相关 1.框架写法(个人习惯相关) 1-1.main 函数里创建一个开始任务 int main(void) { 初始化外设 xTa ...

  9. RabbitMQ消息中间件极速入门与实战

    1:初识RabbitMQ RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AM ...

  10. 3930: [CQOI2015]选数

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1958  Solved: 979[Submit][Status][Discuss] Descripti ...