• windows下python web开发环境的搭建


    windows下python web开发环境:

    python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1

    一. python环境安装

    https://www.python.org/ftp/python/2.7/python-2.7.amd64.msi

    不多说,装完后把C:Python27加入到path环境变量里.

    然后就溜溜python,看看version啦.OK,next step.

    二. python web开发框架django安装

    django是一个采用MVC思想的python web开发框架,利用它,你可以很轻松的构建自己的web应用.

    https://github.com/django/django/archive/1.5.7.zip

    我不知道为啥公司的django是1.5.1的,不知道从哪下的,不需要关心,1.5.7是它的兄长,没啥好担忧的.

    ok,就这么愉快的搞定了.

    三. Eclipse安装和pydev插件安装

    eclipse是老伙伴了,不多说,下载地址自己找去.

    pydev是eclipse的一个python IDE插件,它功能很强大,是python开发码农们的福音啊.

    安装采用的是老掉牙的Help->Install New Software方法.

    输入插件所在url地址http://pydev.org/updates,然后泡一壶茶,等着软件包的出现.

    接下来就是典型的软件安装next操作,next->next->next....

    装完后会自动提示restart,重启完后进入Window->Preference.

    如果安装成功,则会在左边树菜单上出现一个pydev的配置项(有时候由于eclipse和pydev的版本问题,死活会出不来).还有就是3.0以上的pydev是高级货,需要jdk7,如果你还用jdk6,那么这个配置项不会出现的.

    接下来配置下pydev插件所使用的python路径.

    进入pydev->Intepreters->Python Intepreter,new一个python解释器,选择python解释器为步骤一里面安装好的python.exe,取个霸气点的名字,这里我把这个解释器取名为local_py(本地土著).然后选择系统libs.最终配置完的界面如下.

     四. web项目初长成

    一切似乎都ok了,是该练习26个字母的时候了.

    首先new一个django项目吧, File->New->PyDev Django Project,

    这里Intepreter选择我们在步骤三最后配置阶段配置的local_py,也就是说使用本地安装好的python解释器.

    选择create 'src' folder... , 这样向导会帮我们创建src文件夹.

    点击下一步,出现配置数据库的界面,这里我们连接的是开源的mysql数据库.至于mysql的安装,请百度或google之.

    点击"Finish",项目创建向导完成.

    项目结构如图所示:

    Good,然后我们新建一个app吧,在这里,一个app就相当于一个web应用,里面需要我们自己编辑业务逻辑.

    右击项目,Django-> create application(manage.py startapp),输入一个霸气的名称,比如我这里叫pweb,然后就会在项目里新建一个package,里面包含模型,视图和测试py文件.

    在models.py文件中,我们编写模型类,一个模型类对应的是数据库一张表的结构,在java里面我们叫它pojo.不同的是,在java里这个pojo是很纯洁的,而在这里,我们这个模型类必须要继承models.Model,这样才能享受到Model类里面很多属性和方法.

    好,let's code.

    models.py

    #coding=utf8
    from django.db import models
    from django.contrib import admin
    
    # Create your models here.
    class Product(models.Model):
        name=models.CharField(max_length=50)
        income=models.DecimalField(max_digits=5, decimal_places=2)
        outcome=models.DecimalField(max_digits=5, decimal_places=2)
     
        class Meta:
            #在mysql里面对应的表是tb_product,你要不指定,表名会采用模块名_类名,即'pweb_product',so老实一点比较好
            db_table="tb_product"
            app_label = 'pweb'
            
    class ProductAdmin(admin.ModelAdmin):
        #要显示的字段
        list_display = ('name','income','outcome')
    #注册到django自带的admin模块
    admin.site.register(Product, ProductAdmin)

    其中Meta内部类的用法参见http://www.cnblogs.com/walkerwang/archive/2011/04/28/2031298.html

    ProductAdmin类用来定义Product页面需要展示那些字段的,它继承了ModelAdmin,自然可以使用admin模块的相关功能.

    urls.py

    from django.conf.urls import patterns, include, url
    
    
    from django.contrib import admin
    admin.autodiscover()
    
    # Uncomment the next two lines to enable the admin:
    # from django.contrib import admin
    # admin.autodiscover()
    
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'MyWebDemo.views.home', name='home'),
        # url(r'^MyWebDemo/', include('MyWebDemo.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
        # Uncomment the next line to enable the admin:
        # url(r'^admin/', include(admin.site.urls)),
        url(r'^admin/', include(admin.site.urls)),
    )

    定义url映射关系,我们访问admin页面就交由相应的方法来处理,这里admin模块已经帮我们封装好了,比如访问添加页面则调用哪个方法,访问查询页面又是哪一个.

    settings.py

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django.contrib.admin',
    'pweb', # Uncomment the next line to enable the admin: # 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', )
    别忘了添加这个pweb模块,刚才咱不是通过create application创建了歌app吗,确认已经把这个app添加上去了.

    五. 数据库配置

    由于django自带的admin模块需要一些额外的表,因此我们需要同步一下数据库,这个可以通过执行manage.py syncdb,而pydev也很人性化,直接就可以通过右击执行Django-> Sync DB(
    manage.py syncdb).这里需要你创建一个superuser(超级用户,也就是超级管理员),我们就叫他admin吧.

    执行完后,去mysql数据库里面瞅瞅啥情况,这里,我用的一个图形化的软件navicat作为mysql管理工具.

    然后,咱们再"火上浇油",创建一个表名字叫tb_product,跟刚才models.py里面配置的表名对应起来.

    CREATE TABLE `tb_product` (
      `name` varchar(50) DEFAULT NULL,
      `income` decimal(10,0) DEFAULT NULL,
      `outcome` decimal(10,0) DEFAULT NULL,
      `id` int(11) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

    注意,id字段一定要加上,否则页面上会报错说找不到id字段.而且id要设置为自增长(AUTO_INCREMENT),否则页面上添加记录也会报错.这都是admin模块要求的.

    Notes: 第五步和第六步的顺序反过来了,正常是先设计表结构,然后再编码的, 这里我就不再改了.

    六. 享受革命胜利果实

    ok,经过一系列的步骤,我们就可以开始启动服务器了. 右击项目,Run as->PyDev: Django.项目就这样愉快的起来了.

    访问http://127.0.0.1:8000/admin我们就可以看到页面了.

    使用刚才指定好的admin管理员进行登陆后,看到一个小清新的界面.

    其中,Pweb下的product就是我们在第四步里面代码的体现了.

    我们可以查看,编辑,添加,删除Product,而事实上我们根本没有写一丝一毫的增删改查sql和页面跳转等实现,一切就是那么轻松.从中也看到了Django的强大(事实上,这只是一个练手的例子,真正的web项目没有这样简单的)

    ok,教程就到这里为止,希望大家能有所收获.

  • 相关阅读:
    生信入门-爱课程上的华中农业大学
    PAT 1115 Counting Nodes in a BST[构建BST]
    PAT 1133 Splitting A Linked List[链表][简单]
    PAT 1037 Magic Coupon[dp]
    PAT 1033 To Fill or Not to Fill[dp]
    畅通工程续 HDU1874
    Free DIY Tour HDU1224
    六度分离 HDU1869
    Arbitrage HDU1217
    floyed算法
  • 原文地址:https://www.cnblogs.com/selwynHome/p/3724853.html
Copyright © 2020-2023  润新知