hjr-Python:Django

#Django
这是Python一个Web框架,自带一个简单的服务器可以用于调试,自带一个sqlite数据库(SQLite Database Browser 可以用这个软可视化打开),http://127.0.0.1:8000/admin可以进入一个自带的后台管理系统。
Django使用
#Django常用指令

创建mysite工程项目:
django-admin.py startproject mysite

创建blog app :
python manage.py startapp blog

初始化python自带SQLite数据库:
python manage.py syncdb

再次初始化python自带SQLite数据库:
python manage.py makemigrations blog

启动django容器:
python manage.py runserver

#步骤
先配置好环境,然后使用下面常用指创建项目文件夹,创建后系统会自动生成一个文件夹,在项目文件夹下会有一个同名文件夹,里面放着

  1. manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。

  2. settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

  3. urls.py ----- 负责把URL模式映射到APP

该文件夹不需要动,里面的各种配置需要时再进行更改,接下来退出该文件夹,在项目文件夹中新建各种APP

##APP
Django是由许多APP组成,在项目文件夹下每一个文件夹就是一个APP,是一个模块,负责一部分网站功能,每个APP文件夹里面有model.py+view.py+templete文件夹

##model文件 + view文件 + templete文件夹

在每个app中,由以下三个部分组成,其中

  1. model.py 是操作数据库的

  2. view.py 是给templete里的html中的模板代码赋值的

  3. templete文件夹里面存放的是html文件,这些文件里面可以直接使用Django自带的一些用{}包起来的语法,类似jsp、asp之类的混编代码,一些地方是模板代码。

#编码
具体每个APP中的各个文件要怎么编码
##url写法

urlpatterns = [
   //这个是自带后台的路径,没必要改,可以删掉
   url(r'^admin/', include(admin.site.urls)),
   //这个是固定的格式,前面是url最后一个单词名(用正则匹配的所以写法才这么奇怪),后面是blog APP下的views.py文件里的index方法
   url(r'^index/$', 'blog.views.index'),
]

##views .py里的index方法
上面路径里的views.py文件中的index方法是进行控制templete文件夹下的html文件显示的,当url如localhost:8000/index访问时,其实会触发index方法,即

from blog.models import BlogsPost
#引用上面模块就是调用model.py,数据库操作要靠model.py
def index(request):
   	blog_list = BlogsPost.objects.all()
       #这里的index.html就是templete里的
       return render_to_response('index.html',{'blog_list':blog_list})

##model .py

#from django.db import models
 #引用上面模块是为了操作数据库
class BlogsPost(models.Model):
       title = models.CharField(max_length = 150)
       body = models.TextField()
       timestamp = models.DateTimeField()

##templet文件夹

{% extends "base.html" %}
 {% block content %}
     {% for post in blog_list %}
     

{ { post.title }}

{ { post.timestamp | date:"1,F jS"}}

{ { post.body }}

{% endfor %} {% endblock %}

上面就是Django自带的一些语法,这些代码在调用时都会replace成正常的html代码的

你可能感兴趣的:(Python,python,web框架)