Anaconda+django写出第一个web app(一)

在安装好Anaconda和django之后,我们就可以开始创建自己的第一个Web app,那么首先创建一个空文件夹,之后创建的文件都在这个文件夹内。

启动命令行进入此文件夹内,可以先通过如下命令查看一下自己的python版本和django版本。

python --version  django-admin --version

我的python和django版本分别是3.7.0和2.1.5

使用如下命令创建第一个项目,命名为mysite。

django-admin startproject mysite

命令执行后,会在当前文件夹下生成一个名字为mysite文件夹,文件目录如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

然后命令行进入mysite文件夹下,输入 python manage.py runserver ,即可启动django development server,在浏览器中输入http://127.0.0.1:8000/可看到如下界面,表示第一步成功了,该界面是django的默认界面,之后我们可以对此页面内容进行自定义。

此时可以按CTRL+C退出runserver,也可以重新打开一个命令窗口,然后输入如下命令创建第一个App,这里我将app命名为main。

python manage.py startapp main

命令执行后生成了一个新的文件夹main,此时主要文件结构如下,至此文件基本框架已经建成:

mysite/
    manage.py
    mysite/
    main/

那么django是如何呈现数据的呢,下面这段话很清楚的解释了django的工作原理,这段话来自一位YouTube的博主sentdex[1],他在YouTube上还有很多其他的python教程,感兴趣的可以看看,我的django入门也主要来自于他的教程,第一次读这段话刚开始可能并不理解,但跟着教程做一遍之后再回过头来看就能明白了:

Django uses what‘s called a Model View Controller paradigm. Every page you visit on a Django application is likely using these three things to serve you data.

  • Model: Your database abstraction, which will contain objects that are mapped to your database. For example, we‘ll have a "Tutorial" model/object, a "User model/object," a "Tutorial Series" model/object...etc. All you need to do is define these models and Django handles the rest for you. You can even change your models down the line and, through migrations, Django can help you get it done within seconds, rather than the likely hour...or more... it would take you to do this yourself.
  • View: How you will represent the data. This is where you will actually render things to a user.
  • Controller: How you map URLs to views.

While we call it an MVC (model, view, controller), you can imagine it moreso working in reverse. A user will visit a URL, your controller (urls.py) will point to a specific view (views.py). That view can then (it doesn‘t actually HAVE to) interface with your models.

django的优势在于可扩展性好,当我们在后期想要对网站添加某些功能时非常方便,django可以保证这些文件仍然组织的很好。

接下来 我们修改主页内容,使其显示“Hello,World!”

第一步:进入mysite文件夹,打开urls.py,django把网站看作是一堆app的集合,django通过指向某个app下的ursl.py来指向该app,因此要把该app下的urls包含进来,mysite/ursl.py修改后如下,使用include别忘记从django.urls导入include,也不要忘记path命令行后的逗号:

1 from django.contrib import admin
2 from django.urls import path, include
3
4 urlpatterns = [
5     path(‘‘, include(‘main.urls‘)),
6     path(‘admin/‘, admin.site.urls),
7 ]

第二步:进入main文件夹,此文件夹下并没有urls.py,我们需要自己新建一个,写入如下内容:

1 from django.urls import path
2 from . import views
3
4 app_name = ‘main‘ #此处为了urls的命名空间
5
6 urlpatterns = [
7     path(‘‘, views.homepage, name=‘homepage‘),
8 ]

第三步:修改main文件夹下的views.py,该文件用来返回一些html页面,此时我们要在首页显示“Hello,World!”,为了简单我们直接使用HttpResponse,首先导入HttpResponse,然后定义一个函数用来显示内容:

1 from django.shortcuts import render
2 from django.http import HttpResponse
3 # Create your views here.
4 def homepage(request):
5     return HttpResponse("Hello, World!")

最后,我们再次runserver,进入http://127.0.0.1:8000/,可以看到如下界面:

在这个教程里,我产生了一个疑问:到哪里查找命令的用法呢?比如HttpResponse的用法是什么?这些可以在django的帮助文档中找到[2]。

参考链接:

[1] https://pythonprogramming.net/django-web-development-python-tutorial/

[2] https://docs.djangoproject.com/en/2.1/ref/request-response/

原文地址:https://www.cnblogs.com/yunxiaofei/p/10398302.html

时间: 2024-10-09 06:08:23

Anaconda+django写出第一个web app(一)的相关文章

Anaconda+django写出第一个web app(十)

今天继续学习外键的使用. 当我们有了category.series和很多tutorials时,我们查看某个tutorial,可能需要这样的路径http://127.0.0.1:8000/category/series/tutorial,这样看上去十分的繁琐,我们希望无论是在category下还是在series.tutorials下,都只有一级路径. 那么如何做呢?首先在views.py中,我们定义一个single_slug函数: def single_slug(request, single_s

Anaconda+django写出第一个web app(三)

前面我们已经建立了模型Tutorial,也已经可以用Navicat Premium打开数据看查看数据,接下来我们通过建立admin账户来上传数据. 在命令行执行如下命令来创建用户: python manage.py createsuperuser 然后输入相应的用户名.邮箱和密码,邮箱可随意填写,接下来执行 python manage.py runserver ,在浏览器输入 http://127.0.0.1:8000/admin/看到下图,输入刚才创建的用户名和密码: 我们可以在User中看到

Anaconda+django写出第一个web app(五)

今天开始学习网页风格和设计,就像python有Web框架一样,也有一些CSS框架.对于CSS框架,我们可以使用默认的样式,也可以在原基础上编辑修改.本教程使用的是materialize这个CSS框架[1],首页界面如下: 点解GET STARTED,我们可以把它下载到本地使用,也可以直接复制相应的链接使用. 为了套用如下这个Cards界面,我们直接将代码复制到home.html: 修改后的home.html内容如下: {% load static %} <!-- Compiled and min

Anaconda+django写出第一个web app(八)

今天来实现网站的登入和登出功能. 首先我们需要在urls.py中添加路径,注意此处的路径和在导航栏中设置的文字路径保持一致: from django.urls import path from . import views app_name = 'main' #此处为了urls的命名空间 urlpatterns = [ path('', views.homepage, name='homepage'), path('register/', views.register, name='regist

如何设计和实现一个web app

web app简介 web app其实不算是什么新鲜的东西,相比于传统的web和传统的app,web app这种web和app相结合的产物有的优点如下: 1. 开发上web app更有便捷性,ios开发一上来需要安装一堆东西,android开发也差不多,另外web app的学习成本要比平台客户端开发要低些,至少你不用去招聘ios和android程序员.只要具备基础web开发能力的人都可以比较快上手. 2. 部署方便,在很多情况下,部署一个单页web app只需要一个index.html页面文件作

【2】依照Django官网,创建一个web app

1. Creating app $ python manage.py startapp polls That'll create a directory polls, which is laid out like this: polls/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py 1.1 Edit polls/models.py: from django.db import models cl

【2】按照Django官网,创建一个web app 创建app/创建相应的数据库表

1. Creating app $ python manage.py startapp polls That'll create a directory polls, which is laid out like this: polls/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py 1.1 Edit polls/models.py: from django.db import models cl

【3】依照django官网:创建一个web app

1 Creating an admin user $ python manage.py createsuperuser UserName: wuwh Password:   ganbare 2  Start the development server? $ python manage.py runserver 8088 visit :http://127.0.0.1:8000/admin/ 3 .Make the poll app modifiable in the admin from dj

【1】依照Django官网,编写一个web app

1. Creating a project From the command line, cd into a directory where you'd like to store your code, then run the following command: $ django-admin startproject mysite Let's look at what startproject created: mysite/ manage.py mysite/ __init__.py se