1.我的学习总结css
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具备很强的可读性,相比其余语言常用英文关键字,其余语言的一些标点符号,它具备比其余语言更有特点语法结构。在一学期时间内学习并实现基于Python的Flask框架web建设项目,下面简单分享一下我我的学习python语言后的一些心得和经验。html
刚开始接触python的时候,这个语言给个人第一感受就是简洁,过去咱们接触的比较多的编程语言是Java,Java是一门面向对象编程语言,不只吸取了C++语言的各类优势,还摒弃了C++里难以理解的多继承、指针等概念,所以Java语言具备功能强大和简单易用两个特征。Java语言做为静态面向对象编程语言的表明,极好地实现了面向对象理论,容许程序员以优雅的思惟方式进行复杂的编程。固然过去个人java并无学得很好 ,也只是略懂 皮毛 ,一个是由于专业要求不高 ,另外一个学习这个语言仍是有必定难度,但自从接触python,我发现好像发掘了本身对编程的兴趣,固然这归功于python易上手程度,python是如今主流的编程语言之一 ,他能够 用来干不少事情,这个学期咱们暂时只学习网页制做,但这已经不能知足我对这个语言的好奇心,已经火烧眉毛想学好它,应用到 更多地方。在这里我想分享一下过去python和 java的不一样点。java
这学期,咱们学习在老师的带领下,咱们学习了Python+Flask+MysqL的web建设,一开始以为 这个颇有趣,由于一直来都是浏览 别人的网页,如今终于有机会去制做 本身的网页了,一开始接触html和css,感受仍是有点繁琐,但慢慢的习惯了,并且还以为颇有趣。python
我知道我如今学习的东西只是皮毛中的皮毛,往后确定会遇到 不少困难,可是编程的路上 原本 就会遇到各类问题,可是克服这些困难的过程无疑也会给我带来更多的成长。最后也但愿本身能一直坚持下去,在 学习python的路上越走越远。mysql
主要工具备:pycharm64.exe + Python 3.6 64-bit + MySQL + Navicat for MySQL(辅助工具)程序员
Flaskweb
Flask的hello world应用很是的简单,仅仅单个Python文件的7行代码就够了。sql
# from http://flask.pocoo.org/ tutorial数据库
from flask import Flask编程
app = Flask(__name__)
@app.route("/") # take note of this decorator syntax, it's a common pattern
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
1.登录用url_for加载静态文件
1.<script src="{{ url_for('static',filename='js/login.js') }}"></script>
2.flask 从static文件夹开始寻找
3.可用于加载css, js, image文件
2.继承和扩展
1.把一些公共的代码放在父模板中,避免每一个模板写一样的内容。base.html
2.子模板继承父模板
1.{% extends 'base.html’ %}
3.父模板提早定义好子模板能够实现一些本身需求的位置及名称。block
1.<title>{% block title %}{% endblock %}-MIS问答平台</title>
2.{% block head %}{% endblock %}
3.{% block main %}{% endblock %}
4.子模板中写代码实现本身的需求。block
1.{% block title %}登陆{% endblock %}
运用工具:MySQL + Navicat for MySQL(辅助工具)
1.安装与配置python3.6+flask+mysql数据库
1.下载安装MySQL数据库
2.下载安装MySQL-python 中间件(pip install flask-sqlalchemy (Python的ORM框架SQLAlchemy))
2.mysql建立数据库
3.数据库配置信息config.py
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/zhuce?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyimport config
app = Flask(__name__)
app.config.from_object(config)
db=SQLAlchemy(app)
class User(db.Model):
__tablename__ = 'User'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
username = db.Column(db.String(20),nullable=False)
password = db.Column(db.String(20),nullable=False)
nickname = db.Column(db.String(20))#db.create_all()
#增
user=User(username='liu1234',password='123456789')
db.session.add(user)
db.session.commit()#删
user=User.query.filter(User.username=='two1234').first() user.password='12345678910'
db.session.delete(user)
db.session.commit()#改
user=User.query.filter(User.username=='two1234').first()
user.username='three1234'
db.session.add(user)
db.session.commit()#查
user=User.query.filter(User.username=='two1234').first()print(user.id,user.username,user.password)
@app.route('/')def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
@app.route('/sign_up/',methods=['GET','POST'])def sign_up():
if request.method == 'GET':
return render_template('zhuce.html')
else:
username = request.form.get('username')
password = request.form.get('password')
user = User.query.filter(User.username == username).first()
if user:
return 'username existed.'
else:
user1 = User(username=username, password=password)
db.session.add(user1)
db.session.commit()
return redirect(url_for('sign_in'))
# 跳转登录。
@app.route('/denglu/', methods=['GET', 'POST'])
def denglu():
if request.method == 'GET':
return render_template('denglu.html')
else:
username = request.form.get('user')
password = request.form.get('pass')
user = User.query.filter(User.username == username).first()
if user:
if user.check_password(password):
session['user'] = username
session.permanent = True
return redirect(url_for('daohang'))
else:
return u'用户密码错误'
else:
return u'用户不存在,请先注册'
# 跳转首页搜索
@app.route('/search/')
def search():
sousuo = request.args.get('sousuo')
fabus = Fabu.query.filter(
or_(
Fabu.title.contains(sousuo),
Fabu.detail.contains(sousuo)
)
).order_by('-creat_time')
return render_template('daohang.html', fabus=fabus)
from werkzeug.security import generate_password_hash,check_password_hash
_password = db.Column(db.String(200), nullable=False)
@property
def password(self):
return self._password
@password.setter
def password(self,row_password):
self._password = generate_password_hash(row_password)
def check_password(self,row_password): generate_password_hash
result = check_password_hash(self._password,row_password)
return result
# 跳转登录。
@app.route('/denglu/', methods=['GET', 'POST'])
def denglu():
if request.method == 'GET':
return render_template('denglu.html')
else:
username = request.form.get('user')
password = request.form.get('pass')
user = User.query.filter(User.username == username).first()
if user:
if user.check_password(password):
session['user'] = username
session.permanent = True
return redirect(url_for('daohang'))
else:
return u'用户密码错误'
else:
return u'用户不存在,请先注册'