zoukankan      html  css  js  c++  java
  • 【Django】不知道为什么就是想学一下 01

    1. Django安装、项目创建及服务器连接

    系统:Ubuntu 14.04.4

    > cat /etc/issue   //查看系统版本

    安装Django

    > sudo pip install django

    确定进入了root模式,进入django-admin.py所在目录,运行以下指令

    > django-admin.py startproject mysite

    在当前目录生成mysite文件夹,进入文件夹(哦,项目名可以随意取,不一定非得mysite...)

    > manage.py runserver 8000

    浏览器输入:http://127.0.0.1:8000/。显示如下界面,连接服务器成功

    2. urls.py文件的配置

    尝试修改manage文件夹中urls.py的内容。

    URL配置就像是 Django 所支撑网站的目录。它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。 你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。

    执行 django-admin.py startproject 时,该脚本会自动为你建了一份 URLconf(即 urls.py 文件)。

    每个url模式的完整内容为

    urlpatterns = patterns(前缀,
        url(正则表达式, 视图函数, 参数字典, 名称),
    )

    修改urls.py文件,将urlpatterns修改如下

    urlpatterns = [
          url(r'^admin/', admin.site.urls),
           url(r'^$', 'mysite.hello.helloworld'),  #即mysite/hello.py中的hello_world函数
    ]

    在mysite文件夹下创建hello.py文件

    # -*- coding: utf-8 -*-
    # hello.py
    
    from django.http import HttpResponse
    
    def hello_world(request):  #视图函数hello_world
        return HttpResponse("<p>Hello,World!</p>")  #一个视图功能必须返回一个HttpResponse

    刷新http://127.0.0.1:8001/,显示如下

    3. 数据库 

    接下来创建数据库,在第一个mysite文件夹下进行如下指令

    python manage.py migrate

    4. 增加app功能

    首先了解一下app是什么吧~

    之前starproject指令我们已经创建了mysite项目。

    一个project包含很多个Django app以及对它们的配置。

    技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等。

    一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。

    例如,Django本身内建有一些app,例如注释系统和自动管理界面。 app的一个关键点是它们是很容易移植到其他project和被多个project复用。

    创建一个app

    python manage.py startapp blog    #创建blog这个app

    在mysite中(不是mysite/mysite)生成了blog文件夹,内容如下

    blog
        ├── migrations
        |       __init__.py
        ├── __init__.py
        ├── admin.py
        ├── models.py
        ├── tests.py
        └── views.py

    创建应用程序blog后,找到mysite中的settings.py文件,在installed_apps下加上‘blog’,告诉Django使用blog这个app

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',     #添加blog!
    ]

    【= - =插播一下,因为我的ubuntu一直没取得完全的root权限,每次输入指令需要的话都是sudo su,编辑blog内文件又遇到权限问题,可以通过输入以下指令取得超级权限,从而可以编辑一切文件】

    > sudo nautilus

    【插播完毕】

    根据官方教程,先将blog/models.py内容改为如下

    from __future__ import unicode_literals
    
    from django.db import models
    from django.utils import timezone
    
    # Create your models here.
    class Post(models.Model):  #定义Post对象,models.Model表明Post是Django的模型(?)
      #定义titletextcreated_date,published_dateauthor属性 author
    = models.ForeignKey('auth.User')  #models.ForeignKey表示指向另一个模型的连接 title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField( default=timezone.now) published_date = models.DateTimeField( blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return self.title

    上面这一串暂时别管了= - =,慢慢解释

    5. 将新模型添加到数据库

    在数据库中为模型建立数据表,在mysite文件夹中运行如下指令

    > python manage.py makemigrations blog

    Then

    > python manage.py migrate blog

    酱紫Post模型就在在我们的数据库里面辣~

    6. 后台管理

    向blog/admin.py中添加代码

    from django.contrib import admin
    
    # 添加如下代码
    from .models import Post
    
    admin.site.register(Post)  #用此行代码注册模型使其在页面上可见

    然后打开网站http://127.0.0.1:8001/admin,出现登陆界面

    “为了登录, 你需要创建一个掌控整个网站所有东西的超级用户。

    继续执行如下指令

    > python manage.py createsuperuser

    然后根据提示输入用户名邮箱密码blablabla~

    之后用自己设置的superuser登陆刚刚的登陆界面。

    可以Post自己的文章啦~

    【Countinued】

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    来自官方的教程(•̀ᴗ•́)و:http://tutorial.djangogirls.org/

  • 相关阅读:
    VMware下安装Ubuntu虚拟机
    py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图
    老铁,这年头得玩玩这个:Git基本操作【github】
    本地Git与GitHub服务器建立连接(SSH方式通信)
    python开启httpserver服务在自动化测试中的一个小运用
    python测试webservice接口
    Xcache3.2.0不支持php7.0.11
    Nginx设置alias别名目录访问phpmyadmin
    CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.15+PHP7.0.11
    CentOS平滑更新nginx版本
  • 原文地址:https://www.cnblogs.com/liez/p/5565706.html
Copyright © 2011-2022 走看看