Home >Backend Development >Python Tutorial >Getting Started with Django Framework 1.0

Getting Started with Django Framework 1.0

做棵大树
做棵大树Original
2020-05-26 18:45:142116browse

Development tools: PyCharm community version or professional version CMD command line

The difference between the community version and the professional version is that the professional version can directly create Django projects , while the Community Edition needs to be created manually. Since we are all just getting started, it is better for us to create it manually, which will help us become familiar with Django commands and related operations.

Create a new Django minimal program

Create a new Web framework project

We use the command line interface to enter the directory where we want to create the project, and then enter the following command:

django-admin startproject mysite

The django-admin here is a tool for managing django. When we install django, dependencies will be installed by default. mysite is the project name and can be modified according to your own needs. After creation, we will get the following directory structure:

Getting Started with Django Framework 1.0
Minimum project directory structure

Modify the project and add Function

We need to add specific application here, and add related functions by configuring routing mapping.

What is the relationship between project and app?

  • The project corresponds to a website, which is a collection of configurations and applications.
  • Applications correspond to specific functions, which are specific Function carrier
  • Separation of configuration and function is a manifestation of high modularity
  1. [Modify project] Create a specific application (app)

Command: python manage.py startapp helloapp

After the command execution is completed, A new directory helloapp will be created under the root directory

Getting Started with Django Framework 1.0
helloapp directory
  1. 【Modify Project】Modify the application's views.py

    <code class="hljs"><span class="hljs-comment"># Create your views here.</span><br/><span class="hljs-keyword">from</span> django.http <span class="hljs-keyword">import</span> HttpResponse<br/><br/><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">hello</span><span class="hljs-params">(request)</span>:</span><br/><span class="hljs-keyword">return</span> HttpResponse(<span class="hljs-string">"Hello World! I am coming..."</span>)<br/></code>
  2. 【Modify the project】Modify the URL routing

    in conjunction with the project name The path relationship between the URL and the processing function is specified in the urls.py file in the corresponding directory.

    <code class="hljs"><span class="hljs-keyword">from</span> django.contrib <span class="hljs-keyword">import</span> admin<br/><span class="hljs-keyword">from</span> django.urls <span class="hljs-keyword">import</span> include, path<br/><span class="hljs-keyword">from</span> helloapp <span class="hljs-keyword">import</span> views      <span class="hljs-comment"># from the subapp import related views</span><br/><br/>urlpatterns = [                 <span class="hljs-comment"># config the routes like vue&#39;s vue-router</span><br/>    path(<span class="hljs-string">&#39;admin/&#39;</span>, admin.site.urls),<br/>    path(<span class="hljs-string">&#39;index/&#39;</span>, views.hello),<br/>]<br/></code>

    We first need to introduce the views file under the corresponding app, and then configure the routing correspondence

  3. [Modification Project] Modify URL routing

    path('index/', views.hello)

    The first parameter here represents the url address, and what we have here will respond to domain name/index/ Access to this path; The second parameter indicates specifying a certain processing function, for example, here we have formulated views.hello.

    Getting Started with Django Framework 1.0
    Visit the page

##Run the project

python manage.py runserver

After running, when we access the corresponding route, we will get the corresponding return information; if we access unconfigured ones, 404 will be returned not found.

What I have to saydjango-admin andmanage.py

django-admin

##django-admin [options]

django-admin is a global management tool for the Django framework:

    Create and manage Django projects
  • Create and manage Django projects Database
  • Control debugging or log information
  • Run and maintain Django projects
  • We can also Use the
django-admin help

command to view more features

manage.py

python manage.py [options]

Function is similar to

django-admin

, but the scope only applies to the current project. We can also view more functions through the

python manage.py help

command.

Improvement of minimal program

Requirement: Return an HTML page instead of a string
Idea: Create a template (T), respond to specific requests, and return the template page

Create a new hello2app and access it through index2

Create a new hello2app application
`python manage.py startapp hello2app`

使用templateTest.html为返回页面,修改views.py

```python
# hello2app/views.py
from django.shortcuts import render
def hello(request):
    return render(request, "PYC01-HTMLJSDemo.html")
```

这里,`render()` 是一个打包函数,第一个参数是 request, 第二个参数是要返回的模板页面。
  • 在hello2app应用中,新增urls.py文件(本地路由文件)

    <code class="hljs"><span class="hljs-comment"># hello2app/urls.py</span><br/><br/><span class="hljs-keyword">from</span> django.urls <span class="hljs-keyword">import</span> path<br/><span class="hljs-keyword">from</span> . <span class="hljs-keyword">import</span> views         <span class="hljs-comment"># . 代表当前 app</span><br/>urlpatterns = [             <span class="hljs-comment"># urlpatterns 变量名成是固定的</span><br/>    path(<span class="hljs-string">&#39;&#39;</span>, views.hello)<br/>]<br/></code>
  • 在全局路由文件中增加对本应用路由文件的引用

    <code class="hljs"><span class="hljs-comment"># mysite/urls.py</span><br/><br/><span class="hljs-keyword">from</span> django.contrib <span class="hljs-keyword">import</span> admin<br/><span class="hljs-keyword">from</span> django.urls <span class="hljs-keyword">import</span> include, path<br/><span class="hljs-comment"># include()函数,用于引入其他路由文件</span><br/><span class="hljs-keyword">from</span> helloapp <span class="hljs-keyword">import</span> views<br/>urlpatterns = [<br/>    path(<span class="hljs-string">&#39;index2/&#39;</span>, include(<span class="hljs-string">&#39;hello2app.urls&#39;</span>)),<br/>    <span class="hljs-comment"># 将hello2app的局部路由增加到全局路由中</span><br/>    path(<span class="hljs-string">&#39;index/&#39;</span>, views.hello),<br/>    path(<span class="hljs-string">&#39;admin/&#39;</span>, admin.site.urls),<br/>]<br/></code>
  • 设置模板路径,让Django框架找到模板所在目录

    我们由于返回了模板文件,所以我们需要对 mysite/settings.py 进行修改配置一下路径,至此,也就完成了一个最小的Django项目了!

    <code class="hljs">TEMPLATES = [<br/>{<br/>    <span class="hljs-string">&#39;BACKEND&#39;</span>: <span class="hljs-string">&#39;django.template.backends.django.DjangoTemplates&#39;</span>,<br/>    <span class="hljs-string">&#39;DIRS&#39;</span>: [os.path.join(BASE_DIR, <span class="hljs-string">&#39;hello2app/templates&#39;</span>)],    <span class="hljs-comment"># 指定templates所在路径</span><br/>    <span class="hljs-string">&#39;APP_DIRS&#39;</span>: <span class="hljs-literal">True</span>,<br/>    <span class="hljs-string">&#39;OPTIONS&#39;</span>: {<br/>        <span class="hljs-string">&#39;context_processors&#39;</span>: [<br/>            <span class="hljs-string">&#39;django.template.context_processors.debug&#39;</span>,<br/>            <span class="hljs-string">&#39;django.template.context_processors.request&#39;</span>,<br/>            <span class="hljs-string">&#39;django.contrib.auth.context_processors.auth&#39;</span>,<br/>            <span class="hljs-string">&#39;django.contrib.messages.context_processors.messages&#39;</span>,<br/>            ],<br/>        },<br/>    },<br/>]<br/></code>

The above is the detailed content of Getting Started with Django Framework 1.0. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn