Django学习笔记(一)--总况

来源:互联网 发布:柚子理财软件下载 编辑:程序博客网 时间:2024/05/16 15:57

主要是来源于官方文档学习
http://django-chinese-docs-16.readthedocs.io/en/latest/index.html
主要记录我一个菜鸟的学习过程和总结,大牛绕行

  • 创建项目
    我是python3.3.5环境,环境安装过程前面有,使用pip安装了最新的Django1.10发现用不了(Python3.5支持),于是降级手动安装了Django1.6
    cd 到django的bin目录下执行
    Python3 django-admin.py startproject mysite
    创建了项目
  • 目录解读
 mysite/    manage.py    mysite/        __init__.py        settings.py----项目的配置文件        urls.py---通过浏览器访问那个app,通过这个来找        wsgi.py---尚不知
  • 运行项目
    python3 manage.py runserver 0.0.0.0:8080
    这样我们就可以通过IP访问,如果没有0.0.0.0则只能本机127.0.0.1的形式访问
    其他机器访问记得关闭防火墙:iptables -F
    访问方式http://IP:port

  • 创建app(应用)
    app必须在项目下创建(mysite),一个项目可以有多个app,后面我们用到的admin也可以把它当作一个管理应用,但是管理应用默认创建,不需要我们手动创建了。app可以在不同的项目之间移植(尚未试验)
    python3 manage.py startapp polls
    生成下面目录:对目录还不了解没关系,后面会慢慢理解

polls/    __init__.py    admin.py    models.py---模型层,与数据直接对应    tests.py---测试程序,单元测试使用    views.py---显示层,个人觉得更像mvc模型里面控制层,templates则更像是表示层    urls.py---这个是自己创建的,后面有用到,和mysite里面的urls.py作用类似
  • 激活模型
    其实就是将对象和数据库里面的数据对应起来,描述可能有误。这里我们不用管数据的运行逻辑,也不用自己创建表,django都能根据我们的model创建数据库和表,类似于java的hibernate
    第一步:
    修改mysite/settings.py
INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'polls',#把我们的项目加到这里面)

第二步:执行第二步之前,先编辑一下我们的model.py (往下看)
/mysite目录下执行
python3 manage.py syncdb
这一步会有很多提示,正常走下去就行了,设置好admin的用户名和密码,记得记住用户名和密码
python manage.py sql polls
执行后,发现创建了对应的表

BEGIN;CREATE TABLE "polls_poll" (    "id" integer NOT NULL PRIMARY KEY,    "question" varchar(200) NOT NULL,    "pub_date" datetime NOT NULL);CREATE TABLE "polls_choice" (    "id" integer NOT NULL PRIMARY KEY,    "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),    "choice_text" varchar(200) NOT NULL,    "votes" integer NOT NULL);COMMIT;
  • 编辑model层

    model层是数据逻辑层,即与数据库交互的作用,在django中我们只要关注medel.py (我还只是学到这就先这么理解吧)
    编辑/polls/model.py
    先不理解意思没关系,后面单独学。总之就是为了创建表,构建表结构

 from django.db import modelsclass Poll(models.Model):    question = models.CharField(max_length=200)    pub_date = models.DateTimeField('date published')class Choice(models.Model):    poll = models.ForeignKey(Poll)    choice_text = models.CharField(max_length=200)    votes = models.IntegerField(default=0)

其他:要加上才是一个对象

def __str__(self):     return self.choice_text

还可以加其他方法属性都是直接加到,poll类里面

def was_published_recently(self):        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

这些都是可以直接调用的
先到这里,还差view层,模板层,各自语法单独学习

0 0