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可以用来明确模版的名字。

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

  • 相关阅读:
    js 获取图片url的Blob值并预览
    Xcode工程编译错误:“Cannot assign to 'self' outside of a method in the init family”
    iOS-原生纯代码约束总结(二)之 AutoLayout
    iOS-原生纯代码约束总结(一)之 AutoresizingMask
    iOS 动画学习之视图控制器转场动画
    ios开发之 NSObject详解
    mac终端下svn常用命令
    CALayer的子类之CAShapeLayer
    Runloop的再学习之浅析(一)
    Xcode 编辑器之Workspace,Project,Scheme,Target
  • 原文地址:https://www.cnblogs.com/nathanieltian/p/6181532.html
Copyright © 2011-2022 走看看