zoukankan      html  css  js  c++  java
  • django(一)

    学了几天的django。照着官方的教程学了4节。大概对django有了一个大体的了解。

    app和project有区别。

    What’s the difference between a project and an app? An app is a Web application that does something – e.g., a Weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.

    application指的是一个网站的应用程序。而project指的是应用程序的集合。它管理着整个网站的运行。

    然后我建了一个project叫mysite,按照教程建了一个application叫polls。就是一个简单的投票系统。

    默认的app还有用户管理等app。

    系统配置都在mysite目录下的setting里。

    比如数据库的配置,中间件,模板等。还有你新建的app。

    INSTALLED_APP = [

    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    ]

    这里列的应用都是默认被开启了。比如admin。

    然后看看新建的polls应用。

    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py

    我说说我在练习中使用到的几个文件。

    models.py

    这是创建数据库对象的文件。

    把你需要的数据库模型写在这个文件里。

    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')

    主键会自己创建为自增int型。

    具体如下图:

    连表名都替你生成了。

    怎么生成数据库数据?

    这里用的命令是migrate

    具体生成什么样的数据模型,

    在这个文件里看

    polls/migrations/0001_initial.py:

    执行命令之前可以这么看

    python manage.py sqlmigrate polls 0001

    最后执行命令

    python manage.py migrate

    程序怎么知道polls这个应用呢?

    在polls目录下的apps.py里要配置。

    migrate这个命令之前好像在ROR里见过。。。

    看来这些框架其实都差不多。

    然后是view

    view主要在应用下的views.py文件里去写。

    如果用html怎么办?

    在polls下创建template/polls/xxx.html

    程序会按照这个路径去找。

    那在浏览器里输入localhost:8000/polls/

    后台怎么知道请求的是views.py里的哪个函数呢?

    在urls.py里。

    url()函数就够了。

    urlpatterns = [
        url(r'^$', views.index, name='index'),
    ]

    url(regexviewkwargs=Nonename=None)

    url()函数传递四个参数,第一个是正则表达式,即url请求路径。

    然后是视图,引用views.py中的函数。

    后两个参数选填。

    kwargs 是对url的补充。如下:

    url(r'^blog/(?P<year>[0-9]{4})/$', views.year_archive, {'foo': 'bar'}),

    请求的url就是/blog/2005/,调用views.py的函数为views.year_archive(request, year='2005',foo='bar')

    最后一个name可以用来明确模版的名字。

    大概学了这么多,其中还有好多不是很明白。还需要继续看看。

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/nathanieltian/p/6181532.html
Copyright © 2011-2022 走看看