Django初识

系统环境:

        12.04 ubuntu x64

        python 2.7.3  

        Django 1.9.5 (python 3默认安装了Django)

        IP:192.168.209.33

一、pip安装

下载地址

https://bootstrap.pypa.io/get-pip.py

安装命令

 [root@ubuntu ~]#python get-pip.py

会连带下载setuptools和wheel,可以通过指定参数不下载

--no-setuptools

--no-wheel

133117_21U8_2698055.png

 

二、Django安装

通过pip安装python包

 [root@ubuntu ~]#pip install Django==1.9.5

133153_AXNj_2698055.png

通过python检查

133440_YCSE_2698055.png

三、开发的准备工作

Django 1.9以上才可以

1.    检查Django

     [root@ubuntu ~]#python -c "import django;print(django.get_version())"         134422_JXMJ_2698055.png

 

2.    创建工作目录并创建项目(避免命名,不要用django和test)

    140046_3izn_2698055.png

    错误1:“command not found: django-admin”

            140909_QiP2_2698055.png

    mysite/外部:

                用来连接项目,不要取跟django相关的名称

    manage.py:

                用于与Django项目交互的命令行工具

    mysite/内部:

                其实是一个python包,在调用的时候可以使用,例如 mysite.urls

    mysite/_init_.py:

                一个空的文件,用于告诉Python这个目录应该当作python包的形式

    mysite/settings.py:

                用于设置Django项目

    mysite/urls.py:

                提供URL连接Django项目

    mysite/wsgi.py:

                为Django项目提供一个WSGI web服务器的入口

 

3.    启用开发服务

    [root@ubuntu ~/python_django/mysite]#python manage.py runserver

143328_63v9_2698055.png

    暂时忽略更新数据库的警告,退出服务按Ctrl-c

    通过http://127.0.0.1:8000访问Django自带的轻量级web服务器

143850_BJ7v_2698055.png

    这个web服务器,只为了Django的项目开发,不要用于web服务运用

    可以使用如下命令,修改服务器的访问IP和端口,默认是127.0.0.1:8000

    python manage.py runserver 0.0.0.0:8080

    允许所有IP访问

python manage.py runserver 0.0.0.0:8000

145040_iQqN_2698055.png

    这个开发服务器在不重启情况下,会自动更新加载python代码。但增加文件类操作,就需要重启服务器

 

四、开发一个polls调查应用(一)

初识,新建一个简单的url views

  1. 在manage.py所在目录下

    [root@ubuntu ~/python_django/mysite]#python manage.py startapp polls

    151025_Wf1d_2698055.png

    Django会自动创建目录结构

  2. 编写view,

    151504_nLMl_2698055.png

  3. 创建polls/urls.py。在url的任意匹配下,调用views下的index函数,name为url的名字152335_nTnK_2698055.png

  4. 修改项目url指向连接到polls下的url,修改/mysite/urls.py。在url/polls下,调用polls包下的urls

    153130_kekg_2698055.png

  5. 查看

    154519_hl6d_2698055.png

6.    url函数:regex和view参数,kwargs和name参数

    regex:

        r''用于正则匹配,但不支持$末尾字符串匹配,也不会寻找GET、POST参数和域名。

        例如:https://www.example.com/myapp/?page=3,只会匹配myapp/

    view:

        当Django匹配到对应目录时,会调用该目录的view函数

    kwargs:

        任意的键盘参数将会传递给view函数

    name:

        命名url

 

五、开发一个polls调查应用(二)

设置数据库,创建模块,Django管理

Database setup

  1. 关于修改默认数据库

    Django默认设置数据库为SQLite这款轻量级数据库,但你也可以选择使用其他数据库。

    161921_YM1G_2698055.png

    修改NAME,提前新建数据库,用户,密码,主机都要指定。即还要确保mysite/settings.py具有新建数据库的权限。

  2. 修改时区

    vim settings.py

    164657_KjwC_2698055.png

    默认是UTC全球标准时间

  3. INSTALLED_APPS 保存所有Django应用程序,默认包含如下

    INSTALLED_APPS = [
          'django.contrib.admin',    # 管理网站
          'django.contrib.auth',      #身份验证系统
          'django.contrib.contenttypes',    #内容类型的框架
          'django.contrib.sessions',        #会话框架
          'django.contrib.messages',    #消息框架
          'django.contrib.staticfiles',    #管理静态文件的框架
      ]

  4. 创建数据库
      [root@ubuntu ~/python_django/mysite]#python manage.py migrate

    164803_LPQ4_2698055.png

Creating && Activating models

  1. 创建模块

    Question类新建提问文件,日期文件;Choice类新建选择文件,

    [root@ubuntu ~/python_django/mysite/polls]#vim models.py

    173111_d5Jk_2698055.png

  2. 激活模块

    [root@ubuntu ~/python_django/mysite/mysite]#vim settings.py

    193239_M93t_2698055.png

  3. 增加模块,会在polls/目录下新建migrations目录

    [root@ubuntu ~/python_django/mysite]#python manage.py makemigrations polls

    193528_UbDg_2698055.png

  4. 输出模块即将的操作,并没有创建模块表,只是把操作输出出来,以供检查

    [root@ubuntu ~/python_django/mysite]#python manage.py sqlmigrate polls 0001

    194221_swPR_2698055.png

    1.这段输出会取决于使用的数据库,这里默认的SQLite

    2.自动创建表的名称:appname_modelname

    3.自动增加id为主键,serial自增

    4.一般用文件名_id作为外键,并不强制执行

  5. 应用模块,使用migrate命令,更新数据库,创建模块表

    [root@ubuntu ~/python_django/mysite]#python manage.py migrate

    195716_pgMw_2698055.png

  6. 创建模块:

       在models.py中修改模块

       使用命令python manage.py makemigrations为模块去创建migrations目录

       使用命令python manage.py migrate在数据库中去应用更改的模块

    之所以把各个步骤拆开,是为了修改和应用分隔,更容易开发和使用

Playing with the API

1.    调用python的shell终端

[root@ubuntu ~/python_django/mysite]#python manage.py shell

081731_HSNn_2698055.png

不用直接python打开终端,是因为manage.py设置DJANGO_SETTINGS_MODULE变量为mysite/settings,保证路径

 djangosetup()

报AttrubuteError 需要检查你的Django版本

2.    在shell中使用API

   Question, Choice   Questionobjectsall()   timezoneq  Question(question_text, pub_datetimezonenow())qsave()qidqquestion_textqpub_dateqquestion_text  qsave()Questionobjectsall()

3.    增加_str_方法,改变Question.objects.all()的输出

polls/models.py

         
    
     
            
    
     

使用双下划线定义的API,添加的__str__项目会自动管理,方便交互

自定义方法:

polls/models.py

        
    
     

4.    打开新的python shell    

         
    :

Introducing the Django Admin

    Django自动化生成一个管理网站接口

  1. 创建管理用户

    [root@ubuntu ~/python_django/mysite]#python manage.py createsuperuser

    093138_xQen_2698055.png

  2. 开启开发服务器,打开http://127.0.0.1:80000/admin

    [root@ubuntu ~/python_django/mysite]#python manage.py runserver

    093622_Xx06_2698055.png

    093858_lSjQ_2698055.png

Make the poll app modifiable in the admin

app不显示在管理网站主页上,这里需要告诉管理网站,Question项目有管理接口。编辑polls/admin.py

polls/admin.py

from django.contrib import adminfrom .models import Questionadmin.site.register(Question)

Explore the free admin functionality

094637_mqRG_2698055.png

094719_eZQK_2698055.png

    点击下What's up?

094858_j4mY_2698055.png

    可以忽略原来设置参数,直接在页面修改。点击History查看修改历史

095250_wAD7_2698055.png

六、开发一个polls调查应用(三)

 

转载于:https://my.oschina.net/charlock/blog/663180

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值