zoukankan      html  css  js  c++  java
  • 博客基础_django_python从入门到实践_创建项目_创建应用

    创建项目

      制定规范

        创建一简单博客网页,有固定分类,每个分类下又可以添加具体博客条目,每个条目保留作者,发布时间。

      创建虚拟环境

        虚拟环境是系统的一个位置,可以在其中安装包,与其他python包隔离

        限于版本问题,python -m venv ll_env 可能不管用,需先安装virtualenv包,分pip 和 apt-get两种。

        创建指定python版本下的虚拟环境

      激活虚拟环境

        windows / linux

        deactivate

      创建项目

        虚拟环境下安装django包

        创建项目

          注意项目最后有个点

            这个点可以让项目使用合适的目录结构,方便后续服务器的部署,如果忘记,请删除ll_env后,重新创建

          多了项目文件夹和manage.py

            manage.py作用是接受命令并交给django相应的部分执行,例如开启服务器,迁移数据等

      创建数据库

        多了db.sqlite3. sqlite是一种使用单个文件的数据库,是编写简单应用程序的理想选择,因为不用太关注数据库管理的问题。

      查看项目

        localhost是一种处理当前系统发出的请求,而不允许其他人查看你开发的服务器。

        如果出现指定端口被占用的问题,可遍历8001至高,发现合适的端口。

    mkdir learning_log
    
    python -m venv ll_env
    
    # if errors because of versions, establish virtualenv
    pip install --user virtualenv
    # Ubuntu:
    sudo apt-get install python-virtualenv
    
    virtualenv ll_env --python=python3
    
    source ll_env/bin/activate
    # ll_env/Scripts/activate
    # deactivate
    
    pip install Django
    
    django-admin.py startproject learning_log .
    
    ls 
    ls learning_log
    
    python manage.py migrate
    ls
    
    python manage.py runserver
    # python manage.py runserver 8001 
    
    # click localhost:8000, if worked, then establish apps
    View Code

    创建应用

      定义模型

        模型告诉Django如何处理应用程序中存储的数据,如赋值变量,返回类别信息

        字段更多用法   https://docs.djangoproject.com//en/1.8/ref/models/fields/

        __str__返回显示在导航栏

      激活模型

        告诉django哪些应用安装在项目中

        创建要迁移的表单,以符合models.py中数据的定义

        迁移数据

      django 管理网站

        较为轻松地管理网站,查看所有用户信息

        散列值  存储在网站数据库中密码信息为散列值,反推回密码,在网站配置合理的情况下,极难

        django自动的在管理网站中添加了一些模型,如User,Group,对于我们添加模型需要手工进行注册

      django shell

        获取所有实例对象

        遍历对象

        查询特定实例对象的属性

        查询特定实例对象所属对象的所有数据

        更多  https://docs.djangoproject.com/en/2.1/intro/tutorial02/

    # 创建应用
    python manage.py startapp learning_logs
    
    ls learning_logs/
    # admin.py __inti__.py migrations models.py test.py views.py
    
    vim learning_logs/models.py
    
    # 定义模型
    #models.py
    from django.db import models
    
    class Topic(models.Model):
        text = models.CharField(max_length=200)
        date_added = models.DateTimeField(add_now_add=True)
    
        def __str__(self):
            return self.text
    
    # 激活模型
    # settings.py
    INSTALLED_APPS{
    snip
    'learning_logs'
    }
    
    python manage.py makemigrations learning_logs
    python manage.py migrate
    
    # 管理网站
    # 创建超级用户
    python manage.py createsuperuser 
    username: ll_admin
    email
    password:
    password:
    
    #注册Topic模型
    from django.contrib import admin
    
    admin.site.register(Topic)
    
    #验证并添加Topic
    localhost:8000/admin
    usrname + password
    Topic/ add  
    
    # 定义Entry模型
    from django.db import models.py
    
    class Topic(models.Model):
    snip
    
    class Entry(models.Model):
        topic = models.ForeignKey(Topic)
        text = models.TextField()
        date_added = models.TimeDateField(auto_now_add = True)
        
        class Meta:
            verbose_name_plural = 'Entries'
    
        def __str__(self):
            return self.text[:50] + '...'
    
    # 迁移模型/ 注册模型
    View Code
    # django shell
    
    python manage.py shell
    from learning_logs.models import Topic
    
    # 获取模型Topic的所有实例
    Topic.objects.all()
    
    # 遍历查询集
    topics = Topic.objects.all()
    for topic in topics:
        print(topic.id, topic)
    
    # 查看某一实际例子及其属性
    t = Topic.objects.get(id = 1)
    t.text
    t.data_added
    
    # 查看与主题相关联的条目
    t.entry_set.all()
    View Code

  • 相关阅读:
    排序算法系列之冒泡排序 (3)
    排序算法系列之选择排序 (2)
    排序算法系列之插入排序 (1)
    深挖 NGUI 基础 之UICamera (二)
    深挖 NGUI 基础 之UIRoot (一)
    JPS寻路和AStar寻路
    旋转矩阵
    [斜边的血条进度]
    UI框架:ui节点控件的绑定方式
    Shader播放序列帧
  • 原文地址:https://www.cnblogs.com/dignity/p/9798774.html
Copyright © 2011-2022 走看看